FoliMesh

Kaktusy i sukulenty w stylu Realistyczny do PlayCanvas

PlayCanvas wczytuje te rośliny jako assety container GLB: wrzuć plik do Editora, a otrzymasz template z hierarchią modelu, albo załaduj go w kodzie przez app.assets.loadFromUrl(url, 'container') i asset.resource.instantiateRenderEntity(). Zestaw realistyczny — Saguaro, Kaktus beczułkowaty, Opuncja, Agawa i Aloes — korzysta z materiałów PBR w workflow metal/roughness, z mapami normalnych i chropowatości na pniu oraz alfatestowanymi kartami liści.

PlayCanvas nie ma wbudowanego komponentu LOD, więc krótki skrypt porównuje odległość kamery i przełącza komponenty render encji LOD0–LOD3; dalsze poziomy gubią gałęzie i karty liści, co trzyma w ryzach pustynne sceny z setkami roślin. Maskowane liście zapisują głębię, nie wymagają sortowania i rzucają poprawne cienie. Rośliny statyczne łączą się w batch group, a gęste pola Saguaro dobrze działają z meshInstance.setInstancing(). Pasuje do survivali FPP i TPP, otwartych światów i symulatorów westernu na PC i mobile.

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

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 PlayCanvas

PlayCanvas traktuje GLB jako container asset. W edytorze wgraj GLB (FBX jest konwertowany do GLB przy imporcie), a dostaniesz template z hierarchią modelu; w kodzie samego silnika użyj app.assets.loadFromUrl(url, 'container') i asset.resource.instantiateRenderEntity().

  • LOD: nie ma wbudowanego komponentu LOD, więc mały skrypt porównuje odległość od kamery i przełącza komponenty render encji LOD0–LOD3.
  • Statyczne drzewa mogą dzielić batch group, by scalić draw calle; w dużych lasach użyj sprzętowego instancingu przez meshInstance.setInstancing() z vertex bufferem transformacji.
  • Liście: MASK z glTF ustawia alphaTest w StandardMaterial; dla dwustronnych liści użyj cull mode none.
  • Siatka kolizji: komponent collision typu mesh plus statyczny rigidbody, z wyłączonym komponentem render.

Paczki

Inne kategorie

To samo w innych stylach

To samo dla innych silników