Встроенные подключаемые файлы для шейдеров
В 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), если вам захочется посмотреть, как реализован тот или иной функционал.
This file is automatically included when compiling CGPROGRAM shaders (but not included for HLSLPROGRAM ones). It declares various preprocessor macros to aid in multi-platform shader development.
This file is automatically included when compiling CGPROGRAM shaders (but not included for HLSLPROGRAM ones). It declares various built-in global variables that are commonly used in shaders.
Обычно этот файл включают в шейдеры Unity, когда требуется получить доступ к дополнительным вспомогательным функциям.
appdata_base
: входные данные для вершинного шейдера, включающие положение вершины, ее нормаль и одну текстурную координату.appdata_tan
: входные данные для вершинного шейдера, включающие положение вершины, ее нормаль, касательную и одну текстурную координату.appdata_full
: входные данные для вершинного шейдера, включающие положение вершины, ее нормаль, касательную, цвет вершины и две текстурные координаты.appdata_img
: входные данные для вершинного шейдера, включающие положение вершины и одну текстурную координату.