Unity 6.3
0 онлайн 53 гостей 3 в системе
Вход

Введение в Standard Shader во встроенном Render Pipeline

Unity Standard Shader — это встроенный шейдер с полным набором функций. Он может использоваться для рендеринга «реальных» объектов, таких как камень, дерево, стекло, пластик и металл, и поддерживает широкий спектр типов и комбинаций шейдеров. Его функции включаются или отключаются просто путем использования или неиспользования различных слотов текстуры и параметров в редакторе материалов.

Стандартный Shader также включает в себя усовершенствованную модель освещения под названием Физическое затенение. Physically Based Shading (PBS) симулирует взаимодействие между материалами и светом таким образом, что имитирует реальность. PBS только недавно стал возможным в графике реального времени. Он работает лучше всего в ситуациях, когда освещение и материалы должны сосуществовать интуитивно и реалистично.

Идея нашего Physically Based Shader заключается в создании удобного для пользователя способа достижения последовательного, правдоподобного вида в различных условиях освещения. Он моделирует, как свет ведет себя в реальности, без использования множества специальных моделей, которые могут работать или не работать. Для этого он следует принципам физики, включая сохранение энергии (что означает, что объекты никогда не отражают больше света, чем они получают), отражения Френеля (все поверхности становятся более отражающими при углах гравитации), и как поверхности окклюдируют себя (что называется Геометрический термин), среди других.

Стандартный Shader разработан для твердых поверхностей (также известных как «архитектурные материалы»), и может работать с большинством реальных материалов, таких как камень, стекло, керамика, латунь, серебро или резина. Он будет даже делать достойную работу с нетвердыми материалами, такими как кожа, волосы и ткань.

Сцена отображается с использованием Standard Shader на всех моделях
Сцена отображается с использованием Standard Shader на всех моделях

С помощью Standard Shader, широкий спектр типов шейдеров (таких как диффузный, зеркальный, ударный зеркальный, отражающий) объединяются в один шейдер, предназначенный для использования на всех типах материалов. Преимущество этого заключается в том, что одни и те же расчеты освещения используются во всех областях вашей сцены, что дает реалистичное, последовательное и правдоподобное распределение света и тени на всех моделях, использующих шейдер.

Математическая реализация освещения Standard Shader использует модель Disney для диффузного компонента, GGX модель для зеркального, с Smith Joint GGX термином видимости и аппроксимацией Шлик Френеля.

Терминология

Существует ряд концепций, которые очень полезны, когда речь идет о физическом затенении в Unity. К ним относятся:

  • Энергосбережение — Это концепция, основанная на физике, которая гарантирует, что объекты никогда не отражают больше света, чем они получают. Чем более зеркальный материал, тем меньше диффузия должна быть; чем гладче поверхность, тем сильнее и меньше яркость.
Свет, отражаемый в каждой точке поверхности, рассчитывается так, чтобы он был равен количеству света, получаемого от окружающей среды. Микрофацеты шероховатых поверхностей подвержены воздействию света из более широкой области. Гладкие поверхности дают более сильные и мелкие яркие участки. Точка A отражает свет от источника в сторону камеры. Точка B получает синий оттенок от окружающего света с неба. Точка C получает свое окружающее и отражающее освещение от окружающих цветов грунта.
Свет, отражаемый в каждой точке поверхности, рассчитывается так, чтобы он был равен количеству света, получаемого от окружающей среды. Микрофацеты шероховатых поверхностей подвержены воздействию света из более широкой области. Гладкие поверхности дают более сильные и мелкие яркие участки. Точка A отражает свет от источника в сторону камеры. Точка B получает синий оттенок от окружающего света с неба. Точка C получает свое окружающее и отражающее освещение от окружающих цветов грунта.
  • Высокий Динамический Диапазон (HDR) — Это относится к цветам вне обычного диапазона 0-1. Например, солнце может легко быть в десять раз ярче, чем голубое небо. Для углубленного обсуждения, см. Unity Руководство HDR страница.
Сцена с высоким динамическим диапазоном. Солнечный свет, отраженный в стекле автомобиля, выглядит гораздо ярче, чем другие объекты в сцене, потому что он был обработан с помощью HDR
Сцена с высоким динамическим диапазоном. Солнечный свет, отраженный в стекле автомобиля, выглядит гораздо ярче, чем другие объекты в сцене, потому что он был обработан с помощью HDR

StandardShader