FoliMesh

Деревья в стиле Реалистичный для three.js

Реалистичные деревья подключаются к сцене three.js через GLTFLoader из three/addons: GLB приходит с мешами LOD0–LOD3, готовыми для THREE.LOD. Добавьте уровень через lod.addLevel(mesh, distance) — и рендерер будет переключать их по дистанции камеры каждый кадр, что важно, когда Дуб, Сосна или Ива стоят прямо на пути игрока от первого лица.

Для леса InstancedMesh держит тысячи стволов в одном вызове отрисовки, а BatchedMesh смешивает вариации Ели, Берёзы и Клёна; THREE.LOD работает по объекту, поэтому инстансы нужно группировать по уровням внутри чанка. Листва — карточки с alpha-test (alphaMode MASK из glTF становится material.alphaTest, двусторонние материалы получают THREE.DoubleSide), поэтому сортировка не нужна, а тени корректны. Коллизионные меши остаются невидимыми для Rapier или cannon-es; всё работает и в WebGLRenderer, и в WebGPURenderer.

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

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

Реалистичные модели используют 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.

Наборы

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

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

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