FoliMesh

Наборы 3D-ассетов в стиле Реалистичный для three.js

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

PBR-кора и листовые карты с alpha test одинаково работают в WebGLRenderer и WebGPURenderer. «Лес умеренного пояса» и «Хвойный лес» хорошо собираются через InstancedMesh, а BatchedMesh смешивает варианты деревьев в одном вызове. THREE.LOD не действует на отдельный инстанс, поэтому инстансы группируют по уровням внутри чанка. Кора и листья — разные материалы, это держит число draw call предсказуемым, а коллизионные меши остаются невидимыми для Rapier или cannon-es. Подходит для выживания, открытых миров и игр от первого и третьего лица; на мобильных начинайте с LOD1 или LOD2.

О стиле Реалистичный

Реалистичные модели используют PBR-схему metal/roughness, которую напрямую читают glTF 2.0, Unity, Unreal, Godot и three.js.

  • Кора: карты цвета, нормалей и шероховатости на стволе и ветках.
  • Листва: карточки с текстурой веток листьев на alpha-test (masked), а не alpha-blend — пишут глубину, не требуют сортировки и дают правильные тени.
  • Кора и листва — отдельные материалы: число draw calls предсказуемо, GPU-инстансинг работает без проблем.
  • LOD0 — для крупного плана; LOD1–LOD3 убирают ветки и карточки листвы, последний уровень достаточно лёгкий для дальних планов.

Лучше всего подходят для игр от первого и третьего лица, выживания, открытых миров и симуляторов на ПК и консолях. На мобильных берите LOD1 или LOD2 как ближний уровень и следите за overdraw листвы.

Как использовать в 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.

Наборы

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

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