Конвейер рендеринга высокой четкости: Руководство по началу работы для художников

Примечание редактора: Информация в этом посте устарела. Для более новых версий Unity мы рекомендуемПолное руководство по освещению в электронной книге High Definition Render Pipeline (HDRP), которая в последний раз обновлялась в 2022 году.
В этой статье мы рассмотрим создание сцены для рендеринга с использованием конвейера рендеринга высокой четкости Unity, также известного как HDRP. Мы рассмотрим создание нового проекта HDRP, обновление материалов всех импортированных ресурсов и узнаем, как использовать новые параметры в инспекторе материалов для создания реалистичного материала стекла. Мы также подчеркнем различия между встроенным конвейером и HDRP.
В версии 2018.1 компания Unity представила новую систему под названием Scriptable Render Pipeline (SRP), позволяющую создавать собственный конвейер рендеринга в зависимости от потребностей вашего проекта. SRP включает в себя два готовых конвейера: Lightweight (LWRP) и High Definition (HDRP). HDRP нацелен на высокую визуальную точность и подходит для ПК и консольных платформ.
Если вы еще этого не сделали, мы рекомендуем вам установить Unity Hub. Он поможет вам отслеживать ваши проекты, а также установленные версии Unity. При создании нового проекта в Unity Hub в разделе «Шаблон» вы увидите возможность выбрать «Высокое разрешение RP (предварительный просмотр)».

Поскольку HDRP все еще находится на стадии предварительной версии, не стоит переходить на HDRP в процессе производства. Однако вы можете попробовать обновить свой проект до HDRP, зайдя в новый менеджер пакетов и установив его. Обратите внимание: после обновления проекта до HDRP вы не сможете вернуться к предыдущей версии. Перед обновлением обязательно создайте резервную копию проекта.
Как упоминалось выше, HDRP все еще находится на стадии предварительной версии, поэтому в будущем возможны изменения. Чтобы обновить проект со встроенного конвейера рендеринга до HDRP, перейдите в Окно > Диспетчер пакетов. В диспетчере пакетов вы можете увидеть все текущие пакеты, установленные в вашем проекте Unity. В разделе «Все» найдите «HD Render Pipeline» (Render-pipelines.high) и установите последнюю версию. Установка конвейера также интегрирует ядро конвейера рендеринга, Shader Graph и пакеты постобработки.


После установки пакета HDRP вам необходимо перейти в меню «Правка» > «Настройки проекта» > «Графика», чтобы назначить ресурс Scriptable Render Pipeline для HDRP.

Инспектор отображает текущий установленный ресурс конвейера рендеринга в поле «Настройки скриптового конвейера рендеринга». Актив HDRP Render Pipeline будет назначен, если вы устанавливаете Pipeline из Unity Hub. Если вы обновляете свой проект из встроенного конвейера, это поле будет установлено на «Нет». Мы можем назначить актив конвейера, нажав кнопку рядом с полем выбора актива или перетащив актив из папки «Настройки».
HDRP использует API C# Scriptable Render Pipeline. Вместе с этим вы получаете целый ряд различных настроек, которые можно задать для настройки рендеринга вашего проекта. Тот факт, что ваши настройки рендеринга хранятся в активе конвейера рендеринга, означает, что вы можете изменить свои настройки рендеринга, назначив этому полю новый актив конвейера рендеринга.
Чтобы создать новый ресурс конвейера рендеринга, щелкните правой кнопкой мыши в папке настроек и выберите «Создать» > «Рендеринг» > «Ресурс конвейера рендеринга высокой четкости».

При использовании проекта HDRP любой встроенный, стандартный или неосвещенный материал Unity не будет визуализироваться и, следовательно, будет отображаться с использованием розового неосвещенного шейдера по умолчанию, который Unity отображает при нарушении шейдера. Это может произойти при попытке обновить существующий проект или при интеграции устаревшего контента, например ресурсов Asset Store, которые не используют шейдеры, совместимые с HDRP. Для рендеринга с помощью HDRP материал необходимо обновить.
Unity 2018.1 оснащен встроенным инструментом преобразования материалов. Он берет свойства материала из стандартного шейдера Unity и преобразует их в новые материалы HDRP. Стоит отметить, что это не работает для пользовательских шейдеров, которые необходимо переписать для HDRP.
Чтобы получить доступ к инструменту преобразования материалов, перейдите в меню «Правка» > «Конвейер рендеринга».

Unity предлагает несколько вариантов обновления в этом меню. Здесь мы сосредоточимся на первых двух. «Обновление материалов проекта до материалов высокой четкости» обновит все обновляемые материалы в проекте. «Обновить выбранные материалы до материалов высокой четкости» позволяет вам выбрать, какие материалы вы хотите обновить в окне проекта.
Именно на этом этапе мы рекомендуем вам создать отдельную резервную копию вашего проекта.
После преобразования материалов шейдер материала будет называться «HDRenderPipeline/Lit». Теперь у вас есть полный доступ к совершенно новым функциям шейдера освещения HDRP в инспекторе материалов.
Кроме того, в параметрах шейдера материалов в разделе «HDRenderPipeline» можно выбрать и применить различные типы шейдеров, например LitTesseleation или Unlit, и это лишь некоторые из них.

В последующих разделах представлено введение в некоторые новые функции, добавленные в рамках HDRP. Мы использовали некоторые из этих новых функций, чтобы улучшить внешний вид нашей кухни.
Освещение в HDRP использует систему, называемую Физическими световыми единицами (PLU). PLU означает, что эти единицы основаны на реальных измеримых значениях, например, тех, которые вы видите, выбирая лампочки в магазине или измеряя освещенность с помощью фотографического экспонометра.
Мы используем LUX для обозначения направленного света, поскольку в реальном мире именно эти значения используются для измерения интенсивности солнечного света, что можно легко сделать с помощью люксметра. Другие реальные источники света используют люмены для измерения интенсивности, которую можно использовать в качестве эталона для более мелких излучателей света в нашей сцене.
Светильник Realtime Line Light обеспечивает плавный и постоянный световой поток, исходящий от линии, длина которой задается пользователем. Эти типы освещения обычно используются в анимационных фильмах для достижения реалистичного освещения. Они придают освещению ваших сцен кинематографическое качество. Линейные источники света можно создать, выбрав тип формы в Инспекторе после размещения источника света на сцене.
Во многих современных кухнях для освещения рабочей зоны используется линейный свет, поэтому линейный свет здесь не только создает реалистичное освещение, но и точно соответствует тому, которое можно было бы увидеть на настоящей кухне.
Кроме того, Light Inspector может определять цвет излучаемого света посредством температуры. Диапазон значений составляет от 1000 до 20000 кельвинов. Чем ниже значение, тем меньше выделяется тепла и свет кажется более красным. Напротив, по мере увеличения значения температуры цвет становится более синим.
Аналогично, тип фигуры «Прямоугольник» излучает световой поток на основе пользовательских значений осей X и Y.
Примечание: Тени в настоящее время не поддерживаются для типов источников света «Линия» и «Прямоугольник».

Дополнительный совет: использование Light Explorer позволяет вам легко управлять любым типом освещения в вашем проекте. Вы можете изменять значения, менять тип источников света и даже управлять типами теней без необходимости размещать их на сцене. Через это окно можно дополнительно управлять отражательными датчиками, световыми датчиками и статическими излучателями.
Чтобы получить доступ к Light Explorer, перейдите в Окно > Общие > Light Explorer:

Настройки громкости позволяют визуально изменять настройки окружения, настраивая такие элементы, как визуальное окружение, процедурное небо и настройки теней HD. Это также позволяет вам создавать пользовательские профили громкости и переключаться между ними.
Настройки громкости управляются путем создания GameObject и добавления компонента Volume. Этот рабочий процесс аналогичен процессу создания тома для стека постобработки v2. В HDRP по умолчанию в иерархии будет присутствовать один элемент.
Настройки HD-теней
Настройки HD-теней позволяют определить общее качество теней в объеме. Поле «Максимальное расстояние» рассчитывает качество теней на основе расстояния от камеры до тени.

Визуальная среда
В визуальной среде есть два раскрывающихся меню.
Sky Type предлагает три варианта: Процедурное небо, градиентное небо и HDRI-небо.

Процедурное небо создает среду на основе значений, выбранных вами в компоненте процедурного неба.
HDRI Sky создает карту окружающей среды на основе изображения, заданного в компоненте. По умолчанию компонент HDRISky не назначен параметрам громкости. Если нажать «Добавить переопределения компонентов...» в нижней части вкладки «Инспектор» и выбрать «HDRI Sky», компонент станет доступным.
Теперь вы можете назначить HDRI Sky Cubemap и изменить значения для достижения точного, реалистичного освещения.
Пакет Unity HDRI Pack доступен бесплатно в Asset Store от Unity Technologies и содержит 7 предварительно преобразованных (разрешение 1024x2014) HDR Cubemaps, готовых к использованию в вашем проекте.

Для этой сцены лучше всего подошел цвет «TreasureIslandWhiteBalancedNoSun» из пакета Unity HDRI, поскольку он обеспечивал достаточно света, чтобы осветить кухню, но не затмить ее. Конечно, с помощью модификаторов, предоставляемых компонентом, таких как «Экспозиция» и «Множитель», можно изменять и регулировать яркость. Важно выбрать HDRI-карту, которая дополнит вашу сцену.
Наконец, тип тумана предлагает вам 3 варианта: линейный, экспоненциальный и объемный. Чтобы определить значения, повторите предыдущий шаг компонента («Добавить переопределение компонента», примените соответствующий компонент к инспектору)
До появления HDRP создание стеклянного материала было непростой задачей. Не было простого способа создать реалистичный материал стекла без обширных исследований и программирования шейдеров или обращения к Asset Store для использования пользовательского шейдера.
Теперь, благодаря новым функциям HDRP Lit Shader, доступным в инспекторе материалов, вы можете создавать стекло, которое не только отлично выглядит, но и преломляет свет на основе определяемых настроек.
Для начала нам нужно создать новый материал HDRenderPipeline/Lit. Это шейдер материала по умолчанию, применяемый к любому новому материалу, созданному в HDRP.
Чтобы создать новый материал, щелкните правой кнопкой мыши в нужной папке и выберите «Создать» -> «Материал». Теперь инспектор материалов будет отображать совершенно новый инспектор материалов HDRP. В нем есть несколько заметных изменений. Давайте рассмотрим их.
Здесь вы можете начать определять поверхность Материала.
Тип поверхности
Существует два варианта типа поверхности: непрозрачная или прозрачная. Непрозрачный материал имитирует абсолютно сплошной материал, не пропускающий свет.
Напротив, Transparent представляет собой альфа-смешивание и имитирует полупрозрачную поверхность. Несмотря на свою полезность, этот тип поверхности требует больших затрат на визуализацию.
Важной особенностью HDRP является единообразное освещение как прозрачных, так и непрозрачных объектов.
Для этого примера выберите «Прозрачный». Это обеспечит доступ к параметрам, которые будут рассмотрены ниже.
Двусторонний
Эта настройка позволяет отображать материал с обеих сторон. По умолчанию нормальный режим установлен на «Зеркало», но в раскрывающемся списке мы можем выбрать «Перевернуть» или «Нет».
Если параметр «Двусторонний» неактивен, Unity будет визуализировать только те стороны материала, которые обращены в сторону камеры.
Параметры типа материала создают новые модели поведения, позволяющие создавать еще более реалистичные материалы. Каждая из этих опций после активации предоставляет дополнительные параметры в Инспекторе.
Стандарт
Использует базовые параметры и является типом материала по умолчанию.
Подповерхностное рассеяние (SSS)
Подповерхностное рассеяние работает путем моделирования того, как свет взаимодействует и проникает в полупрозрачные объекты, такие как растения. Также его используют при обработке кожи. Если вы когда-нибудь направляли свет через кончик пальца, вы наверняка видели, что свет меняет цвет, рассеиваясь под поверхностью. Это можно воспроизвести с помощью данного типа поверхности.
После активации появится параметр «Передача». Используя это, вы можете определить прозрачность объекта, используя Карту толщины.
Обеими этими функциями можно управлять с помощью профилей диффузии. Предоставляются два профиля по умолчанию: «Кожа» и «Листва», которые можно использовать в качестве основы для материалов SSS такого типа. Еще 13 профилей можно настроить с помощью настроек профиля, показанных ниже.

Для краткой видеодемонстрации посмотрите мой совет по Unity по SSS:
Я всегда избегал подповерхностного рассеяния (ППР), так как это всегда казалось сложным!! ?
В HD RP SSS имеет 2 предустановленных профиля, а также 13 других профилей, которые можно настраивать и добавлять дополнительную глубину любому материалу.
Ниже представлена простая видеодемонстрация:#unitytips pic.twitter.com/NM4Z03l1U1
— Киран Коленатт Unity (@kierancolenutt) 28 августа 2018 г.
Анизотропия
Анизотропия имитирует материал поверхности, который меняет свойства в зависимости от своей ориентации, например, имитируя внешний вид шлифованного алюминия. Вместо создания металлической поверхности с чистыми, аккуратными отражениями, используя карты касательной и анизотропии, вы можете изменить интенсивность отражений, а также ориентацию.
Иризация
Предоставляет параметры для создания переливающегося эффекта на поверхности материала, аналогичного тому, как свет появляется на нефтяном пятне. Выходные данные определяются картой иридизации и картой толщины слоя иридизации.
Зеркальный цвет
Зеркальный цвет используется для управления цветом и интенсивностью зеркальных отражений в материале. Это позволяет получить зеркальные отражения другого цвета, нежели диффузное отражение.
Прозрачный
Опция «Прозрачность» может быть чрезвычайно эффективна при имитации взаимодействия света с растительностью. Этот тип материала использует профили, аналогичные SSS, за исключением того, что в этом случае для определения того, как передается свет, используется карта толщины.
Этот полезный параметр позволяет материалу легко реагировать на материал декали, это работает для обоих рабочих процессов, как через проектор декалей, так и в качестве компонента объекта.

Базовый цвет + Непрозрачность
На этом этапе материал стекла все еще будет казаться непрозрачным, поскольку вам необходимо изменить значение непрозрачности в параметрах Inputs, чтобы обеспечить проникновение света.
Для этого откройте окно образцов цвета рядом с «Базовый цвет + Непрозрачность».
Красный, зеленый и синий каналы используются в качестве базового цвета, а альфа-канал определяет непрозрачность. Непрозрачность текущего материала определяется значением от 0 до 255, 255 — полностью непрозрачен, 0 — полностью прозрачен. В этом примере мы хотим установить цвет материала на светло-зеленый.
Нам нужно установить Непрозрачность на 30, так как это изменит Материал и сделает его практически прозрачным.
Ниже приведены используемые мной значения цветов:
Значения RGB:
R - 201
G - 255
B - 211
Шестнадцатеричное значение - C9FFD3
Важно помнить, что даже если вы установите для альфа-канала Материала низкое числовое значение, но оставите тип поверхности «Непрозрачный», Материал не будет прозрачным и сохранит свою непрозрачность.

Металлический и Гладкость
Эти параметры можно изменить с помощью ползунка со значениями от 0 до 1. Оба значения и выходные данные генерируются из карт масок альфа и красного канала, представленных ниже в инспекторе. После назначения карты маски ползунки впоследствии используются для перераспределения минимальных и максимальных значений.
Нормальная карта
При применении карты нормалей силу можно изменять, перемещая ползунок параметров в диапазоне от 0 до 2.
Вы можете добавить дополнительную детализацию и глубину к вашему стеклянному материалу, применив Нормаль, например, углубления или царапины.
Маска Карта
В HDRP карта маски представляет собой комбинацию:
Красный канал — металлический в диапазоне от 0 до 1
Зеленый канал - Окклюзия окружающей среды
Синий канал — Детальная маска карты
Альфа-канал - Плавность
По умолчанию текстуры, импортированные в Unity, используют sRGB. В инспекторе текстур снятие флажка «sRGB (цветовая текстура)» преобразует текстуру в линейный формат. Поскольку Mask Map использует математику для генерации выходных данных, эта текстура должна быть линейной.

Пальто Маска
Маска покрытия имитирует эффект прозрачного покрытия на материале, одновременно повышая его гладкость. По умолчанию значение Coat Mask равно 0, но ползунок позволяет регулировать параметр в диапазоне от 0 до 1. Маску прозрачного покрытия можно использовать для имитации таких материалов, как автомобильная краска или пластик.
Подробные данные
Подробная карта — это новая карта, введенная в HDRP и представляющая собой объединение дополнительных карт, которые добавляют мельчайшие детали к Материалу. Подробная карта использует следующие каналы:
Красный: Оттенки серого с использованием наложения смешивания
Зеленый: Нормальная карта канала Y
Синий: Гладкость
Альфа: Нормальная карта X-канала
Изменяя свойства «Вход прозрачности» шейдера, вы можете приступить к определению общего эффекта прозрачности. Входы прозрачности становятся доступны только после того, как тип поверхности установлен на прозрачный.
В этом примере следующий раздел позволит вам создать преломление для материала стекла.
Модель рефракции
Модель преломления определяет, как будет моделироваться преломление света через Материал. Есть два варианта: Плоскость и Сфера.
Выбор модели преломления зависит от формы и размера объекта, к которому применяется материал:
Сфера: Для заполненных объектов используйте модель сферы с толщиной преломления, сопоставимой с размером объекта, на который помещен материал.
Самолет: Для пустого объекта используйте режим «Плоскость» с малой толщиной преломления.
Параметры «Показатель преломления» и «Толщина преломления» позволяют управлять поведением модели преломления.
Показатель преломления
Регулировка параметра по шкале от 1 до 2,5 позволит получить различную интенсивность рефракции. По умолчанию установлено значение 1, что означает отсутствие рефракции.
Между 1,1 и 1,2 преломление меняется, и окружающая среда, видимая через Материал, кажется перевернутой.

Теперь, когда основа стеклянного материала готова, можно вносить индивидуальные изменения, чтобы собрать материал, который будет лучше всего подходить вам и объекту, к которому применяется материал.
Надеюсь, этот обзор помог вам лучше понять, как на практике применять HDRP в ваших проектах! Хотя он все еще находится на стадии экспериментальной предварительной версии, у нас есть предварительная документация на GitHub , с которой вы также можете ознакомиться, чтобы начать работу.
HDRP — это постоянно развивающийся, захватывающий новый инструмент для создания проектов, и мне не терпится увидеть, что вы с ним сделаете. Если у вас есть какие-либо вопросы или предложения, свяжитесь со мной в Twitter @kierancolenutt . Я хочу услышать о вашем опыте, дайте мне знать, как у вас дела!
Чтобы следить за развитием HDRP и SRP в целом и обсуждать его, присоединяйтесь к нашему форуму экспериментальной графики.