На этой странице описывается передовой путь рендерингаТехника, которую Unity использует для рендеринга графики . Выбор другого пути влияет на производительность вашей игры и на то, как рассчитываются освещение и затенение. Некоторые пути больше подходят для разных платформ и оборудования, чем другие. Подробнее
См. Словарь встроенного конвейера рендеринга Unity.
Прямой рендерингПроцесс вывода графики на экран (или в текстуру рендеринга). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь визуализирует каждый объект за один или несколько проходов, в зависимости от освещения, которое воздействовать на объект. Сами источники света также обрабатываются по-разному с помощью Forward Rendering в зависимости от их настроек и интенсивности.
Детали реализации
В прямом рендеринге некоторое количество самых ярких источников света, влияющих на каждый объект, визуализируются в режиме полного попиксельного освещения. Затем для каждой вершины рассчитывается до 4 точечных источников света. Другие источники света рассчитываются как сферические гармоники (SH), что намного быстрее, но является лишь приближением. Будет ли источник света попиксельным или нет, зависит от этого:
- Источники света, для которых задан режим рендеринга Неважно, всегда относятся к вершинам или SH.
- Самый яркий направленный свет всегда определяется попиксельно.
- Источники света, для которых задан режим рендеринга Важно, всегда попиксельны.
- Если приведенное выше приводит к меньшему количеству источников света, чем текущее Счетчик света в пикселях Настройка качества, то для каждого пикселя отображается больше источников света, чтобы уменьшающейся яркости.
Визуализация каждого объекта происходит следующим образом:
- Base Pass применяет один направленный источник света для каждого пикселя и все источники света для каждой вершины/SH.
- Остальные попиксельные источники света визуализируются в дополнительных проходах, по одному проходу для каждого источника света.
Например, если есть какой-то объект, на который влияет несколько источников света (круг на рисунке ниже, на который влияют источники света от A до H):

Предположим, что источники света от A до H имеют одинаковый цвет и интенсивность, и все они имеют автоматический режим рендерингаСтандартный шейдерный материал параметр, который позволяет вам выбрать, использует ли объект прозрачность, и если да, то какой тип режима наложения использовать. Подробнее
См. в Словарь, чтобы они были отсортированы именно в таком порядке для этого объекта . Самые яркие источники света будут рендериться в режиме попиксельного освещения (от A до D), затем до 4 источников света в режиме повершинного освещения (от D до G) и, наконец, остальные источники света в режиме SH (от G до H):< /p>

Обратите внимание, что группы источников света перекрываются; например, последний попиксельный свет смешивается с режимом повершинного освещения, поэтому при перемещении объектов и источников света возникает меньше «всплесков света».
Базовый пропуск
Базовый проход визуализирует объект с одним направленным источником света на пиксель и всеми источниками света SH/вершин. Этот проход также добавляет любые карты освещенияпредварительно обработанную текстуру, которая содержит эффекты источников света на статических объектах в сцене. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
Посмотрите в Словарь окружающее и эмиссионное освещение от шейдерПрограмма, работающая на графическом процессоре. Подробнее
См. в Словарь. Направленный свет, отображаемый в этом проходе, может иметь тени. Обратите внимание, что объекты с картой освещения не получают освещения от источников света SH.
Обратите внимание, что когда в шейдере используется флаг прохода, «OnlyDirectional», то прямой базовый проход визуализирует только основной направленный свет, окружающий свет/пробник освещения и карты освещения (SH и вершинные источники света не включаются в данные прохода).
Дополнительные проходы
Для каждого дополнительного попиксельного источника света, воздействующего на этот объект, визуализируются дополнительные проходы. Источники света в этих проходах по умолчанию не имеют теней (поэтому в результате Forward Rendering поддерживает один направленный источник света с тенями), если только не используется ярлык варианта multi_compile_fwdadd_fullshadows.
Вопросы производительности
Попиксельное освещение
Попиксельное динамическое освещение увеличивает объем работы по рендерингу каждого затрагиваемого пикселянаименьшей единицы компьютерного изображения. Размер пикселя зависит от разрешения вашего экрана. Пиксельное освещение рассчитывается для каждого пикселя экрана. Подробнее
См. в Словарь, и может привести к тому, что объекты будут отображаться в несколько проходов. Избегайте использования нескольких Pixel Light для освещения любого отдельного объекта на менее мощных устройствах, таких как мобильные или недорогие графические процессоры ПК, и используйте карты освещения для освещения статических объектов вместо расчета их освещения в каждом кадре. Динамическое освещение каждой вершины может существенно увеличить объем работы по преобразованию вершин, поэтому старайтесь избегать ситуаций, когда несколько источников света освещают один объект.
Избегайте объединения сеток, которые находятся достаточно далеко друг от друга, чтобы на них воздействовали разные наборы пиксельных источников света. При использовании пиксельного освещения каждая сеткаосновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
See in Словарь должен рендериться столько раз, сколько пиксельных источников света освещает Это. Если вы объедините два меша, которые находятся очень далеко друг от друга, это увеличит эффективный размер объединенного объекта. Все источники света пикселей, которые освещают любую часть этого комбинированного объекта, учитываются при рендеринге, поэтому количество проходов рендеринга, которое необходимо выполнить, может быть увеличено. Как правило, количество проходов, которые необходимо выполнить для визуализации объединенного объекта, равно сумме количества проходов для каждого из отдельных объектов, поэтому объединение сеток ничего не дает.
Во время рендеринга Unity находит все источники света, окружающие сетку, и вычисляет, какие из них влияют на нее больше всего. Настройки в окне Качество используются для изменения того, сколько источников света становится пиксельными, а сколько вершинными. Каждый источник света рассчитывает свою важность в зависимости от того, насколько он удален от меша и насколько интенсивен его свет — и некоторые источники света более важны, чем другие, чисто из игрового контекста. По этой причине каждый источник света имеет параметр Режим рендеринга, который может быть установлен на Важно или Не важно; источники света, помеченные как Неважно, имеют меньшую нагрузку на рендеринг.
Пример. Рассмотрим автомобильную игру, в которой машина игрока едет в темноте с включенными фарами. Фары, вероятно, являются наиболее визуально значимым источником света в игре, поэтому их Режим рендеринга должен быть установлен на Важно. В игре могут быть другие источники света, которые менее важны, например, задние фонари других автомобилей или далекие фонарные столбы, и которые не сильно улучшают визуальный эффект, поскольку являются пиксельными источниками света. Режим рендеринга для таких источников света можно безопасно установить на Не важно, чтобы не тратить ресурсы рендеринга в тех местах, где от него мало пользы.
Оптимизация попиксельного освещения снижает нагрузку как на ЦП, так и на ГП: у ЦП меньше вызовов отрисовки, а у ГП меньше обрабатываемых вершин и пикселей для растеризации всех дополнительных объектов.
Огни сферических гармоник
Сферические гармонические источники света очень визуализируются быстро. Они имеют небольшую нагрузку на ЦП и фактически бесплатны для применения графическим процессором (то есть базовый проход всегда вычисляет освещение SH; но из-за того, как работает освещение SH, стоимость в точности равна одинаково, независимо от того, сколько там огней SH).
Недостаток ламп SH:
- Они вычисляются в вершинах объекта, а не в пикселях. Это означает, что они не поддерживают легкие файлы cookie или карты нормалейТип текстуры Bump Map, который позволяет добавлять детали поверхности, такие как неровности. , канавки и царапины модели, которые отражали свет, как если бы они были представлены реальной геометрией. Подробнее
См. в Словарь. - Освещение SH очень низкочастотное. У вас не может быть резких переходов освещения с SH-светом. Они также влияют только на рассеянное освещение (слишком низкая частота для зеркальных бликов).
- СХ освещение не местное; точечные или точечные светильники SH рядом с какой-либо поверхностью будут «выглядеть неправильно».
Подводя итог, можно сказать, что для освещения небольших динамических объектов часто достаточно света SH.