본문으로 건너뛰기

Cryun's WIKI

FDynamicMesh3

// 메시 데이터 구조
struct FDynamicMesh3
{
    // 기하학적 요소
    TDynamicVector< FVector3d > Vertices;  // 정점 위치
    TDynamicVector< FIndex3i >  Triangles; // 삼각형 (V0, V1, V2)
    TDynamicVector< FEdge >     Edges;     // 엣지 정보
 
    // 토폴로지 정보
    FRefCountVector TriangleRefCounts; // 삼각형 참조 카운트
    FRefCountVector VertexRefCounts;   // 정점 참조 카운트
 
    // 속성 시스템
    TDynamicMeshAttributeSet< FDynamicMesh3 >* Attributes;
};

런타임 메쉬 편집용 동적 자료구조이다. Half-Edge 기반 토폴로지로 효율적인 순회와 동적 수정을 지원한다. 기하학 정보는 Vertices, Triangles, Edges에 담고 있으며 기타 정점별 UV, Normal, Color와 같은 정보는 Attributes에 담고 있는다.

메시 구성 요소:
  Vertices  ─┐
  Triangles ─┤ 기본 지오메트리
  Edges     ─┘

  UV Layers    ─┐
  Normal Layers ├─ 속성 오버레이
  Color Layers ─┘


주요 특성


  • Half-Edge 구조로 토폴로지 관계 저장
  • 런타임에 정점/삼각형/엣지 추가/삭제 가능
  • 독립적인 속성 오버레이 시스템
  • Split Vertices 지원 (같은 위치, 다른 UV/노멀)


속성 오버레이 시스템


속성 타입설명용도
UV Layers텍스처 좌표머티리얼 매핑
Normal Layers법선 벡터라이팅 계산
Color Layers버텍스 컬러페인팅, 시각화
Custom Attributes사용자 정의 속성특수 데이터 저장


장점


장점설명
동적 수정런타임에 자유로운 토폴로지 변경 가능
풍부한 연산Boolean, Remeshing, Simplification 등 지원
토폴로지 정보이웃 관계, 경계 검출 등 쿼리 용이
속성 시스템독립적인 UV/노멀/컬러 관리


일반적인 사용 사례


  • 절차적 메시 생성 : 런타임 지오메트리 생성
  • 메시 편집 도구 : 모델링, 스컬팅 시스템
  • Boolean 연산 : CSG, 메시 결합/차집합/교집합
  • 메시 단순화/세분화 : LOD 생성, Remeshing
  • UV 언래핑 : 자동 UV 생성 및 최적화


성능 특성


  • 정점 추가 : O(1)
  • 삼각형 추가 : O(1)
  • 정점 삭제 : O(degree) - 연결된 엣지 수에 비례
  • 토폴로지 쿼리 : O(1) ~ O(degree)
  • 메모리 : O(V + E + T) - Half-Edge 구조로 StaticMesh 대비 3~5배


Functions