FoliMesh

Babylon.js용 사실적 스타일 3D 모델

Babylon.js는 @babylonjs/loaders의 glTF 로더로 이 세트의 GLB를 그대로 읽습니다. 나무 한 그루는 ImportMeshAsync로, 같은 참나무나 유럽소나무를 여러 그루 복제할 때는 instantiateModelsToScene과 LoadAssetContainerAsync를 씁니다. 42개 모델 모두 LOD0–LOD3와 바닥 피벗을 갖추고 있어 lod0.addLODLevel(30, lod1), addLODLevel(80, lod2)만 등록하면 됩니다.

사실적 스타일 재질은 PBR 메탈/러프니스 워크플로를 따릅니다. 나무껍질에는 베이스 컬러, 노멀, 러프니스 맵이 들어가고, 잎 카드는 MASK 텍스처로 들어와 Babylon.js에서 알파 테스트 PBRMaterial(MATERIAL_ALPHATEST)이 됩니다. 깊이를 기록하고 정렬이 필요 없으며 그림자도 정확합니다. 껍질과 잎이 별도 재질이라 GPU 인스턴싱과 thinInstanceAdd 비용을 예측하기 쉽고, 오픈 월드·생존·시뮬레이터에 적합합니다.

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

팩

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기