FoliMesh

Babylon.js용 사실적 스타일 지피식물

Babylon.js는 이 glTF 2.0 모델을 GLB에서 바로 읽습니다. @babylonjs/loaders의 ImportMeshAsync로 불러오거나, 고사리·풀 무더기·갈대를 instantiateModelsToScene으로 초원 전체에 복제할 때는 LoadAssetContainerAsync를 사용하세요. 껍질은 PBR, 잎은 알파 테스트 카드라서 재질 수가 적고, thin instance는 메시당 하나의 드로우 콜로 묶입니다.

LOD0가 잎과 줄기의 디테일을 담고, lod0.addLODLevel(30, lod1)과 addLODLevel(80, lod2)가 거리에 따라 이어받습니다. 보이지 않는 충돌 메시는 checkCollisions나 Havok PhysicsAggregate와 함께 씁니다. 사실적 지피식물은 1인칭·3인칭 게임, 생존, 오픈 월드, 시뮬레이터에 어울리며, 모바일에서는 LOD1이나 LOD2를 가장 가까운 단계로 두고 잎 카드 오버드로를 살피세요.

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

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기