О стиле 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-компонент отключён.