로우폴리 스타일 소개
로우폴리는 렌더링 비용과 빌드 용량 모두 가장 저렴한 스타일입니다.
- 플랫 셰이딩: 면마다 노멀 하나로 선명한 각진 느낌을 내며 노멀 맵이 필요 없습니다.
- 색은 버텍스 컬러(glTF COLOR_0)에 저장: 텍스처도, UV 작업도 없고 VRAM도 거의 쓰지 않습니다.
- 잎은 알파 카드가 아닌 실제 지오메트리: 알파 테스트와 투명 오버드로가 없어 모바일 GPU에 유리합니다.
- 씬의 모든 모델이 머티리얼 하나를 공유할 수 있어 나무를 쉽게 배칭·인스턴싱할 수 있습니다.
- LOD0의 일반적인 예산은 수백에서 2천 개 정도의 삼각형입니다.
모바일, WebGL/WebGPU, VR, 전략, 도시 건설, 스타일라이즈드 인디 게임에 잘 맞습니다. 엔진에서는 버텍스 컬러를 곱하는 머티리얼을 사용하세요.
Babylon.js에서 사용하기
Babylon.js는 @babylonjs/loaders의 glTF 로더로 GLB를 불러옵니다. ImportMeshAsync(예전 코드에서는 SceneLoader.ImportMeshAsync)를 쓰거나, 복제본이 많이 필요하면 LoadAssetContainerAsync와 instantiateModelsToScene을 사용합니다.
- LOD:
lod0.addLODLevel(30, lod1),addLODLevel(80, lod2)처럼 등록하며, 메시 대신null을 넘기면 그 거리 너머에서 오브젝트가 숨겨집니다. - 수천 그루의 나무: thin instance(행렬과 함께
thinInstanceAdd)는 메시당 드로우 콜 하나로 그려집니다. 나무마다 피킹이나 로직이 필요하면 일반createInstance를 쓰세요. - 잎: glTF MASK는 알파 테스트 PBRMaterial(
MATERIAL_ALPHATEST)로 매핑됩니다. - 콜리전 메시:
isVisible = false로 두고checkCollisions나 Havok 물리(MESH 셰이프의PhysicsAggregate)와 함께 사용합니다.