FoliMesh

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

사실적인 식생은 변환 없이 three.js에 들어갑니다. three/addons의 GLTFLoader로 GLB를 불러오면 PBR 메탈/러프니스 머티리얼 — 나무껍질은 base color·노멀·러프니스 맵, 잎은 마스크 처리된 카드 — 이 제작된 그대로 렌더링됩니다. DRACOLoader나 KTX2Loader는 파일이 해당 확장을 쓸 때만 추가하세요. LOD0~LOD3 메시는 lod.addLevel(mesh, distance)로 THREE.LOD에 넣으면 카메라 거리에 따라 매 프레임 전환됩니다.

42개 모델에는 참나무, 유럽소나무, 가문비나무, 자작나무, 수양버들, 올리브나무, 코코넛 야자가 있어 숲과 사막 모두 구성할 수 있습니다. 대량 배치는 InstancedMesh, 여러 수종을 섞을 때는 BatchedMesh를 쓰세요. THREE.LOD는 인스턴스 단위로 적용되지 않으니 청크별로 레벨 그룹을 직접 나눠야 합니다. 콜리전 메시는 보이지 않게 두고 Rapier나 cannon-es에 넘깁니다. 1인칭/3인칭, 생존, 오픈 월드, 시뮬레이터에 어울리고 PC와 콘솔에서 잘 돌아갑니다. 모바일에서는 LOD1이나 LOD2부터 시작하고 잎 카드의 오버드로를 확인하세요.

모델
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를 가장 가까운 단계로 쓰고 잎의 오버드로를 확인하세요.

three.js에서 사용하기

three.js에서는 three/addons의 GLTFLoader로 GLB를 불러오며, DRACOLoader나 KTX2Loader는 파일이 해당 확장을 쓸 때만 필요합니다.

  • 거리 기반 LOD: THREE.LOD에 lod.addLevel(mesh, distance)로 LOD0–LOD3을 등록하면 매 프레임 카메라 거리에 따라 단계가 바뀝니다.
  • 숲: InstancedMesh는 수천 개의 복제본을 드로우 콜 하나로 그리고, BatchedMesh는 여러 나무 변형을 섞을 수 있습니다. THREE.LOD는 인스턴스 단위로 동작하지 않으므로 청크마다 LOD별로 인스턴스를 직접 묶으세요.
  • 잎: glTF alphaMode MASK는 material.alphaTest로, 양면 머티리얼은 자동으로 side: THREE.DoubleSide가 됩니다.
  • 콜리전 메시: 보이지 않게 두고 Rapier나 cannon-es 같은 물리 라이브러리에 넘기세요.

WebGLRenderer와 WebGPURenderer 모두에서 동작합니다.

팩

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기