FoliMesh

Babylon.js용 선인장 · 다육식물

Babylon.js에서 사막 장면이 버벅이는 이유는 대개 텍스처가 아니라 한 번에 불러오는 식물 수입니다. 여기 다섯 모델 — 사와로 선인장, 배럴 선인장, 부채선인장, 아가베, 알로에 — 이 GLB로 제공되며 @babylonjs/loaders로 불러옵니다. 한 그루만 놓을 때는 ImportMeshAsync, 같은 종을 맵 전체에 복제할 때는 instantiateModelsToScene과 함께 LoadAssetContainerAsync를 씁니다.

모든 모델에 LOD0–LOD3, 충돌 메시, 바닥 피벗이 들어 있어 lod0.addLODLevel(30, lod1)과 addLODLevel(80, lod2)로 카메라가 멀어질수록 폴리곤을 줄일 수 있고, null을 넘기면 멀리 있는 개체를 완전히 감춥니다. 잎과 가시 카드는 glTF MASK를 사용해 Babylon.js에서 알파 테스트 PBRMaterial로 읽힙니다. 수천 그루의 아가베는 thinInstanceAdd로 메시당 드로우 콜 하나에 들어가고, 개별 선택이 필요한 개체는 createInstance로 바꾸면 됩니다. 보이지 않는 충돌 메시는 checkCollisions나 Havok PhysicsAggregate에 연결합니다.

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

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)와 함께 사용합니다.

팩

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기