FoliMesh

Набори 3D-асетів у стилі Реалістичний для PlayCanvas

Завантажте GLB у редактор PlayCanvas — файл стає container-асетом із готовою ієрархією моделі, з якої виходить шаблон. У коді без редактора той самий файл підключається через app.assets.loadFromUrl(url, 'container') та asset.resource.instantiateRenderEntity(). Кожна модель має LOD0–LOD3, тож замість вбудованого LOD-компонента (його в PlayCanvas немає) невеликий скрипт порівнює відстань до камери й перемикає render-компоненти. Матеріали реалістичні, за схемою PBR metal/roughness: кора — base colour, normal і roughness, листя — alpha-tested картки з маскою, вони пишуть глибину, не потребують сортування та правильно відкидають тіні. Кора й листя — окремі матеріали, що дає передбачувані draw calls і добре працює з GPU-інстансингом: «Хвойний ліс» чи «Тропічний пляж» збираються через meshInstance.setInstancing(). «Скелі та скелясті урвища» й «Пустельний набір» пасують для виживання та відкритих світів; на мобільних починайте з LOD1 або LOD2.

Набори

Про стиль Реалістичний

Реалістичні моделі використовують 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-компонент вимкнено.

Те саме в інших стилях

Те саме для інших рушіїв