Объекты игрового мира — различия между версиями

Материал из SkyXEngine wiki
Перейти к: навигация, поиск
(Растительность)
Строка 9: Строка 9:
  
 
Может состоять из множества моделей (объекты расставляются в редакторе уровней), либо из одной целой (модель собирается 3d редакторе, а затем загружается в редакторе уровней).
 
Может состоять из множества моделей (объекты расставляются в редакторе уровней), либо из одной целой (модель собирается 3d редакторе, а затем загружается в редакторе уровней).
 +
 +
Модели должны быть формата dse [[Создание моделей и текстур#Настройки экспорта моделей|экспортированные как статические модели]].
  
 
Каждая модель имеет:
 
Каждая модель имеет:
Строка 20: Строка 22:
  
 
Статическая геометрия поддерживает обработку [[Прозрачность|полупрозрачных]] поверхностей. При загрузке модели в редактор уровней, библиотека статической геометрии извлекает все полупрозрачные подгруппы, дополнительно извлекая из них замкнутые фигуры, формируя при этом зависимые (от основной модели) модели. То есть, информация о полупрозрачности должна быть известна еще до загрузки модели в редактор уровней, а именно полупрозрачный материал на статической геометрии должен быть настроен.
 
Статическая геометрия поддерживает обработку [[Прозрачность|полупрозрачных]] поверхностей. При загрузке модели в редактор уровней, библиотека статической геометрии извлекает все полупрозрачные подгруппы, дополнительно извлекая из них замкнутые фигуры, формируя при этом зависимые (от основной модели) модели. То есть, информация о полупрозрачности должна быть известна еще до загрузки модели в редактор уровней, а именно полупрозрачный материал на статической геометрии должен быть настроен.
 +
 +
Для статической геометрии применяются соответствующие [[Стандартные шейдеры материалов#Статическая геометрия|шейдеры материалов]].
  
 
==Растительность==
 
==Растительность==
  
Растительность - автоматически анимируемая статическая геометрия уровня, которой присущи элементарные анимации. Неподвижна (в плане перемещения, поворотов, масштабирования) и неизменяема в течении все игры. Представляет из себя деревья/кусты/траву. Является сложной сущностью. Рисуется при помощи hardware instancing.
+
'''Растительность''' - автоматически анимируемая статическая геометрия уровня, которой присущи элементарные анимации. Неподвижна (в плане перемещения, поворотов, масштабирования) и неизменяема в течении все игры. Представляет из себя деревья/кусты/траву. Является сложной сущностью. Рисуется при помощи hardware instancing.
 +
 
 +
Для рендера растительности существует 3 дистанции рендера:
 +
#50 метров от наблюдателя
 +
#от 50 до 100 метров до наблюдателя
 +
#от 100 метров до наблюдателя и до конца видимости
  
 
Деревья и кусты являются однотипными объектами, для них необходимо наличие основной модели и двух лодов. Такие объекты рисуются на всю дистанцию видимости:
 
Деревья и кусты являются однотипными объектами, для них необходимо наличие основной модели и двух лодов. Такие объекты рисуются на всю дистанцию видимости:
*модель рисуется на самом ближнем расстоянии
+
*модель рисуется на первой дистанции
*первый лод рисуется после модели
+
*первый лод рисуется на второй дистанции
*третий лод рисуется после второго лода до конца видимости
+
*третий лод рисуется на третьей дистанции
  
Трава имеет только одну модель и не может иметь лоды. Трава рисуется только на первой дистанции, причем с уменьшением по дальности - чем дальше объект от наблюдателя тем меньше его масштаб. При перемещении по уровню с травой, можно увидеть как трава появляется и увеличивается при уменьшении расстояния до нее.
+
Трава имеет только одну модель и не может иметь лоды. Трава рисуется только на первой дистанции, причем с уменьшением по дальности, начиная с 30 метров и до 50 объекты уменьшаются от 100% до 0%. При перемещении по уровню с травой, можно увидеть как трава появляется и увеличивается при уменьшении расстояния до нее.
 +
 
 +
Только вершинные шейдеры определяют как рисовать объекты: либо как деревья/кусты, либо как траву (с уменьшением по дальности). Поэтому при установке шейдеров материалам, необходимо удостоверится, что шейдер рисует объект так как предполагается (например [[Стандартные шейдеры материалов#Растительность|стандартные шейдеры материалов]]).
  
 
==Игровые объекты==
 
==Игровые объекты==
  
Игровые объекты - динамические объекты уровня, которые могут быть изменены в любой момент игры. Присущи анимации, перемещения, повороты. Является сложной сущностью. Рисуется прямым рендером с реализацией скелетной анимации на стороне шейдеров.
+
'''Игровые объекты''' - динамические объекты уровня, которые могут быть изменены в любой момент игры. Присущи анимации, перемещения, повороты.  
 +
 
 +
Игровые объекты могут быть:
 +
*статическими моделями - просто геометрия. Рисуется при помощи тех же [[Стандартные шейдеры материалов#Статическая геометрия|шейдеров]] что и [[#Статическая геометрия]]. Формат моделей dse.
 +
*анимационными моделями (с костями, иерархией, анимациями). Это является сложной сущностью. Рисуется прямым рендером с [[Стандартные шейдеры материалов#Анимационные модели|реализацией скелетной анимации на стороне шейдеров]]. Формат моделей dse. Для обработки анимационных моделей необходимо использовать [[Редактор анимацbонных моделей]]
 +
*невидимые объекты, то есть без визуала, например [[Trigger]], [[Logic relay]]. Существуют также невидимые объекты, которые вносят вклад в итоговое изображение, это источники света ([[Light point|точечные]], [[Light directional|направленные]]).

Версия 16:24, 11 декабря 2018

Все объекты игрового мира делятся на:

  • статическую геометрию
  • растительность
  • игровые объекты

Статическая геометрия

Статическая геометрия (сокр. 'статика') - неподвижная (не трансформируемая и не анимированная) геометрия уровня, которая не изменяется в течении всей игры. Как правило она составляет большую часть уровня (здания, ландшафт, прочее). Является простейшей сущностью. Рисуется обычным рендером.

Может состоять из множества моделей (объекты расставляются в редакторе уровней), либо из одной целой (модель собирается 3d редакторе, а затем загружается в редакторе уровней).

Модели должны быть формата dse экспортированные как статические модели.

Каждая модель имеет:

  • имя (name) (опционально) - для идентификации пользователем в редакторе уровня
  • трансформации (position - позиция, rotation - повороты, scale - масштаб)
  • лод (LOD - level of detail)(опционально) - упрощенная модель, которая рисуется на дальних от наблюдателя расстояниях в целях экономии вычислительных ресурсов
  • физическая модель (physics)(опционально) - упрощенная модель для просчетов физики
  • свойство сегментации (segmentation) (опционально) - деление модели на куски, с целью экономии вычислений при рендере. Применяется в случаях если модель является объемной в плане габаритов и количества полигонов (модель 100х100х100 метров в 100 000 полигонов надо загружать, устанавливая свойство сегментации).

Отличие лода от физической модели заключается в том, что лод может значительно отличатся в плане расположения полигонов, его цель заключается в максимальном визуальном сходстве с исходной моделью на расстоянии, а в физической модели полигоны обязательно должны быть максимально схожи с расположением в исходной модели, но в то же время должно быть упрощение. Иными словами цель лода - визуальное сходство, цель физической модели - физическое сходство.

Статическая геометрия поддерживает обработку полупрозрачных поверхностей. При загрузке модели в редактор уровней, библиотека статической геометрии извлекает все полупрозрачные подгруппы, дополнительно извлекая из них замкнутые фигуры, формируя при этом зависимые (от основной модели) модели. То есть, информация о полупрозрачности должна быть известна еще до загрузки модели в редактор уровней, а именно полупрозрачный материал на статической геометрии должен быть настроен.

Для статической геометрии применяются соответствующие шейдеры материалов.

Растительность

Растительность - автоматически анимируемая статическая геометрия уровня, которой присущи элементарные анимации. Неподвижна (в плане перемещения, поворотов, масштабирования) и неизменяема в течении все игры. Представляет из себя деревья/кусты/траву. Является сложной сущностью. Рисуется при помощи hardware instancing.

Для рендера растительности существует 3 дистанции рендера:

  1. 50 метров от наблюдателя
  2. от 50 до 100 метров до наблюдателя
  3. от 100 метров до наблюдателя и до конца видимости

Деревья и кусты являются однотипными объектами, для них необходимо наличие основной модели и двух лодов. Такие объекты рисуются на всю дистанцию видимости:

  • модель рисуется на первой дистанции
  • первый лод рисуется на второй дистанции
  • третий лод рисуется на третьей дистанции

Трава имеет только одну модель и не может иметь лоды. Трава рисуется только на первой дистанции, причем с уменьшением по дальности, начиная с 30 метров и до 50 объекты уменьшаются от 100% до 0%. При перемещении по уровню с травой, можно увидеть как трава появляется и увеличивается при уменьшении расстояния до нее.

Только вершинные шейдеры определяют как рисовать объекты: либо как деревья/кусты, либо как траву (с уменьшением по дальности). Поэтому при установке шейдеров материалам, необходимо удостоверится, что шейдер рисует объект так как предполагается (например стандартные шейдеры материалов).

Игровые объекты

Игровые объекты - динамические объекты уровня, которые могут быть изменены в любой момент игры. Присущи анимации, перемещения, повороты.

Игровые объекты могут быть: