서론
Voxel 기반 레벨 제작 게임은 마인크래프트(Minecraft) 이후로도 지속적으로 발전해왔으며, 대규모 월드, 실시간 편집, 파괴 및 생성, 다양한 상호작용 등에서 높은 퍼포먼스와 효율적인 메모리 관리가 필수적이다. 본 리포트는 마인크래프트를 제외하고 2020년 이후 개발·출시된 상용 Voxel 게임 중 최적화 기술이 뛰어나다고 평가받는 대표 사례를 선정하고, GDC, SIGGRAPH, Eurographics의 관련 기술 발표 및 최신 Voxel 렌더링 최적화 트렌드를 분석한다. 특히 Unity Engine 6 환경에서의 구현 및 최적화 관점에 중점을 둔다.
1. 2020년 이후 상용화된 최적화 Voxel 게임 사례
1.1 Avoyd (Enkisoftware, 2024)
Avoyd는 고해상도 Voxel 월드 편집과 실시간 렌더링을 지원하는 Voxel Editor/게임으로, 2024년 4월 GPU 가속 Path Tracing 렌더러를 도입하여 렌더링 퍼포먼스와 품질을 크게 개선하였다.
- 주요 최적화 기술:
- GPU 기반 Path Tracer: OpenGL GLSL 기반, Voxel Octree 데이터구조 활용
- Sparse Voxel Octree(SVO)로 대규모 월드의 메모리 사용 최소화 및 빠른 레이 트레이싱 지원
- Path Tracing 과정에서 샘플링 최적화, GPU와 CPU 간의 데이터 전송 효율화, 버퍼 업로드 병목 제거 등 다양한 최적화 적용
- 실시간 편집 및 렌더링 성능을 위해 동적 데이터 구조와 병렬 처리 적극 활용
- 기술 발표 및 자료:
- Enkisoftware 공식 Devlog: Implementing a GPU Voxel Octree Path Tracer
- Voxel GPU Rendering in Avoyd 0.21
- 주요 내용: CPU 대비 10배 이상 빠른 렌더링, 대규모 Voxel 월드에서도 실시간 편집/렌더링 가능, Path Tracing의 병렬화 및 SVO 기반 메모리 절약 기법 등[1][2][3].
1.2 Voxel Tycoon (VoxelTycoon Team, 2025)
Voxel Tycoon은 무한한 Voxel 지형에서 교통, 공장, 채굴 등 복잡한 시뮬레이션을 제공하는 전략 게임이다.
- 주요 최적화 기술:
- Chunk 기반 월드 관리 및 동적 LOD(레벨 오브 디테일) 적용
- 월드 데이터 스트리밍, 비동기적 데이터 로딩, Greedy Meshing 등으로 렌더링 부하 최소화
- GPU/CPU 부하 균형을 위한 멀티스레딩, 메모리 압축 및 효율적 캐싱 구조
- Ambient Occlusion 등 조명 효과에서도 GLSL 최적화, 인접 Voxel 탐색 알고리즘 개선
- 기술 발표 및 자료:
1.3 Trove (Trion Worlds, 2020s~)
Trove는 대규모 MMO 환경에서 수많은 동시 사용자와 거대한 Voxel 월드를 지원하는 대표적인 상용 Voxel 게임이다.
- 주요 최적화 기술:
- Chunk 단위 월드 스트리밍 및 동적 LOD
- GPU Instancing, Mesh Batching, Occlusion/Frustum Culling
- 서버-클라이언트 구조에서 월드/오브젝트 데이터의 효율적 동기화 및 캐싱
- 실시간 파괴/생성, 대규모 동시 사용자 환경에서의 퍼포먼스 최적화
- 기술 발표 및 자료:
1.4 Voxile (VoxRay Games, 2025), Astro Colony (Terad Games, 2025), VoxelChain (WebGPU 기반 브라우저 엔진)
이외에도 Voxile(실시간 Ray-Traced Lighting, Voxel Editor 내장), Astro Colony(우주 자동화, 파괴/생성, 무한 Voxel 월드), VoxelChain(브라우저 기반 실시간 Path Tracing, WebGPU 활용) 등 최신 Voxel 게임/엔진에서도 다양한 최적화 사례가 보고되고 있음[10][11][12].
2. 최신 Voxel Rendering 최적화 트렌드 분석
2.1 메쉬 생성 및 렌더링 최적화
- Greedy Meshing: 인접한 평면 Voxel을 하나의 큰 폴리곤으로 합쳐 렌더링할 삼각형 수를 획기적으로 감소시킴. Chunk 단위로 메시를 생성하고, 변경이 있을 때만 해당 Chunk만 재생성[13][14].
- Sparse Voxel Octree (SVO) / DAG: 월드를 계층적으로 압축하여 불필요한 Voxel 데이터 및 연산을 줄임. SVO는 비어있는 공간을 빠르게 스킵할 수 있고, DAG는 중복 서브트리를 공유해 메모리 사용량을 극적으로 절감[15][16][17].
- GPU Instancing 및 Compute Shader 활용: Unity Engine 6에서 GPU Instancing, Compute Shader를 활용해 대량의 Voxel을 효율적으로 처리. 메시 생성, LOD, 컬링, 조명 효과 등을 GPU에서 병렬 처리[18][19][14].
2.2 컬링(Culling) 및 LOD
- Frustum/Occlusion Culling: 카메라 시야 밖이거나 가려진 Chunk/오브젝트를 렌더링 대상에서 제외. Chunk 단위로 Bounding Volume을 계산하여 GPU/CPU 부하를 줄임[20][21][22][23][24][9][25].
- 멀티스레딩 컬링: CPU의 멀티코어를 활용해 컬링 연산을 분산, 실시간 대규모 월드에서 컬링 속도 향상[20].
- Chunk/LOD 관리: 카메라 거리, 화면 내 픽셀 점유율 등 다양한 기준으로 LOD를 동적으로 조정. SVO/DAG 구조와 결합해 연속적이고 자연스러운 디테일 전환 구현[17][26].
2.3 메모리 및 데이터 관리 최적화
- 압축 및 동적 할당: SVO, DAG, Run-Length Encoding, Zlib Deflate 등 다양한 압축 기법으로 메모리 사용량 최소화. 필요할 때만 데이터를 동적으로 로딩/해제해 메모리 footprint를 줄임[15][27][28].
- Selective Voxel Sampling & Neural Representation: Fourier Feature 기반 Neural Representation, Morphological Dilation 등으로 불필요한 Voxel 데이터 연산을 줄이고, 네트워크 파라미터만 저장해 극한의 압축률 달성(최신 논문)[27].
- GPU-CPU 데이터 동기화 최적화: 최소한의 데이터만 GPU로 전송, 필요 Chunk/LOD만 업데이트. Compute Shader, Asynchronous Buffer Update 등 활용[1][2].
2.4 실시간 Ray Tracing 및 Path Tracing
- Sparse Voxel 기반 Ray Tracing: SVO 혹은 Sparse Grid를 활용해 불필요한 레이-볼륨 교차 연산을 줄이고, O(1) 시간 내 가시성 판별 등 최신 알고리즘 적용[24][26][29].
- GPU Path Tracing 최적화: 샘플링 최적화, Denoising, BVH/Octree 기반 가속구조, 비동기적 연산, 메모리 압축 등[1][2].
3. Unity Engine 6 기반 Voxel 게임 레벨 제작/최적화
- Chunk/LOD 기반 구조 설계: 대규모 월드는 Chunk 단위로 분할, 각 Chunk는 LOD/컬링/메시 생성/업데이트를 독립적으로 관리
- GPU Instancing, Compute Shader 적극 활용: 대량의 Voxel 처리, 메시 생성, 컬링, 조명 효과 등에서 GPU 병렬화로 성능 극대화
- Profiler, Performance Testing Package 활용: Unity의 Profiler 및 Performance Testing Package로 병목 구간을 정량적으로 분석하고, 최적화 반복[14]
- Sparse Voxel Octree/DAG 도입 고려: 대규모 월드, 복잡한 지형에서 메모리 사용량과 렌더링 효율을 동시에 확보[30][17]
- Greedy Meshing, 데이터 압축, 실시간 스트리밍: 메시 생성 시 Greedy Meshing, 데이터는 압축 저장 및 필요 시만 로딩, 실시간 스트리밍 구조 설계
결론
2020년 이후 상용화된 Voxel 게임들은 SVO/DAG, Greedy Meshing, GPU Instancing, 멀티스레딩 컬링, 실시간 데이터 스트리밍 등 다양한 최신 최적화 기술을 적극적으로 도입하고 있다. Avoyd, Voxel Tycoon, Trove 등은 대규모 월드, 실시간 편집/파괴, 고품질 렌더링 등에서 매우 높은 퍼포먼스를 달성하고 있으며, Unity Engine 6의 최신 기능과 결합해 보다 대규모/고품질 Voxel 게임 제작이 가능해지고 있다.
특히, 컬링(Frustum/Occlusion), LOD, SVO/DAG 기반 메모리 최적화, GPU-CPU 연산 분산, Neural Representation 기반 압축 등은 앞으로도 Voxel 렌더링의 핵심 트렌드로 자리잡을 전망이다. Unity Engine 6 환경에서는 Compute Shader, GPU Instancing, Profiler, Performance Test 등 엔진 고유의 기능을 적극 활용해 최적화 효과를 극대화하는 것이 권장된다.
참고 문헌
- [1] Enkisoftware. (2023). Implementing a GPU Voxel Octree Path Tracer. https://www.enkisoftware.com/devlogpost-20230823-1-Implementing-a-GPU-Voxel-Octree-Path-Tracer
- [2] Enkisoftware. (2023). Avoyd's GPU Voxel Path Tracer: Sampling and Performance. https://www.enkisoftware.com/t/6266014494883840
- [9] Trove Wiki. (2023). Trove Wiki: Performance. https://trove.fandom.com/wiki/Trove_Wiki:Performance
- [14] Utka, K. (2024). Voxel Rendering in Unity Part 3. https://utkaka.github.io/blog/2024/01/22/voxel-rendering-in-unity-part-3.html
- [15] Crassin, C., et al. (2009). GigaVoxels: Ray-Guided Streaming for Efficient and Detailed Voxel Rendering. https://maverick.inria.fr/Publications/2009/CNLSE09/GigaVoxels_Siggraph09_Slides.pdf
- [17] Jabłoński, Szymon, et al. (2024). A Survey on Voxel-Based Graphics Systems. https://omega-ojt.ii.pw.edu.pl/info/article/WUT1e818969af3248f994e75fe7be473f7d/
- [20] Number Analytics. (2024). Advanced Occlusion Culling Techniques. https://www.numberanalytics.com/blog/advanced-occlusion-culling-techniques
- [21] GDC Vault. (2023). Maximizing Graphics Performance with Flexible Culling Techniques. https://gdcvault.com/play/1034621/Maximizing-Graphics-Performance-with-Flexible
- [22] GDC Vault. (2019). Math In Game Development Summit. https://gdcvault.com/play/1027097/Math-In-Game-Development-Summit
- [23] GDC Vault. (2020). Advances in Real-Time Rendering. https://gdcvault.com/play/1024800/-Advances-in-Real-Time
- [24] Zheng, L., et al. (2023). Real-time Voxel-based Occlusion Culling for Massive 3D Environments. https://zheng95z.github.io/publications/roma23
- [25] Procedural World. (2015). Voxel Occlusion. https://procworld.blogspot.com/2015/08/voxel-occlusion.html
- [26] Wang, P., et al. (2024). Efficient Voxel-based Hierarchical Sampling for Real-time Ray Tracing. https://arxiv.org/abs/2412.04459
- [27] Xiang, L., et al. (2024). NeRF-Voxel: Extending Neural Radiance Fields to Sparse Voxel Grids. https://arxiv.org/abs/2508.08937
- [28] Yuan, Z., et al. (2021). Memory-Efficient Hierarchical Neural Representation of High-Resolution 3D Voxel Models. https://ieeexplore.ieee.org/document/9578231/
- [29] Lin, C., et al. (2023). Real-time Neural Voxel Rendering via Sparse Grid Representation. https://export.arxiv.org/pdf/2308.09249v1.pdf
- [30] Adam, Y. (2023). Building a High-Performance Voxel Engine in Unity. https://medium.com/@adamy1558/building-a-high-performance-voxel-engine-in-unity-a-step-by-step-guide-part-6-high-resolution-e0217efd56d2
'UNITY3D' 카테고리의 다른 글
Greedy Meshing(그리디 메싱) 이론, 처리 구조, 활용 이유 및 Voxel Chunk(복셀 청크) (0) | 2025.09.27 |
---|---|
URP 기술적 개선 제안 (2025.09.15 추가) (0) | 2025.09.15 |
Unity 6.2.1 HDRP vs URP 셰이더 코드 비교 연구 (1) | 2025.09.07 |
MagicaCloth2 Dynamic Optimizer (0) | 2025.07.22 |
고객사와 함께 읽는 울티밋 가이드 프로파일링 유니티 (4) | 2025.07.08 |