Marisha & PixelDevil
Мариш, ты когда-нибудь замечала, как меняется свет в тихой комнате, если посмотреть на него под определенным углом – как будто легкая рябь, почти незаметная? Я думаю о том, чтобы попытаться это воспроизвести в коде, превратить в такой… сбой, но чтобы он ощущался как живая тень. Как тебе идея попробовать запрограммировать эти мимолетные переливы света и попобаловаться с ними?
Мне очень нравится эта идея – это как подслушиваешь тайный шёпот из комнаты. Попытаться уловить эту едва заметную рябь в коде – это как рисовать светом на экране. Я вижу этот глитч как крошечное эхо реальности, тень, которая двигается настолько чуть-чуть, что напоминает о том, что она живая. Если хочешь начать, может, попробуй привязать интенсивность света к функции шума, а потом дай ей медленно дрейфовать. Скорее всего, у нас получится что-то, что будет казаться и глючным, и почти живым – я думаю, это того стоит. Главное – чтобы изменения были настолько тонкими, что почти не замечались, а потом позволь игроку почувствовать этот скрытый сдвиг. Удачи!
Звучит неплохо, но готового решения от меня не жди. Я создам шейдер, который будет считывать яркость сцены, подам её на генератор Перлина, а потом модулирую шум синусоидой низкой частоты. Получится лёгкая дрожь, но настолько, что глаз будет её замечать, но не сразу. Только так можно поддерживать эффект "живым", не разрушая иллюзию. Готова кодить?
Звучит как отличный план! Мне очень интересно, как эта едва заметная рябь превратится в полноценный сбой. Давай сделаем это!
Ладно, запускай редактор шейдеров, добавь текстуру яркости, подшей её низкочастотным шумом, и посмотри, как поверхность оживает. Если покажется слишком спокойно, увеличь частоту. Давай сделаем это почти незаметным – просто лёгкий намёк, чтобы игрок засомневался, что он видит. Я позабочусь о расчётах, а ты следи за рендер-окном. Готова увидеть рябь?
Конечно, внимательно слежу за окном – вижу, как всё оживает. Уже чувствую лёгкое касание света, еле заметный импульс, почти секрет. Сообщай, что меняешь; я буду отмечать малейшие изменения и как они влияют на восприятие игрока. Давай посмотрим на этот тихий намёк движения.
Почти закончил с основным шейдером. Первый штрих: уменьшил амплитуду шума до 0.02 — только чтобы слегка подкорректировать свет, не нарушая общий баланс. Потом добавил синусоиду с частотой 0.1 Гц к смещению шума, чтобы создать медленный, почти дыхательный ритм. И ещё подкрутил гамму на выходе до 0.9, чтобы тон-маппер не обрезал эти тонкие изменения. Посмотри, как это медленное движение ощущается в реальном времени. Если покажется слишком медленным, увеличим частоту синусоиды до 0.2 Гц. А пока, давай посмотрим, как игрок отреагирует на этот едва заметный импульс.
Тихо, как вздох, едва заметная рябь – словно биение сердца комнаты. Я почти чувствую этот низкий гул, он как будто под поверхностью. Сохраним это спокойное безмолвие – порой самые лучшие чудеса случаются в пространстве между тем, что видно, и тем, что чувствуешь. Я буду следить за рендером, скажу, если он начнет затягиваться.
Отлично, дыхание теперь достаточно тонкое. Остался последний штрих – добавим чуть-чуть случайной дрожи к исходному шуму, чтобы оно не казалось застывшим. Это придаст пульсации жизни, не нарушая тишину. Прогони тест и напиши мне, если станет слишком монотонно. Всё сделано, как просили.
Добавка этой лёгкой дрожи – отличная идея, это как тихое биение сердца, которое никогда не останавливается. Сейчас включу и буду внимательно следить за ритмом. Если вдруг покажется, что он затих, просто дай знать.
Поймал нужную дрожь, теперь это тихий, спокойный импульс. Следи за этим — если ритм покажется приглушенным, добавлю высокочастотный всплеск. А пока давай позволим этой едва заметной пульсации вести сцену.