О стиле Реалистичный
Реалистичные модели используют 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 листвы.
Как использовать в PlayCanvas
PlayCanvas работает с GLB как с container-ассетом. В редакторе загрузите GLB (FBX при импорте конвертируется в GLB) и получите шаблон с иерархией модели; в коде без редактора используйте app.assets.loadFromUrl(url, 'container') и asset.resource.instantiateRenderEntity().
- LOD: встроенного LOD-компонента нет, поэтому небольшой скрипт сравнивает расстояние до камеры и переключает render-компоненты сущностей LOD0–LOD3.
- Статичные деревья можно объединить в batch group, чтобы сократить draw calls; для больших лесов — аппаратный инстансинг через
meshInstance.setInstancing()и вершинный буфер с трансформами. - Листва: MASK из glTF задаёт
alphaTestу StandardMaterial; для двусторонних листьев отключите отсечение граней (cull none). - Меш коллизии: компонент collision типа mesh плюс статический rigidbody, render-компонент отключён.



