Давным-давно я рассказывал, как сделать эффект стекла, используя стандартный шейдер и Reflection Probe. Движок Unity развивается и уже какое-то время используется пакет High Definition RP. Здесь уже появляется гораздо больше возможностей для работы с материалом объекта, его физическими свойствами, которые влияют на визуализацию этого объекта. Сначала я хотел просто вернуться к нашей сцене из демо Tanks Tutorial, чтобы его протестировать, но потом решил использовать проект из ссылки. Проблемой оказалось то, что данного шаблона больше нет в текущей версии Unity. Чтобы его скачать, мне пришлось сначала поставить Unity 2018.4.36f1, при этом при запуске выбрать шаблон «3D With Extras»:
Конвертация проекта в HDRP
1. Для начала установим пакет High Definition RP:
▶ ▶ ▶ ▶
2. После установки будет открыт Мастер настройки .
▶ ▶
3. В окошке Render Pipeline Wizard нажимаем кнопку
4. После этого нам будет предложено создать ассет HDRenderPipeline, сделаем это:
5. Текущая сцена не рендерится корректно и окрасилась в пурпурный цвет, поэтому её материалы необходимо конвертировать (в том же диалоге кнопка ):
▶ ▶ ▶ ▶
Настройка освещения
6. Добавляем на сцену новый объект Sky Volume:
▶ ▶
7. Открываем окошко настроек освещения:
▶ ▶
8. Переходим на вкладку , где мы выбираем нужный нам профиль (Sky and Fog Settings Profile):
9. Меняем настройки освещения неба:
=
10. Через меню добавляем новый объект с настройками Global Volume:
▶ ▶
11. Нажав в инспекторе кнопочку , создаём для него новый профиль:
12. Для теней создаём новое правило Override:
▶ ▶ :
13. Здесь мы меняем только одну настройку — максимальная дистанция (сначала включим галочкой настройку Max Distance):
=
14. Поскольку экспозиция сцены слишком большая, нужно её отрегулировать, для этого выбираем на сцене наш объект Global Volume и в Инспекторе добавляем новое правило:
▶ ▶ ▶
15. Для этого правила меняем значение режима экспозиции на Автоматическое:
=
16. В настройках отображения сцены можно установить опцию , чтобы обновить настройки освещения:
17. В окошке Проекта выберем их:
▶ ▶ ▶ ▶ ▶
18. В Инспекторе поменяем для них некоторые свойства:
=
=
19. Для этого выберем прожектор в окне Иерархии:
▶ ▶ ▶ ▶
20. В Инспекторе для него установим новые значения Интенсивности:
=
21. Для этого же компонента включим и активируем скрытую настройку Reflector в разделе :
22. Поскольку у нас была отключена опция автоматической генерации освещения сцены, выполним процедуру вручную (либо включим опцию
▶ ▶ ▶ :
Постобработка
23. В окне Иерархии выделяем объект Post-process Volume и удаляем его.
24. Для постобработки создадим новый объект настроек:
▶ ▶
25. Переименуем этот объект в «Post-processes»
26. Кнопкой создадим новый профиль:
27. Далее добавим к нему настройки кнопками ▶ :
- Mode и выставляем её значение в ACES — тут включаем опцию
- Intensity = 0.2 — отмечаем галочкой только
- Intensity = 0.1) — то же самое, но значение делаем равным 0.1 (
- Intensity = 0.55, Smoothness = 0.4 и Roundness = 0 — как и ранее, но с другими значениями:
- Focus Mode = Manual, Near Range = 0 — 0.5, Far Range = 2 — 10
У меня в Unity 2020.3.23f почему-то при значении Far Range End < 2067 перестаёт отображаться небо и вместо него всё заменяется на чёрный цвет. Чтобы этого не произошло, мне пришлось для камеры выставить значение Clipping Planes Far <= 7.66406 (по умолчанию было 1000):
—
28. В Иерархии выберем объект Global Volume, созданный в п.10
29. Добавим для него новую настройку:
▶ ▶
30. Установим для неё такие значения:
=
Вроде всё, как в уроке, но мне не нравятся «лесенки», поэтому включу Anti-Aliasing.
31. В Иерархии выберем камеру (Main Camera) и в Инспекторе включим AA:
▶ ▶
После включения Anti-Aliasing лесенки почти пропали:
Получилось довольно много, но мы так и не дошли до процесса создания стекла. Его я опишу в следующей заметке, но базой будет выступать текущий проект.
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024