Материалы
Материал — это набор свойств (состояний, опций, параметров) и ассетов (2D, 3D текстуры), описанных в текстовом файле и связанных с конкретной поверхностью объекта.
UNIGINE имеет собственную систему материалов, которая включает:
- Базовые (base) материалы, реализованные программистами.
- Пользовательские (user) материалы, унаследованные от базовых материалов и измененные с помощью Редактора материалов 3D-художниками.
Базовые материалы#
Базовый материал хранит набор свойств материала и ссылок на фрагментные, вершинные и геометрические шейдеры, описывая, как материал будет выглядеть.
Шейдеры написаны на языке HLSL. В UNIGINE также есть собственный язык UNIGINE Unified Shader Language (UUSL), который также можно использовать для написания шейдеров: он позволяет создать один файл шейдера для обоих графических API: OpenGL и Direct3D11.
Базовый материал хранится в файле *.basemat. Его нельзя изменять в Редакторе материалов : чтобы изменить базовый материал, вы должны непосредственно отредактировать текстовый файл. Или вы можете создать совершенно новый .
Базовые материалы не могут образовывать иерархию материалов: базовый материал не может быть унаследован от другого базового материала. Базовый материал всегда находится на вершине иерархии : пользовательские материалы наследуются от него.
Набор встроенных базовых материалов довольно велик и содержит большинство часто запрашиваемых материалов.
Пользовательские материалы#
Пользовательский материал переопределяет свойства, отправленные шейдерам, используемые базовым материалом, от которого наследуется пользовательский материал (или его родительский материал). Сам пользовательский материал не может относиться к шейдеру.
Пользовательский материал хранится в файле *.mat, который содержит ссылки на родительский и базовый материалы. Такой файл обычно создается при наследовании нового материала из базового или другого пользовательского материала через Редактор материалов. Пользовательский материал нельзя перенастроить: набор свойств пользовательского материала не может отличаться от свойств выбранного базового материала. Однако вы можете редактировать пользовательский материал через Редактор материалов.
В отличие от базовых материалов, пользовательские материалы могут образовывать иерархию материалов.
Созданные вручную и внутренние материалы#
В UNIGINE также есть созданные вручную (manual) материалы. Такие материалы создаются и редактируются вручную: изменения, сделанные через Редактор материалов во время выполнения, не сохраняются. Все базовые материалы (как встроенные, так и нестандартные) относятся к созданным вручную. Однако не каждый созданный вручную материал является базовым: пользовательские материалы тоже могут быть созданы вручную.
В файле *.mat хранится название материала, созданного вручную. Дочерние файлы *.mat могут хранить ссылку на основе имени или GUID на родительский материал, созданный вручную.
Созданный вручную материал реализуется программистами, когда необходимо создать материал без использования редактора материалов.
Внутренний (internal) материал — это материал без названия. При клонировании или наследовании материала каждый новый материал становится внутренним, пока его не сохранят.
Смотрите также#
- Иерархия и наследование , чтобы узнать больше о том, как организованы материалы.
- GUID-ы материалов, чтобы узнать, как ссылаться на базовые и пользовательские материалы.
- Файлы материалов , чтобы узнать больше о базовых и пользовательских материалах, файлах .mat и .basemat и их связи с файлами шейдеров.
- Кастомизированные материалы, чтобы узнать основы создания нового материала.
- Unified Unigine Shader Language , чтобы узнать, как реализовать файл шейдера для обоих API трехмерной графики.