Unity 6.3
0 онлайн 118 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 419 из 442

Справка по встроенным переменным шейдера

Встроенные файлы включения Unity содержат глобальные переменные для ваших шейдеров: такие вещи, как матрицы трансформации текущего объекта, параметры освещения, текущее время и т.д. Вы используете их в шейдерных программах как любую другую переменную, но если вы включаете соответствующий файл включения, вам не нужно объявлять их.

Дополнительные сведения о файлах включения см. в Встроенные файлы включения.

Суффиксы встроенного семплера

При объявлении встроенного семплера SamplerState в коде HLSL добавьте следующие суффиксы, чтобы вручную установить режимы фильтрации текстуры и переплетения. Разделите несколько слов подчеркиванием (_). Например, чтобы установить семплер для использования линейной фильтрации и режима переплетения повторов, назовите его sampler_linear_repeat.

Примечание: Эти суффиксы семплеров работают только в том случае, если DX11, DX12, Metal или Vulkan графика API.

Необходимо включить один режим фильтрации и один режим оборачивания текстуры. Другие суффиксы необязательны.

Суффикс Описание
point Включает фильтрацию ближайшей текстуры.
linear Включает билинейную фильтрацию текстуры.
trilinear Включает трилинейную фильтрацию текстуры.
clamp Устанавливает режим оборачивания текстуры на clamp.
repeat Устанавливает режим переворачивания текстуры на повторение.
mirror Устанавливает зеркальный режим обвода текстуры.
mirroronce Если вы нацелены на мобильную платформу, которая не поддерживает mirroronce, Unity возвращается к mirror.
compare Дополнительные сведения см. в SampleCmp и SampleCmpLevelZero в документации Microsoft HLSL.
aniso2, aniso4, aniso8, aniso16 Включает анизотропную фильтрацию с выборкой 2x, 4x, 8x или 16x. В зависимости от графики API и платформы, Unity может ограничить фильтрацию до более низкого значения или полностью отключить анизотропную фильтрацию.

Добавьте U, V или W к режиму переплетения, чтобы установить режим переплетения только для этой оси. Например, sampler_clampu_point устанавливает ось U в режим зажима и оставляет оси V и W в их стандартном режиме переплетения.

Более подробную информацию см. по адресу:

Преобразования

Все эти матрицы имеют тип float4x4 и являются столбцовыми.

Примечание: Если вы используете Universal Render Pipeline (URP), вы также можете использовать переменные из Core.hlsl файл библиотеки. Дополнительные сведения см. в Transform позиции в обычной URP шейдер.

Имя Значение
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 и экран

Эти переменные будут соответствовать Camera которая выполняет отрисовку. Например, при отрисовке карты теней они по-прежнему ссылаются на значения компонента Camera, а не на «виртуальную камеру», используемую для проекции карты теней.

Примечание: Если вы используете Universal Render Pipeline (URP), вы также можете использовать переменные из файла библиотеки Core.hlsl. Дополнительную информацию см. в Использование камеры в пользовательском URP шейдере.

Имя Тип Значение
_WorldSpaceCameraPos float3 (плавающий) Всемирное космическое положение камеры.
_ProjectionParams float4 (плавающий) x является 1.0 (или -1.0 если в настоящее время отображается с перевернутая матрица проекции), y близкая плоскость камеры, z является дальней плоскостью камеры и w является1/FarPlane.
_ScreenParams float4 (плавающий) x — ширина текстуры камеры в пикселях, y — высота текстуры камеры в пикселях, z — 1.0 + 1.0/width и w — 1.0 + 1.0/height.
_ZBufferParams float4 (плавающий) Используется для линейизации значений Z-буфера.
  • x: 1 - far/near, или –1 + far/near, если UNITY_REVERSED_Z установлено на 1.
    Для получения дополнительной информации о UNITY_REVERSED_Z, см. Ветка, основанная на возможностях платформы.
  • y: far/near, или 1, если UNITY_REVERSED_Z установлено на 1.
    Для получения дополнительной информации о UNITY_REVERSED_Z, см. Ветка, основанная на возможностях платформы.
  • z: x / far
  • w: y / far
unity_OrthoParams float4 (плавающий) Следующие параметры:
  • x: половина ширины изображения камеры в пространстве мира
  • y: половина высоты изображения камеры в пространстве мира
  • z: не используется
  • w: 1.0, если камера является ортографической, или 0.0, если камера является перспективной
unity_CameraProjection float4x4 Матрица проекции Camera.
unity_CameraInvProjection float4x4 Инверсия проекционной матрицы камеры.
unity_CameraWorldClipPlanes[6] float4 (плавающий) Camera Мировые пространственные уравнения плоскости фрустума, в следующем порядке: слева, справа, снизу, сверху, близко, далеко.

Время

Время измеряется в секундах и масштабируется по множителю времени в вашем Project’s Настройки времени. Нет встроенной переменной, которая обеспечивает доступ к немасштабированному времени.

Время соответствует Time.time, которое является временем с момента запуска приложения. Если вы используете Встроенный Render Pipeline, время соответствует Time.timeSinceLevelLoad вместо этого.

Имя Тип Значение
_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_Lightmap Texture2D Содержит информацию о карте освещения.
unity_LightmapST float4[8] Масштабирует и переводит информацию UV в правильный диапазон для выборки текстуры lightmap.

Туман и окружающий воздух

Имя Тип Значение
unity_AmbientSky fixed4 Цвет окружающего освещения неба в случае градиентного окружающего освещения.
unity_AmbientEquator fixed4 Экватор цвета окружающего освещения в случае градиентного окружающего освещения.
unity_AmbientGround fixed4 Цвет фонового освещения земли в случае градиентного фонового освещения.
unity_IndirectSpecColor fixed4 Если вы используете skybox, это средний цвет skybox, который Unity рассчитывает с помощью DC компонента сферических гармоник данных в окружающей зонд. В противном случае это черный.
UNITY_LIGHTMODEL_AMBIENT fixed4 Цвет фонового освещения (цвет неба в случае градиентного фонового освещения).
unity_FogColor fixed4 Цвет тумана.
unity_FogParams float4 (плавающий) Параметры для расчета тумана: (плотность / sqrt(ln(2)), плотность / ln(2), –1/(конец-начало), конец/(конец-начало)). x полезны для режима тумана Exp2, и для режима Exp, z и w для линейного режима.

Различные

Имя Тип Значение
unity_LODFade float4 (плавающий) Уровень детализации затухает при использовании LODGroup. x затухает (0..1), y затухает квантовано до 16 уровней, z и w не используются.
_TextureSampleAdd float4 (плавающий) Автоматически устанавливается Unity для UI только в зависимости от того, используется текстура в формате Alpha8 (значение установлено на (1,1,1,0)) или нет (значение установлено на (0,0,0,0)).