В Unity есть ряд встроенных служебных функций, которые позволяют писать шейдерыпрограмму, работающую на графическом процессоре. Подробнее
Смотрите в Словарь все проще и проще.
Функции, объявленные в UnityCG.cginc
См. Встроенные включаемые файлы шейдеров для обзора включаемых файлов шейдеров, поставляемых с Unity.
Функции преобразования вершин в UnityCG.cginc
Функции: | Описание: |
---|---|
float4 UnityObjectToClipPos(float3 pos) |
Преобразует точку из пространства объекта в камеруКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее Посмотреть в Словарь в однородных координатах. Это эквивалент mul(UNITY_MATRIX_MVP, float4(pos, 1.0)), и его следует использовать вместо него. |
float3 UnityObjectToViewPos(float3 pos) |
Преобразует точку из пространства объектов в пространство обзора. Это эквивалент mul(UNITY_MATRIX_MV, float4(pos, 1.0)).xyz, и его следует использовать вместо него. |
Общие вспомогательные функции в UnityCG.cginc
Функции: | Описание: |
---|---|
float3 WorldSpaceViewDir (float4 v) |
Возвращает направление в мировом пространстве (не нормализованное) от заданной позиции вершины пространства объекта к камере. |
float3 ObjSpaceViewDir (float4 v) |
Возвращает направление пространства объекта (не нормализованное) от заданной позиции вершины пространства объекта к камере. |
float2 ParallaxOffset (half h, half height, half3 viewDir) |
вычисляет смещение UV для карт нормалей параллакса. |
fixed Luminance (fixed3 c) |
Преобразует цвет в яркость (оттенки серого). |
fixed3 DecodeLightmap (fixed4 color) |
Декодирует цвет из карты освещенияUnity. Предварительно обработанная текстура содержит эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее См. в Словаре (RGBM или dLDR в зависимости от платформы). |
float4 EncodeFloatRGBA (float v) |
Кодирует плавающий диапазон [0..1) в цвет RGBA для хранения в цели рендеринга с низкой точностью. |
float DecodeFloatRGBA (float4 enc) |
Декодирует цвет RGBA в число с плавающей запятой. |
float2 EncodeFloatRG (float v) |
Кодирует диапазон [0..1) float в float2. |
float DecodeFloatRG (float2 enc) |
Декодирует ранее закодированное число с плавающей запятой RG. |
float2 EncodeViewNormalStereo (float3 n) |
Кодирует нормаль пространства просмотра в два числа в диапазоне 0..1. |
float3 DecodeViewNormalStereo (float4 enc4) |
Декодирует нормальное пространство просмотра из enc4.xy. |
Вспомогательные функции прямого рендеринга в UnityCG.cginc
Эти функции полезны только при использовании прямого рендерингапроцесса вывода графики на экран (или в текстуру рендеринга). . По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь (типы проходов ForwardBase или ForwardAdd).
Функции: | Описание: |
---|---|
float3 WorldSpaceLightDir (float4 v) |
Вычисляет направление в мировом пространстве (не нормализовано) к свету, учитывая позицию вершины пространства объекта. |
float3 ObjSpaceLightDir (float4 v) |
Вычисляет направление пространства объекта (не нормализованное) к свету, учитывая позицию вершины пространства объекта. |
float3 Shade4PointLights (...) |
Вычисляет освещенность от четырех точечных источников света, при этом данные освещения плотно упакованы в векторы. Прямой рендерингПуть рендеринга, при котором каждый объект визуализируется за один или несколько проходов, в зависимости от освещения, воздействующего на объект. Сами источники света также обрабатываются Forward Rendering по-разному, в зависимости от их настроек и интенсивности. Подробнее См. в Словарь использует это для вычисления повершинного освещения. |
Вспомогательные функции экранного пространства в UnityCG.cginc
Следующие функции являются помощниками для вычисления координат, используемых для выборки текстур экранного пространства. Они возвращают float4
, где конечная координата образца текстуры может быть вычислена с помощью перспективного деления (например, xy/w
).
Функции также учитывают различия платформ в отрисовке текстурыОсобый тип текстуры, который создается и обновляется во время выполнения. Чтобы использовать их, сначала создайте новую текстуру рендеринга и назначьте одну из ваших камер для рендеринга в нее. Затем вы можете использовать Render Texture в материале, как обычную текстуру. Подробнее
Посмотреть в Словарь.
Функции: | Описание: |
---|---|
float4 ComputeScreenPos (float4 clipPos) |
Вычисляет координату текстуры для создания образца текстуры с отображением в экранном пространстве. Входные данные - позиция клипа в пространстве. |
float4 ComputeGrabScreenPos (float4 clipPos) |
Вычисляет координаты текстуры для выборки текстуры GrabPass. Входные данные - позиция клипа в пространстве. |
Вспомогательные функции с подсветкой вершин в UnityCG.cginc
Эти функции полезны только при использовании шейдеров с подсветкой для каждой вершины (тип прохода "Вершина").
Функции: | Описание: |
---|---|
float3 ShadeVertexLights (float4 vertex, float3 normal) |
Вычисляет освещение от четырех источников света для каждой вершины и окружающего освещения, учитывая положение объекта в пространстве и нормаль. |