FoliMesh

Babylon.js용 지피식물

Babylon.js는 @babylonjs/loaders의 glTF 로더로 GLB를 불러옵니다. ImportMeshAsync를 쓰고, 복사본이 많으면 instantiateModelsToScene과 함께 LoadAssetContainerAsync를 사용합니다. 고사리, 풀 무더기, 갈대는 LOD0–LOD3와 충돌 메시를 갖춰 브라우저에서도 숲 바닥과 물가를 가볍게 유지합니다.

LOD는 lod0.addLODLevel(30, lod1), addLODLevel(80, lod2)로 연결하고, 메시에 null을 넘기면 그 거리 밖에서 사라집니다. 수천 개의 풀은 thin instances(thinInstanceAdd에 행렬)로 메시당 한 번의 드로우 콜로 그리며, 개별 피킹이 필요할 때만 createInstance를 씁니다. 잎은 glTF MASK라서 알파 테스트 PBRMaterial이 됩니다. 충돌 메시는 isVisible = false로 두고 checkCollisions나 Havok(MESH 형태의 PhysicsAggregate)에 연결합니다.

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

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기