FoliMesh

Babylon.js용 사실적 스타일 덤불

사실적 스타일 덤불은 GLB로 제공되며, Babylon.js에서는 @babylonjs/loaders의 glTF 로더가 그대로 처리합니다. 단일 산울타리는 ImportMeshAsync로, 회양목이나 개암나무를 줄지어 배치할 때는 LoadAssetContainerAsync와 instantiateModelsToScene을 함께 씁니다. 여덟 모델 모두 LOD0–LOD3와 바닥 피벗을 갖추어 lod0.addLODLevel(30, lod1), addLODLevel(80, lod2)에 바로 연결되고, 마지막 단계에 null을 넘기면 덤불이 사라집니다.

잎은 MATERIAL_ALPHATEST를 쓰는 마스크 카드로 깊이를 기록하고 정렬이 필요 없으며 그림자도 정확합니다. 수피와 잎이 별도 PBR 머티리얼을 유지하므로 향나무나 들장미를 수천 그루 흩뿌릴 때 thin instances와 잘 맞습니다. 보이지 않는 콜리전 메시는 checkCollisions나 Havok PhysicsAggregate로 사용하고, seed를 바꿀 때마다 실루엣이 달라집니다.

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

사실적 스타일 소개

사실적인 모델은 glTF 2.0, Unity, Unreal, Godot, three.js가 그대로 읽는 PBR metal/roughness 워크플로를 사용합니다.

  • 나무껍질: 줄기와 가지에 베이스 컬러, 노멀, 러프니스 맵.
  • 잎: 잎 뭉치 텍스처를 쓴 알파 테스트(Masked) 카드로, 알파 블렌딩이 아니어서 깊이를 기록하고 정렬이 필요 없으며 그림자도 정확합니다.
  • 나무껍질과 잎은 별도 머티리얼이라 드로우 콜 수를 예측하기 쉽고 GPU 인스턴싱과 잘 맞습니다.
  • LOD0은 근경용이고, LOD1–LOD3은 가지와 잎 카드를 줄여 마지막 단계는 원경에 충분히 가볍습니다.

PC·콘솔의 1인칭/3인칭 게임, 서바이벌, 오픈 월드, 시뮬레이터에 가장 잘 맞습니다. 모바일에서는 LOD1 또는 LOD2를 가장 가까운 단계로 쓰고 잎의 오버드로를 확인하세요.

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

팩

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기