Unity: Создание материала ‘Стекло’ с помощью HDRP (часть 2)

Ранее мы подготовили сцену для работы с HDRP. Сначала я попытался добавить просто куб, уменьшенный в глубину, чтобы получилось что-то похожее на стекло, но настройки. которые подходили для стандартного шейдера, с HDRP не сработали. Будем разбираться…
Для объекта Куб, изображающего «стекло» я установил такие параметры:
1. В разделе Transform установим размеры (Scale):

x=1.3127
y=1
z=0.008

Значение z — это как раз толщина «стекла».
2. Создадим материал «стекло»:
ProjectAssetsMaterialsCreateMaterial
3. Зададим новому материалу имя: Glass_Mat (по-умолчанию для него выбран шейдер HDRP/Lit).
4. Как и раньше, выберем для него такие настройки:
Surface OptionsSurface Type = Transparent
Surface InputsBase MapAlpha = 10
5. Изменим значения Metallic и Smoothness:
Surface InputsMetallic = 0.5
Surface InputsSmoothness = 1

Мы не задействовали Reflection Probe, при этом отражения в стекле видны. Проблема в том, что эти отражения какие-то искажённые и геометрически неверные:
Unity: Создание материала ‘Стекло’ с помощью HDRP (часть 2)
Всё дело в том, что на сцене уже есть несколько reflection probe!

 

6. Мы выяснили, в чём именно проблема с отражениями, поэтому удалим со сцены старые объекты Reflection Probes (можно не удалять, а просто деактивировать их):
HierarchySampleSceneExampleAssetsReflection Probes

Вообще они были нужны для создания отдельных эффектов. Поскольку это не моя сцена, а пример, я не хочу разбираться, для чего их поместили на сцену. В идеале, для каждой из них нужно настроить «вес», чтобы они не конфликтовали друг с другом! Например:
Reflection Probe MainReflection ProbeRender SettingsWeight
Изменяя параметр «вес» можно настроить приоритет каждой из Reflection Probes

 

7. Через контекстное меню добавим свою собственную Reflection Probe:
LightReflection Probe

По-умолчанию выставлен режим Baked, поэтому чтобы сформировать отражения на поверхности стекла, нужно нажать на кнопку Bake внизу панели компонента Reflection Probe.

 

Мы добавили свою собственную reflection probe, а другие деактивировали и искажения пропали, но отражение стало слишком сильно увеличено:
Unity: Создание материала ‘Стекло’ с помощью HDRP (часть 2)

В отличие от Standard Render Pipeline, новая система High Definition Render Pipeline, требует создания дополнительного объекта — Reflection Proxy Volume Component. На текущий момент я не нашёл ни одного нормального мануала к HDRP. Хотя на YouTube достаточно инструкций, но по какой-то причине в них не уделяется внимание настройке Reflection Proxy Volume. Даже в этом официальном видео этой настройке не уделили внимание!

 

8. Не знаю, как правильно, поэтому просто добавлю его к текущему объекту Reflection Probe:
Reflection ProbeAdd ComponentReflection Proxy Volume
9. Откроем в Инспекторе свойства объекта Reflection Probe и обратим внимание на раздел Projection Settings (на скриншоте видно, что сейчас там ничего не выставлено):
Unity: Создание материала ‘Стекло’ с помощью HDRP (часть 2)
10. Выберем для этого поля значение из п.8 (в списке оно будет называться как и наш объект — Reflection Probe):
Unity: Создание материала ‘Стекло’ с помощью HDRP (часть 2)
11. После добавления Reflection Proxy Volume, масштаб отражений в стекле стал больше соответствовать реальности:
Unity: Создание материала ‘Стекло’ с помощью HDRP (часть 2)

Можно было не добавлять «Reflection Proxy Volume», а установить галочку «Use Influence Volume As Proxy Volume», но в моём примере размеры отражения всё равно кажутся несколько великоватыми. В общем, скорее всего скоро опять что-то изменят и данная инструкция будет неверной…

 



Подписаться
Уведомление о
guest
0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments