Skip to content

PrimitiveRenderProxy

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

PrimitiveRenderProxy / PrimitiveProxyType

간단 설명: 다양한 렌더러 컴포넌트(Mesh/Terrain/Foliage/Decal/Sprite)를 단일 렌더링 프록시로 추상화. LOD, 스키닝, 그림자, 머티리얼/애니메이터 GUID 등 상태 보관.

메서드

메서드 명 메서드 설명
PrimitiveRenderProxy(<Component*>) 컴포넌트별 생성자(메쉬, 폴리지, 지형, 데칼, 스프라이트)
~PrimitiveRenderProxy() 소멸자(리소스 직접 해제 없음)
IsNeedUpdateCulling() 컬링 재계산 필요 여부 반환
SetNeedUpdateCulling(flag) 컬링 재계산 플래그 설정
SetSkinnedMesh(isSkinned) 스키닝 메쉬 여부 지정
IsSkinnedMesh() 스키닝 여부 반환
Draw(deferredContext) 타입에 따라 드로우 수행(LOD 포함)
DrawShadow(deferredContext) 그림자 드로우(LOD 포함 조건 검사)
DrawInstanced(deferredContext, count) 인스턴스 드로우(구현부 별도)
DestroyProxy() 프록시 만료 처리 후 파괴 큐에 GUID 등록
InitializeLODs(thresholds) 메쉬 LOD 생성 요청(스키닝/이미 존재 시 무시)
SetLODEnabled(enable) LOD 사용 여부 설정
GetLODLevel(camera) 카메라 기반 현재 LOD 계산/저장 후 반환

맴버변수 (공통)

맴버변수 명 설명
m_proxyType 프록시 타입(PrimitiveProxyType)
m_worldPosition 월드 위치
m_worldMatrix 월드 변환 행렬
m_instancedID 인스턴스 GUID
m_isCulled 컬링 상태
m_isStatic 정적(트랜스폼 불변) 여부

메쉬 타입 관련

변수 설명
m_Material 머티리얼 포인터
m_Mesh 메쉬 포인터
m_animatorGuid 애니메이터 GUID
m_materialGuid 머티리얼 GUID
m_finalTransforms 스키닝 최종 행렬 배열 포인터
m_LightMapping 라이트맵 정보
m_currLOD 현재 선택된 LOD 레벨
m_bitflag 추가 비트플래그(렌더 모드 등)
m_isEnableShadow 섀도우 사용 여부
m_isShadowCast 그림자 투사 여부
m_isShadowRecive 그림자 수신 여부
m_isSkinnedMesh 스키닝 메쉬 여부
m_isAnimationEnabled 애니메이션 활성화 여부
m_isInstanced 인스턴싱 여부
m_EnableLOD LOD 사용 여부

지형 타입 관련

변수 설명
m_terrainMesh TerrainMesh shared_ptr
m_terrainMaterial TerrainMaterial 포인터
m_terrainGizmoBuffer 지형 편집 상수버퍼 데이터
m_terrainlayerBuffer 지형 레이어 상수버퍼 데이터

폴리지 타입 관련

변수 설명
m_foliageInstances 폴리지 인스턴스 목록
m_foliageTypes 폴리지 타입 목록
instanceMap 타입별 인스턴스 포인터 맵

데칼 타입 관련

변수 설명
m_diffuseTexture 디퓨즈 텍스처
m_normalTexture 노말 텍스처
m_occluroughmetalTexture ORM 텍스처
m_sliceX 텍스처 그리드 X 슬라이스 수
m_sliceY 텍스처 그리드 Y 슬라이스 수
m_sliceNum 현재 슬라이스 인덱스

스프라이트 타입 관련

변수 설명
m_quadMesh 사각형 메쉬
m_spriteTexture 스프라이트 텍스처
m_customPSOName 커스텀 PSO 이름 문자열
m_customPSO 커스텀 ShaderPSO shared_ptr
m_billboardType BillboardType (None/Spherical/Cylindrical)
m_billboardAxis Cylindrical 축 벡터
m_enableDepth 깊이 사용 여부

내부

변수 설명
m_isNeedUpdateCulling 컬링 업데이트 필요 플래그

PrimitiveProxyType

열거값 설명
MeshRenderer 일반 메쉬 렌더러
FoliageComponent 폴리지 렌더러
TerrainComponent 지형 렌더러
DecalComponent 데칼 렌더러
SpriteRenderer 스프라이트 렌더러
Expired 파괴/무효 상태

CreatorEngine

API Docs

API Reference
Main
PhysicsSystem
RenderEngine
ScriptBinder
Utility_Framework

etc

Clone this wiki locally