О стиле Реалистичный
Реалистичные модели используют 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 листвы.
Как использовать в Babylon.js
Babylon.js загружает GLB через glTF-загрузчик из @babylonjs/loaders: ImportMeshAsync (или SceneLoader.ImportMeshAsync в старом коде) либо LoadAssetContainerAsync, когда нужно много копий через instantiateModelsToScene.
- LOD:
lod0.addLODLevel(30, lod1),addLODLevel(80, lod2)и так далее;nullвместо меша скрывает объект дальше этой дистанции. - Тысячи деревьев: thin instances (
thinInstanceAddс матрицами) рисуются одним draw call на меш; обычныеcreateInstanceберите, когда каждому дереву нужны свой пикинг или логика. - Листва: MASK из glTF превращается в PBRMaterial с alpha-test (
MATERIAL_ALPHATEST). - Меш коллизии:
isVisible = falseи использование сcheckCollisionsили физикой Havok (PhysicsAggregateс формой MESH).

