Skip to content

RenderModules

29thnight edited this page Nov 28, 2025 · 1 revision

RenderModules / Preset Enums

간단 설명: 파티클 및 특수효과 모듈 베이스 클래스. PSO/텍스처/클리핑/렌더 상태 프리셋/커스텀 Desc 관리.

주요 메서드

메서드 명 메서드 설명
~RenderModules() 소멸자: Release 호출
Initialize() 초기화(파생 클래스 오버라이드)
Render(world,view,projection) 렌더링 실행(파생 구현)
Release() GPU 리소스 해제
BindResource() 필요한 리소스 바인딩
SetupRenderTarget(renderData) 렌더타겟 준비
ResetForReuse() 재사용 상태 초기화
IsReadyForReuse() 재사용 가능 여부 검사
WaitForGPUCompletion() GPU 작업 완료 대기
SetEnabled(enabled) 모듈 활성/비활성 설정
IsEnabled() 활성 상태 반환
SetParticleData(particleSRV, count) 파티클 데이터 설정(순수 가상)
movePSO(pso) 내부 PSO 교체(move)
CleanupRenderState() 현재 렌더 상태 클린업(저장된 prev 복원)
SaveRenderState() 현재 상태 저장
RestoreRenderState() 저장된 상태 복구
SupportsClipping() 클리핑 지원 여부(기본 false)
EnableClipping(enable) 클리핑 활성화 설정
SetClippingProgress(progress) 클리핑 진행도 설정
SetClippingAxis(axis) 클리핑 기준 축 설정
IsClippingEnabled() 클리핑 사용 여부 반환
SetEffectProgress(progress) 이펙트 진행도 값 설정(사용 플래그 on)
SetUseEffectProgress(use) 진행도 사용 여부 설정
SetOwnerSystem(owner) 소유 파티클 시스템 지정
GetOwnerSystem() 소유 시스템 반환
HasOwnerSystem() 소유 시스템 존재 여부
IsSystemRunning() 시스템 실행 여부 검사
SetVertexShader(name) VS 이름 설정 및 셰이더 변경 처리
SetPixelShader(name) PS 이름 설정
SetShaders(vs, ps) VS/PS 동시 설정
GetAvailableVertexShaders() 사용 가능한 VS 목록
GetAvailablePixelShaders() 사용 가능한 PS 목록
SetBlendPreset(preset) 블렌드 프리셋 적용/상태 생성
SetCustomBlendState(desc) 커스텀 블렌드 Desc 적용
SetDepthPreset(preset) 깊이 프리셋 적용
SetCustomDepthStencilState(desc) 커스텀 깊이스텐실 Desc 적용
SetRasterizerPreset(preset) 래스터 프리셋 적용
SetCustomRasterizerState(desc) 커스텀 래스터 Desc 적용
SerializeRenderStates() 렌더 상태 JSON 직렬화
DeserializeRenderStates(json) 렌더 상태 역직렬화
UpdatePSOShaders() 셰이더 변경에 따른 PSO 갱신
UpdatePSORenderStates() 렌더 상태 변경 시 PSO 갱신
OnShadersChanged() 셰이더 변경 후 후처리(가상)
OnRenderStatesChanged() 렌더 상태 변경 후 후처리(가상)
SetTexture(slot, texture) 지정 슬롯 텍스처 설정
SetTexture(texture) 슬롯 0 텍스처 설정 단축
AddTexture(texture) 텍스처 목록에 추가
RemoveTexture(slot) 슬롯 텍스처 제거
ClearTextures() 모든 텍스처 해제
GetTexture(slot) 슬롯 텍스처 가져오기
GetTextureCount() 텍스처 개수 반환
EnsureTextureSlots(count) 슬롯 수 확보(리사이즈)
SerializeTextures() 텍스처 목록 JSON 직렬화
DeserializeTextures(json) 텍스처 목록 역직렬화
BindTextures() 텍스처 셰이더 바인딩

맴버변수(주요)

이름 설명
m_textures 텍스처 포인터 목록
m_enabled 모듈 활성 플래그
m_isRendering 렌더 중 상태
m_gpuWorkPending GPU 작업 대기 중 원자 플래그
m_ownerSystem 소유 파티클 시스템 포인터
m_assignedTexture 단일 지정 텍스처(주 슬롯)
m_dissolveTexture 디졸브 효과용 텍스처
m_pso PipelineStateObject unique_ptr
m_vertexShaderName VS 셰이더 이름
m_pixelShaderName PS 셰이더 이름
m_blendPreset 블렌드 프리셋
m_depthPreset 깊이 프리셋
m_rasterizerPreset 래스터 프리셋
m_customBlendDesc 커스텀 블렌드 Desc
m_customDepthDesc 커스텀 깊이스텐실 Desc
m_customRasterizerDesc 커스텀 래스터 Desc
m_clippingParams PolarClippingParams 구조체(진행도/중심/축 등)
m_clippingEnabled 클리핑 활성 여부
m_effectProgress 이펙트 진행도 값
m_useEffectProgress 진행도 사용 플래그
prev 상태 저장 변수들 이전 렌더 상태 스냅샷(Depth/Blend/Rasterizer 등)

Enum: BlendPreset

설명
None 블렌딩 비활성
Alpha 알파 블렌딩
Additive 가산 합성
Multiply 곱 연산
Subtractive 감산 연산
Custom 사용자 정의 Desc 적용

Enum: DepthPreset

설명
None 깊이 상태 미사용
Default 기본(Read+Write, LESS)
ReadOnly 읽기만 허용
WriteOnly 쓰기만 허용
Disabled 깊이 테스트 비활성
Custom 사용자 정의 Desc

Enum: RasterizerPreset

설명
None 기본 상태 미사용
Default SOLID + BACK Culling
NoCull SOLID + Culling 없음
Wireframe WIREFRAME + BACK Culling
WireframeNoCull WIREFRAME + Culling 없음
Custom 사용자 정의 Desc

구조체: PolarClippingParams

필드 설명
polarClippingEnabled 폴라 클리핑 활성 플래그
polarAngleProgress 진행도(0~1)
polarStartAngle 시작 각도
polarDirection 진행 방향(1/-1)
polarCenter 중심 위치 벡터
polarUpAxis 업 축 벡터
polarReferenceDir 기준 방향 벡터

CreatorEngine

API Docs

API Reference
Main
PhysicsSystem
RenderEngine
ScriptBinder
Utility_Framework

etc

Clone this wiki locally