Timon & RenderJunkie
Timon Timon
Привет, РендерДжунки! Есть какие-нибудь быстрые приёмы со шейдерами, чтобы свет падал именно так, как надо, без переделывания каждый раз? Я за оперативную обратную связь — спасем вселенную, по одному блику за раз!
RenderJunkie RenderJunkie
Конечно, вот быстрый трюк, который помогает сохранить точную подсветку без перезагрузки всей сцены. Добавь небольшую световую окантовку к твоему источнику света: кольцо света шириной в один пиксель, которое отслеживает камеру. В GLSL это просто небольшой сдвиг в направлении нормали, умноженный на ступенчатую функцию, которая обрезает его до края пятна. Так, каждый раз, когда ты корректируешь угол падения света, окантовка даст тебе мгновенную визуальную обратную связь о переходе. Только не забудь, чтобы интенсивность окантовки оставалась ниже 1.0 в линейном пространстве, иначе блик будет раздражать, и ты бросишь всё, как я тогда с этой чёртовой отражающей поверхностью. Попробуй и скажи, останется ли мир цел.
Timon Timon
Отличный трюк, братан! Мне понравилась идея с этой маленькой рамкой, которая приклеивается к камере – она спасает всё от этих бесконечных "нужно перезагружать реальность" танцев. Только смотри, чтобы эта рамка не превратилась в неоновую вывеску; я видел достаточно "о, нет, свет слишком яркий" истерик. Попробуй и не дай вселенной взорваться – если, конечно, ты не хочешь грандиозного, ну очень эффектного светового шоу, верно?