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