FoliMesh

Babylon.js용 로우폴리 스타일 야자수

로우폴리 야자수는 GLB 그대로 Babylon.js에 불러옵니다. @babylonjs/loaders의 ImportMeshAsync로 파일 하나를 읽고, 해변에 사본이 많이 필요하면 instantiateModelsToScene과 함께 LoadAssetContainerAsync를 씁니다. 모든 모델에 LOD0–LOD3, 충돌 메시, 바닥 피벗이 있어 lod0.addLODLevel(30, lod1)과 addLODLevel(80, lod2)만 걸면 멀리 있는 야자수가 자연스럽게 사라집니다.

면이 살아 있는 느낌은 플랫 셰이딩과 버텍스 컬러에서 나오며 텍스처는 전혀 없습니다. 버텍스 컬러를 곱하는 PBRMaterial 하나로 코코넛 야자, 대추야자, 워싱턴야자를 함께 처리할 수 있고, thin instances를 쓰면 수백 그루도 메시당 드로우 콜 한 번입니다. 잎이 솔리드 지오메트리라 알파 테스트와 오버드로가 없어 모바일 GPU에 유리합니다. LOD0은 보통 수백에서 2,000개 삼각형 수준이라 섬, 도시 건설 게임, WebGL/WebGPU 장면에 잘 맞습니다.

모델
5
LOD 단계
LOD0 – LOD3
포맷
GLB · FBX · OBJ

로우폴리 스타일 소개

로우폴리는 렌더링 비용과 빌드 용량 모두 가장 저렴한 스타일입니다.

  • 플랫 셰이딩: 면마다 노멀 하나로 선명한 각진 느낌을 내며 노멀 맵이 필요 없습니다.
  • 색은 버텍스 컬러(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)와 함께 사용합니다.

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기