FoliMesh

Rośliny okrywowe do three.js

Paproć, kępa trawy i trzcina trafiają do projektu jako GLB: jedno wywołanie GLTFLoader z three/addons i modele są w scenie. Poziomy LOD0–LOD3 podłącza się do THREE.LOD przez lod.addLevel(mesh, distance), a silnik przełącza je na podstawie odległości kamery w każdej klatce; DRACOLoader lub KTX2Loader są potrzebne tylko wtedy, gdy plik naprawdę używa tych rozszerzeń.

Na łąki i runo leśne InstancedMesh rysuje tysiące kopii w jednym draw callu, a BatchedMesh miesza warianty. Ponieważ THREE.LOD nie działa per instancja, instancje grupuje się według LOD w obrębie chunka. alphaMode MASK z glTF staje się material.alphaTest, a dwustronne liście dostają side: THREE.DoubleSide. Niewidoczna siatka kolizji trafia do Rapiera lub cannon-es, a całość działa i na WebGLRenderer, i na WebGPURenderer.

Modele
3
Poziomy szczegółowości
LOD0 – LOD3
Formaty
GLB · FBX · OBJ

Użycie w three.js

W three.js ładuj GLB przez GLTFLoader z three/addons; DRACOLoader lub KTX2Loader dodaj tylko wtedy, gdy plik używa tych rozszerzeń.

  • LOD według odległości: THREE.LOD z lod.addLevel(mesh, distance) dla LOD0–LOD3; poziom przełącza się co klatkę zależnie od odległości od kamery.
  • Lasy: InstancedMesh rysuje tysiące kopii w jednym draw callu, a BatchedMesh pozwala mieszać kilka wariantów drzew. THREE.LOD nie działa per instancja, więc samodzielnie grupuj instancje według LOD w każdym chunku.
  • Liście: alphaMode MASK z glTF staje się material.alphaTest, a materiały dwustronne automatycznie dostają side: THREE.DoubleSide.
  • Siatka kolizji: pozostaw niewidoczną i przekaż do biblioteki fizyki, np. Rapier lub cannon-es.

Działa zarówno z WebGLRenderer, jak i z WebGPURenderer.

Inne kategorie

To samo w innych stylach

To samo dla innych silników