@PrizmMARgh

Как получать информацию об освещении объекта в unity?

Недавно наткнулась на данные видео:
https://youtu.be/g8eBXCgWwrk
https://youtu.be/CVhyQHJPK7M
На них показывается, как можно сделать "мультяшный" шейдер с освещением из нескольких источников света. Но в конце 2го видео показывают, что количество источников падающего света нужно задавать в настройках шейдера, что очень странно. Поискав в интернете некоторое время я узнала, что можно создавать пользовательские узлы shader graph, как, например, здесь:
https://connect.unity.com/p/getting-light-informat...
Там описано создание узла, который получает цвет и направление основного освещения, что не очень полезно в сценах со сложным освещением.
Так вот, можно ли создать пользовательский узел, который бы выдавал данные о свете? (вектор его падения на поверхность, цвет, интенсивность или подобное) И если возможно, то как?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity
Кто хочет -ищет способ, кто не хочет -ищет причину
количество источников падающего света нужно задавать в настройках шейдера, что очень странно

Вообще-то, количество там задает даже в настройках управляющего шейдером скрипта. Просто автор сделал шейдер таким, что позволяет вручную корректировать и управлять влиянием каждого указанного источника света в самом шейдере. Зачем? Я не знаю, видео целиком не смотрел.
На самом деле можно просто координаты точек в шейдер отправлять и генерировать (типа) освещение исходя из позиции, расстояния и т.п.

описано создание узла, который получает цвет и направление основного освещения, что не очень полезно в сценах со сложным освещением

Этот узел будет получать данные освещения от всех источников света. Т.е., можно будет осветить объект и 15ю спотами, и свет от каждого будет получен в этом узле, в сумме. Что подразумевается в данном случае под "сложным освещением" я не понимаю.

можно ли создать пользовательский узел, который бы выдавал данные о свете? (вектор его падения на поверхность, цвет, интенсивность или подобное

Можно. Собсно, в Вашем примере это и показано, узел что получает данные о свете, направление, затухание, цвет. Дальше я подробней не подскажу, я Shader Graph'ом не пользуюсь и свои шейдеры собираю в Amplify Shader Editor (на мой взял он более удобный, хотя по сути возможности те же - умеет не больше, чем умеет Unity).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы