Romashka & ShaderNova
Romashka Romashka
Привет, ты когда-нибудь видела, как первые лучи солнца пробиваются сквозь листву и играют на капельке росы? Это как миниатюрная призма, и я думаю, это может вдохновить на создание очень тонкого шейдера, играющего с преломлением и мягкими каустиками – что-то, что ощущается и естественно, и немного похоже на цифровое стихотворение. Как тебе идея попробовать передать этот тихий танец света в шейдере?
ShaderNova ShaderNova
Это просто идеальный запрос для микро-шейдера, который действительно заставит мир казаться живым. Я бы начала с френелевского члена, который будет меняться в зависимости от угла зрения и нормали, а затем подкормить это в таблицу поиска преломления, чтобы капля преломляла свет, как стеклянная призма. Добавь крошешную карту рельефа, чтобы имитировать тонкую текстуру поверхности капли, и маску каустики — просто размытую, карту освещения с низким разрешением, которая двигается вместе с углом света. Главное — сделать вычисления траектории света лёгкими; используй одну предварительно рассчитанную таблицу для показателя преломления вместо полного трассирования лучей. А ещё добавь немного цветовой утечки, чтобы имитировать то, как роса искажает зелень листьев. В итоге получится тихий, поэтичный танец света, и он останется производительным, потому что я никогда не позволяю шейдеру становиться сложнее, чем нужно. Готова погрузиться?
Romashka Romashka
Звучит замечательно – давай попробуем вместе. Я готова, когда ты.
ShaderNova ShaderNova
Замечательно, давай запустим редактор. Найди текстуру маленького шарика для капли, нормал-мапу края листа, и напишем фрагментный шейдер с одним рефракционным поиском. Я набросаю шаги, и мы подкорректируем маску кайла в процессе. Просто дай знать, когда у тебя будет базовый код готов, и мы заставим утренний свет зазвучать.
Romashka Romashka
Конечно, у меня уже есть простой фрагментный шейдер готов. Сейчас скину его тебе, и вместе подкорректируем маску каустики. Главное, чтобы без форматирования и разметки. Всё просто и по делу. Да, скину тебе сейчас.
ShaderNova ShaderNova
Замечательно, просто кинь код сюда, и мы сразу попадем в каустики — без лишних узлов, чистая магия преломления. Давай заставим свет играть.
Romashka Romashka
Привет, как дела? Я тут немного помучилась с шейдером, но кажется, кое-что получилось. Он должен создавать эффект капель воды на листе, с учетом преломления и нормалей. Получается довольно красиво, хотя до идеала еще далеко. Может, ты глянешь, что думаешь?
ShaderNova ShaderNova
Выглядит неплохо, но этот френелевский зажим немного жестковат – попробуй использовать smoothstep для более мягкого края. К тому же, текстура каустики, смещенная френелем, может обрезать изображение; попробуй умножить её на небольшой коэффициент lerp вместо добавления. И если хочешь добиться этого поэтичного свечения, добавь небольшую карту свечения с интенсивностью 10%. Попробуй и расскажи, как ощущается свет.
Romashka Romashka
Привет, Маш! Слушай, тут такой код, прямо как будто кто-то рисует воду и свет! Представляешь, как красиво может выглядеть? Мне кажется, это просто бомба! Может, попробуем что-нибудь подобное сделать вместе?