O stylu Realistyczny
Realistyczne modele korzystają z workflow PBR metal/roughness, który glTF 2.0, Unity, Unreal, Godot i three.js czytają bezpośrednio.
- Kora: mapy koloru, normalnych i chropowatości na pniu i gałęziach.
- Liście: karty z alpha testem (masked) i teksturami kęp liści, a nie alpha blend — zapisują głębię, nie wymagają sortowania i rzucają poprawne cienie.
- Kora i liście mają osobne materiały, więc liczba draw calli jest przewidywalna, a GPU instancing działa bez problemów.
- LOD0 służy do zbliżeń; LOD1–LOD3 usuwają gałęzie i karty liści, a ostatni poziom jest dość lekki na duże odległości.
Najlepiej sprawdzają się w grach FPP i TPP, survivalach, otwartych światach i symulatorach na PC i konsole. Na urządzeniach mobilnych zacznij od LOD1 lub LOD2 jako najbliższego poziomu i pilnuj overdraw liści.
Użycie w Babylon.js
Babylon.js ładuje GLB przez loader glTF z @babylonjs/loaders: ImportMeshAsync (lub SceneLoader.ImportMeshAsync w starszym kodzie) albo LoadAssetContainerAsync, gdy potrzebujesz wielu kopii przez instantiateModelsToScene.
- LOD:
lod0.addLODLevel(30, lod1),addLODLevel(80, lod2)itd.;nullzamiast siatki ukrywa obiekt powyżej tej odległości. - Tysiące drzew: thin instances (
thinInstanceAddz macierzami) rysują się jednym draw callem na siatkę; zwykłegocreateInstanceużyj, gdy każde drzewo potrzebuje własnego pickingu lub logiki. - Liście: MASK z glTF staje się PBRMaterial z alpha testem (
MATERIAL_ALPHATEST). - Siatka kolizji:
isVisible = falsei użycie zcheckCollisionslub fizyką Havok (PhysicsAggregatez kształtem MESH).