FoliMesh

Растительность земли для three.js

Папоротник, Трава и Тростник поставляются в GLB: один вызов GLTFLoader из three/addons — и модели уже в сцене. Уровни LOD0–LOD3 подключаются к THREE.LOD через lod.addLevel(mesh, distance), и движок сам переключает их по расстоянию до камеры каждый кадр; DRACOLoader или KTX2Loader нужны только если файл использует соответствующие расширения.

Для лугов и лесной подстилки InstancedMesh рисует тысячи копий за один draw call, а BatchedMesh смешивает разные вариации. Так как THREE.LOD не работает на уровне инстанса, инстансы группируют по LOD внутри чанка. alphaMode MASK из glTF превращается в material.alphaTest, двусторонние листья получают side: THREE.DoubleSide. Невидимая коллизия передаётся в Rapier или cannon-es, и всё работает и на WebGLRenderer, и на WebGPURenderer.

Модели
3
Уровни детализации
LOD0 – LOD3
Форматы
GLB · FBX · OBJ

Как использовать в three.js

В three.js загружайте GLB через GLTFLoader из three/addons; DRACOLoader или KTX2Loader нужны, только если файл использует эти расширения.

  • LOD по расстоянию: THREE.LOD и lod.addLevel(mesh, distance) для LOD0–LOD3; уровни переключаются по дистанции до камеры каждый кадр.
  • Леса: InstancedMesh рисует тысячи копий за один draw call, а BatchedMesh позволяет смешивать несколько вариаций деревьев. THREE.LOD не работает на уровне отдельных инстансов, поэтому группируйте инстансы по LOD для каждого чанка сами.
  • Листва: alphaMode MASK из glTF превращается в material.alphaTest, а двусторонние материалы автоматически получают side: THREE.DoubleSide.
  • Меш коллизии: сделайте невидимым и передайте в физическую библиотеку, например Rapier или cannon-es.

Работает и с WebGLRenderer, и с WebGPURenderer.

Другие категории

То же в других стилях

То же для других движков