OGRE Manual / Руководство OGRE: 2.7 Materials

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

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

vrecobra 17.07.09 в 07:46

1

Материалы могут быть заданы программно - через вызов SceneManager::createMaterial и последующую подстройку параметров - или же через описание материалов в "скрипте", загружаемом во время выполнения программы. См. подробности в разделе 3.1 "Скрипты для материалов"

vrecobra 17.07.09 в 07:50

1

В основном, все, что относится ко внешнему виду объекта, за исключением его формы, контролируется классом Material

vrecobra 17.07.09 в 07:53

1

Класс SceneManager управляет сводным списком материалов, доступных сцене. Список может быть дополнен приложением при помощи вызова SceneManager::createMaterial или при загрузке меша (который в свою очередь загрузит свойства его материалов). Каким бы способом материалы ни добавлялись в SceneManager, в начале они все имеют набор свойств по умолчанию, которые определяются в OGRE следующим образом:

vrecobra 17.07.09 в 08:05

1

* внешнее отражение = ColourValue::White (полное)
* рассеивающее отражение = ColourValue::White (полное)
* зеркальное отражение = ColourValue::Black (нет)
* собственное свечение = ColourValue::Black (нет)
* блеск = 0 (не блестящий)
* Нет слоев текстур (и поэтому нет и текстур)
* SourceBlendFactor = SBF_ONE, DestBlendFactor = SBF_ZERO (непрозрачный)
* Проверка буфера глубины вкл.
* Запись в буфер глубины вкл.
* Функция сравнения для буфера глубины = CMPF_LESS_EQUAL
* Режим отсечения = CULL_CLOCKWISE
* Внешнее освещение в сцене = ColourValue(0.5, 0.5, 0.5) (серый)
* Динамическое освещение вкл.
* Режим затушевывания по методу Гуро
* Режим отображения закрашенных многоугольников
* Билинейная фильтрация текстур

vrecobra 17.07.09 в 08:24

1

Вы можете изменить данные настройки, вызвав SceneManager::getDefaultMaterialSettings() и внеся необходимые изменения в экземпляр класса Material, который будет возвращен вызванной функцией

vrecobra 17.07.09 в 08:26

1

"Сущности" (дискретные движимые объекты сцены, экземпляры класса Entity) автоматически имеют связанный с ними материал, если они используют меш-объект, т.к. меш как правило задает требуемые ему материалы при загрузке. Вы также можете настроить материал, используемый "сущностью" так, как это описано в разделе 2.6 - "Сущности". Просто создайте новый объект-материал, настройте его как хотите (вы можете скопировать в него существующий материал, если Вам нравится использовать стандартный оператор присваивания) и укажите вхождения объектов SubEntity в него, используя SubEntity::setMaterialName().

vrecobra 17.07.09 в 08:38

1

"Сущности" (дискретные движимые объекты сцены, экземпляры класса Entity) автоматически имеют связанный с ними материал, если они используют меш-объект, т.к. меш как правило задает требуемые ему материалы при загрузке. Вы также можете настроить материал, используемый "сущностью" так, как это описано в разделе 2.6 - "Сущности". Просто создайте новый объект-материал, настройте его как хотите (вы можете скопировать в него существующий материал, если Вам нравится использовать стандартный оператор присваивания) и свяжите его с объектами SubEntity, вызвав SubEntity::setMaterialName().

vrecobra 17.07.09 в 08:38

1
Минутку...