Поверхностные шейдеры и пути рендеринга во Встроенном Render Pipeline
В Built-in Render Pipeline, при использовании Surface Shader, как применяется освещение и какие проходы шейдера используются, зависит от того, какой путь рендеринга используется. Каждый проход в шейдере сообщает свой тип освещения через Метки проходов.
Совместимость конвейера отображения
| Название особенности | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Изготовленный на заказ SRP | Built-in Render Pipeline |
|---|---|---|---|---|
| Шейдеры поверхностей | Нет Упрощенный способ создания объектов Shader в URP см. в Shader Graph. |
Нет Упрощенный способ создания объектов Shader в HDRP см. в Shader Graph. |
Нет | Да |
Пути отображения
- В Продвижение рендеринга,
ForwardBaseиForwardAddпроходы используются. - В Отложенное затенение,
Deferredпроход используется. - В используются проходы Vertex Lit,
Vertex,VertexLMRGBMиVertexLM. - В любом из вышеупомянутых случаев Тени или текстура глубины,
ShadowCasterиспользуется пропуск.
Путь отображения
Проход ForwardBase рендирует окружающий свет, карты освещения, основной направленный свет и неважные (вершина/SH) огни одновременно. Проход ForwardAdd используется для любых аддитивных пиксельных огней; выполняется один вызов на объект, освещенный таким светом. См. Продвижение рендеринга для подробностей.
Если используется прямое отображение, но шейдер не имеет проходов, подходящих для прямого отображения (i.e. не присутствуют ни ForwardBase, ни ForwardAdd типов проходов), то этот объект отображается так же, как и в пути Vertex Lit, см. ниже.
Путь отложенного затенения
Пропуск Deferred отображает всю информацию, необходимую для освещения (во встроенных шейдерах: диффузный цвет, зеркальный цвет, гладкость, мировая пространственная нормаль, эмиссия). Он также добавляет в канал эмиссии карты освещения, зонды отражения и окружающее освещение. См. Отложенное затенение для подробностей.
Трасса отображения Legacy Vertex Lit
Поскольку вершинное освещение чаще всего используется на платформах, которые не поддерживают программируемые шейдеры, Unity не может создавать множество вариантов шейдеров внутри для обработки lightmapped vs. non-lightmapped случаев. Таким образом, для обработки lightmapped и non-lightmapped объектов, множественные прохождения должны быть написаны явно.
- Пропуск
Vertexиспользуется для объектов, не имеющих световых карт. Все световые сигналы рендируются одновременно, используя фиксированную функцию OpenGL/Direct3D модель освещения (Blinn-Phong) - Пропуск
VertexLMRGBMиспользуется для объектов с картами освещения, когда карты освещения кодируются RGBM (PC и консоли). Освещение в реальном времени не применяется; проход предполагает сочетание текстур с картами освещения. - Пропуск
VertexLMиспользуется для объектов с картами освещения, когда карты освещения кодируются двойным кодированием LDR (мобильные платформы). Не применяется освещение в реальном времени; проход предназначен для комбинирования текстур с картами освещения.