Встроенные включаемые файлы Unity содержат глобальные переменные для ваших шейдеровпрограммы, работающей на графическом процессоре. Подробнее
См. в Словарь: такие вещи, как матрицы преобразования текущего объекта, параметры освещения, текущее время и так далее. Вы используете их в шейдерных программах, как и любые другие переменные, но если вы включаете соответствующий включаемый файл, вам не нужно их объявлять.
Дополнительную информацию о включаемых файлах см. в разделе Встроенные включаемые файлы.
Преобразования
Все эти матрицы относятся к типу float4x4
и имеют основной столбец.
Имя | Значение |
UNITY_MATRIX_MVP | Текущая модель * вид * матрица проекции. |
UNITY_MATRIX_MV | Текущая модель * просмотреть матрицу. |
UNITY_MATRIX_V | Текущая матрица просмотра. |
UNITY_MATRIX_P | Текущая матрица проекций. |
UNITY_MATRIX_VP | Текущий вид * матрица проекции. |
UNITY_MATRIX_T_MV | Транспонировать модель * просмотреть матрицу. |
UNITY_MATRIX_IT_MV | Инверсное транспонирование модели * матрицы вида. |
unity_ObjectToWorld | Матрица текущей модели. |
unity_WorldToObject | Инверсия текущей мировой матрицы. |
Камера и экран
Эти переменные будут соответствовать компоненту Camera, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
См. в Словарь, который является рендерингПроцесс вывода графики на экран (или текстуры рендеринга). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь. Например, во время рендеринга карты теней они по-прежнему будут ссылаться на значения компонента «Камера», а не на «виртуальную камеру», которая используется для проекции карты теней.
Имя | Тип | Значение |
_WorldSpaceCameraPos | float3 | Мировое космическое положение камеры. |
_ProjectionParams | float4 |
x равно 1,0 (или –1,0 при рендеринге с перевернутой матрицей проекции), y – это ближняя плоскость камеры, z — дальняя плоскость камеры, а w — 1/FarPlane. |
_ScreenParams | float4 |
x ширина целевой текстуры камеры в пикселяхнаименьшая единица компьютерного изображения. Размер пикселя зависит от разрешения вашего экрана. Пиксельное освещение рассчитывается для каждого пикселя экрана. ПодробнееСм. в Словарь, y — высота целевой текстуры камеры в пикселях, z – 1,0 + 1,0/ширина, а w – 1,0 + 1,0/ высота. |
_ZBufferParams | float4 | Используется для линеаризации значений буфера Z. x (1-далеко/ближе), y (далее/ближе), z — это (x/far), а w — это (y/far). |
unity_OrthoParams | float4 |
x — ширина ортогональной камеры, y — высота ортогональной камеры, z не используется и w code> равно 1,0, если камера орфографическая, и 0,0, если перспектива. |
unity_CameraProjection | float4x4 | Проекционная матрица камеры. |
unity_CameraInvProjection | float4x4 | Обратная матрица проекции камеры. |
unity_CameraWorldClipPlanes[6] | float4 | Усеченная камера, плоскость, мировое пространство, уравнения в таком порядке: слева, справа, снизу, сверху, рядом, далеко. |
Время
Время измеряется в секундах и масштабируется множителем времени в настройках времени вашего проекта. Нет встроенной переменной, обеспечивающей доступ к немасштабированному времени.
Name | Type | Value |
_Time | float4 | Время с момента загрузки уровня (t/20, t, t*2, t*3), используемое для анимации внутри шейдеров. |
_SinTime | float4 | Синус времени: (t/8, t/4, t/2, t). |
_CosTime | float4 | Косинус времени: (t/8, t/4, t/2, t). |
unity_DeltaTime | float4 | Дельта времени: (dt, 1/dt, smoothDt, 1/smoothDt). |
Освещение
Параметры освещения передаются шейдерам по-разному в зависимости от того, какой путь рендеринга Техника, которую Unity использует для рендеринга графики. Выбор другого пути влияет на производительность вашей игры и на то, как рассчитываются освещение и затенение. Некоторые пути больше подходят для разных платформ и оборудования, чем другие. Подробнее
См. в Словарь используется,
и какой LightMode Тег передачи используется в шейдере.
Прямой рендерингПуть рендеринга, который отображает каждый объект в одном или больше проходов, в зависимости от света, воздействующего на объект. Сами источники света также обрабатываются Forward Rendering по-разному, в зависимости от их настроек и интенсивности. Подробнее
См. в Словарь (ForwardBase
и типы проходов ForwardAdd
):
Имя | Тип | Значение |
_LightColor0 (declared in UnityLightingCommon.cginc) | fixed4 | Light color. |
_WorldSpaceLightPos0 | float4 | Направленные огни: (направление мирового пространства, 0). Другие огни: (мировое космическое положение, 1). |
unity_WorldToLight (declared in AutoLight.cginc) | float4x4 | Матрица мира к свету. Используется для выборки текстур cookie и затухания. |
unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0 | float4 | (только проход ForwardBase) позиции в мировом пространстве первых четырех неважных точечных источников света. |
unity_4LightAtten0 | float4 | (только проход ForwardBase) коэффициенты затухания первых четырех неважных точечных источников света. |
unity_LightColor | half4[4] | (только проход ForwardBase) цвета первых четырех неважных точечных источников света. |
unity_WorldToShadow | float4x4[4] | Матрицы мира-тени. Одна матрица для прожекторов, до четырех для каскадов направленного света. |
Отложенное затенение и отложенное освещение, используемые в шейдере передачи освещения (все объявлено в UnityDeferredLibrary.cginc):
Имя | Тип | Значение |
_LightColor | float4 | Светлый цвет. |
unity_WorldToLight | float4x4 | Матрица мира к свету. Используется для выборки текстур cookie и затухания. |
unity_WorldToShadow | float4x4[4] | Матрицы мира-тени. Одна матрица для прожекторов, до четырех для каскадов направленного света. |
Коэффициенты сферических гармоник (используемые датчиками окружающей среды и освещенности) настроены для ForwardBase
, PrePassFinal
и Отложено
типы пропусков. Они содержат SH 3-го порядка для оценки по нормали мирового пространства (см. ShadeSH9
из UnityCG.cginc).
Все переменные имеют тип half4, unity_SHAr
и похожие имена.
Вершинный рендеринг (тип прохода Vertex
):
Для прохода типа Vertex
настраивается до 8 источников света; всегда сортируются, начиная с самого яркого. Поэтому, если вы хотите визуализировать объекты, на которые воздействуют два источника света одновременно, вы можете просто взять первые две записи в массивах. Если на объект влияет меньше источников света, чем 8, остальные будут иметь черный цвет.
Имя | Тип | Значение |
unity_LightColor | half4[8] | Light colors. |
unity_LightPosition | float4[8] | Позиции света в пространстве обзора. (-direction,0) для направленных огней; (позиция, 1) для точечных или точечных источников света. |
unity_LightAtten | half4[8] | Факторы ослабления света. x равно cos(spotAngle/2) или –1 для не точечных источников света; y равно 1/cos(spotAngle/4) или 1 для не точечных источников света; z — квадратичное затухание; w — дальность света в квадрате. |
unity_SpotDirection | float4[8] | Позиции Spot Lights в пространстве обзора; (0,0,1,0) для не точечных источников света. |
Карты освещения
Имя | Тип | Значение |
unity_Lightmap | Texture2D | Содержит карту освещенияпредварительно обработанную текстуру, которая содержит эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее См. информацию в разделе Словарь. |
unity_LightmapST | float4[8] | Масштабирует и переводит информацию UV в правильный диапазон для выборки текстуры карты освещения. |
Туман и фон
Имя | Тип | Значение |
unity_AmbientSky | fixed4 | Цвет окружающего освещения неба в случае градиентного окружающего освещения. |
unity_AmbientEquator | fixed4 | Цвет окружающего освещения на экваторе в случае градиентного окружающего освещения. |
unity_AmbientGround | fixed4 | Цвет фонового окружающего освещения в случае градиентного окружающего освещения. |
UNITY_LIGHTMODEL_AMBIENT | fixed4 | Цвет окружающего освещения (цвет неба в градиентном окружении). Устаревшая переменная. |
unity_FogColor | fixed4 | Цвет тумана. |
unity_FogParams | float4 | Параметры для расчета тумана: (плотность / sqrt(ln(2)), плотность / ln(2), –1/(конец-начало), конец/(конец-начало)). x используется для режима тумана Exp2, y для режима Exp, z и w для линейного режима. |
Various
Имя | Тип | Значение |
unity_LODFade | float4 | Уровень детализации исчезает при использовании LODGroup. x — затухание (0..1), y — затухание, квантованное до 16 уровней, z и w не используются . |
_TextureSampleAdd | float4 | Устанавливается Unity автоматически для UI(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. Подробнее Смотреть только в Словарь в зависимости от того, является ли используемая текстура в формате Alpha8 (значение установлено в (1,1,1,0)) или нет (значение установлено в (0,0,0,0)). |