...имитацией эффекта Glossy Refraction на этапе пост-обработки.
Не знаю как у короны, но у Vray этот эффект нагибает любую рендер ферму, серьезно столкнулся с такой проблемой я при рендере этой сцены:
Видно что шумит стекло, пришлось убавить сэмплинг и использовать всевозможные дефликеры, иначе ждать мне неделю, а так всего пара суток)) Апосля таких событий я сильно задумался о редшифте и иже с ним, но примерно в то же время попалась мне на глаза статья о том, как рендерится кадр в Doom (2016). Вот она . Классная статья, классный движок, классные приёмы оптимизации. Но как мне это поможет в работе, я тогда еще не совместил в голове. И вот, буквально сегодня руки дошли до эксперимента, результаты его меня вполне устроили, но об этом позже.
Давайте начнем с вводных данных, а именно материал в 3д максе и необходимые опции. Стандартный VrayMaterial у которого в слоте glossiness градиент в пределах 1-254 (это важно)
Эту картинку я использовал как референс. Вот что действительно важно - так это маски. Маски - наше всё при пост-обработке. Я использовал пасс VrayExtraTex, куда и вставил текстуру из glossiness, Важно отключить сглаживание именно этого пасса, чтобы уберечь себя от ненужных артефактов по краям. Еще тут есть Cryptomatte, он пригодится, чтобы после всех операций над пикселями окно в раму вернуть, еще и с антиалиасингом, да и вообще просто жить без него не могу теперь.
Теперь смело выключаем текстуру с glossiness и ускоряемся в 12 (двенадцать!) раз.
Все, дальше работа в Nuke (Fusion если хотите, если повторите в фотошопе, будет вообще круть) Вот такая "расческа" у меня вышла, конечно до изящества в Doom далеко, никакие экспрешны я не использовал, и вместо понижения разрешения как в Doom я использовал обычный Box Blur, бокс мне показался более подходящим и считается он пошустрей чем Гаусс, но это не точно.
Давайте пошагово разберем, что же тут к чему. Вот первый блок, тут все просто: пятикратное повторение размытия начиная от значения радиуса 20, заканчивая 240. Тут все на глаз, оглядываясь на референс. Если первые три блёра идут последовательно друг за другом, то два последних с высокой степенью размытия, идут от исходной картинки, так хайлайты сильнее и мне визуально нравится больше, но я пробовал и все последовательно и все от исходника. Почему именно пять блёров? Это оказалось минимально достаточным количеством, чтобы гладко их сшить, четыре уже видно стыки, шесть - избыток.
Следующая операция - получение индивидуальной маски на каждую степень размытия.
Тут я ничего лучше не придумал, кроме как воспользоваться топорным люма-кейером. Да можно изящнее, не спорю, зато наглядно и ползунки вручную покрутить можно. Каждый кейер режет свой диапазон из маски и выдает в альфа-канал свой кусочек.
Ну теперь-то осталось только это совместить.
Каждый размытый проход накладывается поверх предыдущего через Copy, подмешивается по своей маске. Получается 6 степеней размытия от 0 до 240 с плавными переходами.
Давайте глянем, что будет, если простой градиент заменить на более интересную текстуру.
Разумеется, результат не один-в-один. Такого и быть не могло. Но выигрыш в рендертайме колоссальный. И при этом стекло из Vray все равно шумит, хоть настройки я поставил выше своих средних (min shading rate=12, max subdivs=16, Noise threshold=0.01)
Да, кстати, Cryptomatte, зачем он тут. Дак вот, после всех размытий получается такой результат.
Мало того, что лесенка от маски, так еще и размыто все подряд. Для этого вычленяем маску по объекту и мерджим поверх основной картинки наш результат. Вуаля, эффект только на стекле.
Вот и всё, один раз настроив будет все работать на любой сцене, только значения маски подбирать по ситуации.