Поверхностные шейдеры и пути рендеринга
Во встроенном конвейере рендеринга при использовании поверхностного Shaderпрограммы, работающей на графическом процессоре. Подробнее
Узнайте в Словарь, как применяется освещение и какие использования проходов шейдера зависит от того, какой путь рендерингаТехника, которую Unity использует для рендеринга графики. Выбор другого пути влияет на производительность вашей игры и на то, как рассчитываются освещение и затенение. Некоторые пути больше подходят для разных платформ и оборудования, чем другие. Подробнее
См. в Словарь. Каждый проход в шейдере сообщает о своем типе освещения с помощью тегов передачи.
Совместимость конвейера рендеринга
Название функции | Встроенный конвейер рендеринга | Универсальный конвейер рендеринга (URP) | Конвейер рендеринга высокого разрешения (HDRP) | Пользовательский SRP |
---|---|---|---|---|
Surface Shaders | Да | No
Чтобы узнать об упрощенном способе создания объектов Shader в URP, см. раздел Shader Graph. |
No
Чтобы узнать об упрощенном способе создания объектов Shader в HDRP, см. раздел Shader Graph. |
Нет |
Пути рендеринга
- В прямом рендерингепуть рендеринга, который отображает каждый объект в одном или более проходов, в зависимости от освещения, воздействующего на объект. Сами источники света также обрабатываются Forward Rendering по-разному, в зависимости от их настроек и интенсивности. Подробнее
См. в Словарь,ForwardBase
и используются проходыForwardAdd
. - В Отложенное затенениепуть отрисовки во встроенной отрисовке Конвейер, не накладывающий ограничений на количество источников света, которые могут воздействовать на GameObject. Все источники света оцениваются попиксельно, что означает, что все они корректно взаимодействуют с картами нормалей и так далее. Кроме того, все источники света могут иметь файлы cookie и тени. Подробнее
См. в Словарь,Deferred
используется пропуск. - В устаревшем отложенном освещении проходы
PrepassBase
иPrepassFinal
используются. - В устаревшем Vertex Lit,
Vertex
,VertexLMRGBM
и Используются проходыVertexLM
. - В любом из вышеперечисленных случаев для отображения тенейкомпонента пользовательского интерфейса, который добавляет простой эффект контура для графических компонентов, таких как текст или изображение. Он должен находиться в том же GameObject, что и графический компонент. Подробнее
См. в Словарь или текстуру глубины,Используется пропуск ShadowCaster
.
Вперед ВизуализацияПроцесс вывода графики на экран (или в текстуру рендеринга). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в пути Словарь
ForwardBase
выполняет визуализацию окружающего освещения, карты освещенияпредварительно обработанную текстуру, которая содержит эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
См. в Словарь, основное направленное освещение и несущественные (вершинные/SH) источники сразу. Проход ForwardAdd
используется для любого аддитивного попиксельного освещения; делается одно обращение к объекту, освещенному таким светом. Подробнее см. в разделе Прямой рендеринг.
Если используется упреждающий рендеринг, но шейдер не имеет проходов, подходящих для упреждения (т. е. ни проходов ForwardBase
, ни ForwardAdd
типы присутствуют), то этот объект визуализируется точно так же, как в пути Vertex Lit, см. ниже.
Путь отложенного затенения
Отложенный
проход отображает всю информацию, необходимую для освещения (во встроенных шейдерах: диффузный цвет, зеркальный цвет, гладкость,
мировая космическая норма, эмиссия). Он также добавляет карты освещения, датчики отражения и окружающее освещение в канал излучения. Подробнее см. в разделе Отложенное затенение.
Устаревший путь отложенного освещения
PrepassBase
выполняет рендеринг нормалей и экспоненты отражения; На этапе PrepassFinal
окончательный цвет отображается путем объединения текстур, освещения и свойств излучающих материалов. Все обычное внутрисценовое освещение делается отдельно в экранном пространстве. Дополнительные сведения см. в разделе Отложенное освещение.
Устаревший путь рендеринга Vertex Lit
Поскольку вершинное освещение чаще всего используется на платформах, не поддерживающих программируемые шейдеры, Unity не может создавать несколько вариантов шейдеров внутри для обработки случаев с картами освещения и без них. Таким образом, для обработки объектов с картой освещения и без карты освещения необходимо явно написать несколько проходов.
-
Проход
Vertex
используется для объектов без карт освещения. Все источники света визуализируются одновременно с использованием фиксированной модели освещения OpenGL/Direct3D (Blinn-Phong) -
Проход
VertexLMRGBM
используется для объектов с картами освещения, когда карты освещения закодированы в RGBM (ПК и консоли). Освещение в реальном времени не применяется; предполагается, что pass будет комбинировать текстуры с картой освещения. -
Проход
VertexLM
используется для объектов с картами освещения, когда карты освещения кодируются двойным LDR (мобильные платформы). Освещение в реальном времени не применяется; предполагается, что pass будет комбинировать текстуры с картой освещения.