FoliMesh

Кусты в стиле Low-poly для PlayCanvas

Загрузите GLB прямо в редактор PlayCanvas — при импорте FBX конвертируется автоматически — и получите container-ассет с иерархией модели. В проектах без редактора модель читается через app.assets.loadFromUrl(url, 'container'), а в сцену ставится вызовом asset.resource.instantiateRenderEntity(). Все 8 моделей — Бамбук, Куст, Самшит, Живая изгородь, Можжевельник, Шиповник, Малина и Орешник — идут с LOD0–LOD3 и пивотом у основания.

Штатного компонента LOD в PlayCanvas нет, поэтому расстояние до камеры сравнивает небольшой скрипт, включая и выключая render-компоненты уровней. Low-poly здесь самый дешёвый вариант: плоское затенение, цвет в вершинных цветах (COLOR_0), ни текстур, ни normal map, а листья — сплошная геометрия вместо альфа-карт, так что alphaTest и overdraw не нужны. Один материал подходит всей сцене: кусты объединяются в batch group или рисуются через meshInstance.setInstancing(). В LOD0 — от нескольких сотен до пары тысяч треугольников.

Модели
8
Уровни детализации
LOD0 – LOD3
Форматы
GLB · FBX · OBJ

О стиле Low-poly

Low-poly — самый дешёвый стиль и в рендере, и в размере билда.

  • Плоское затенение: одна нормаль на грань даёт чёткие грани, карты нормалей не нужны.
  • Цвет хранится в вершинах (glTF COLOR_0): нет текстур, нет работы с UV, почти не тратится видеопамять.
  • Листва — сплошная геометрия, а не карточки с альфой: нет alpha-test и прозрачного overdraw, что важно для мобильных GPU.
  • Один материал можно использовать для всех моделей сцены, поэтому деревья легко батчатся и инстансятся.
  • Типичный бюджет LOD0 — от нескольких сотен до пары тысяч треугольников.

Подходит для мобильных игр, WebGL/WebGPU, VR, стратегий, градостроительных и стилизованных инди-игр. В движке используйте материал, который учитывает цвет вершин.

Как использовать в 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-компонент отключён.

Наборы

Другие категории

То же в других стилях

То же для других движков