Volume Octree Module
VolumeOctree
3D 공간 분할 & 데이터 관리 시스템
3D 공간을 재귀적으로 8분할하여 대규모 월드 데이터를 효율적으로 저장·조회하는 옥트리 모듈.
NativeList<Node> 기반 구조와 Morton Key 인코딩을 결합하여
청크 단위 고속 탐색을 지원합니다.
주요 구성 요소
제네릭 데이터 T(unmanaged)를 노드에 저장하는 단일 옥트리.
내부는 NativeList<Node> 기반이며,
루트에서 maxDepth까지 동적으로 분할됩니다.
월드 공간을 origin · chunkSize 기준으로 청크로 나누어
여러 옥트리를 통합 관리합니다.
Morton Key 인코딩으로 3D 인덱스를 단일 정수 키로 변환해 고속 검색을 지원합니다.
옥트리의 원점·청크 크기·최대 깊이를 인스펙터에서 설정하고, 씬 뷰 에디터 인터페이스를 제공하는 Unity MonoBehaviour 래퍼입니다.
상세 동작 원리
T 값 저장false 반환true(x, y, z)Chunk Key
Encode
Hash Key
지연 초기화: 청크가 존재하지 않으면 접근 시점에 생성하여 메모리를 절약합니다.
에디터 기능
씬 뷰에서 핸들(Handle)을 드래그하여 옥트리의 원점(origin)을 직관적으로 편집할 수 있는 씬 뷰 툴입니다. 인스펙터 수치 입력 없이 공간 상에서 직접 배치 위치를 조정합니다.
씬 뷰 오버레이를 통해 현재 옥트리 상태를 실시간으로 시각화합니다. 청크 경계·루트 바운드·현재 설정값을 와이어프레임으로 표시하여 공간 분할 상태를 즉시 확인할 수 있습니다.
분할 깊이 구조
루트(depth 0)부터 maxDepth까지 각 레벨에서 최대 8개의 자식 노드로 분기됩니다.
T value
T value
T value