Встроенные подключаемые файлы для шейдеров
В Unity есть набор файлов, содержащих заранее определенные переменные и вспомогательные функции, которые могут быть использованы при создании шейдеров. Подключение реализуется с помощью стандартной команды #include
, т. е.:
CGPROGRAM
// ...
#include "UnityCG.cginc"
// ...
ENDCG
Подключаемые файлы имеют расширение .cginc
, ниже представлен список стандартных библиотек:
HLSLSupport.cginc
- (подключается автоматически) Вспомогательные макросы и определения функций для кросплатформенной компиляции шейдеров.UnityCG.cginc
- часто используемые глобальные переменные и вспомогательные функции.UnityCG.cginc
- часто используемые глобальные переменные и вспомогательные функции.AutoLight.cginc
- функционал освещения и создания теней, например поверхностные шейдеры по умолчанию используют этот файл.Lighting.cginc
- модель освещения стандартного поверхностного шейдера; подключается автоматически при создании поверхностных шейдеров.TerrainEngine.cginc
- вспомогательные функции для работы с шейдерами Terrain & Vegetation.Эти файлы можно найти в папке приложения Unity ({unity install path}/Data/CGIncludes/UnityCG.cginc в Windows, /Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc в Mac), если вам захочется посмотреть, как реализован тот или иной функционал.
При компиляции шейдеров этот файл подключается автоматически. По большей части, он состоит из предпроцессорных макросов для упрощения работы с кросплатформенными шейдерами.
При компиляции шейдеров этот файл подключается автоматически. По большей части, он состоит из предпроцессорных макросов для упрощения работы с кросплатформенными шейдерами.
Обычно этот файл включают в шейдеры Unity, когда требуется получить доступ к дополнительным вспомогательным функциям.
appdata_base
: входные данные для вершинного шейдера, включающие положение вершины, ее нормаль и одну текстурную координату.appdata_tan
: входные данные для вершинного шейдера, включающие положение вершины, ее нормаль, касательную и одну текстурную координату.appdata_full
: входные данные для вершинного шейдера, включающие положение вершины, ее нормаль, касательную, цвет вершины и две текстурные координаты.appdata_img
: входные данные для вершинного шейдера, включающие положение вершины и одну текстурную координату.