...имитацией эффекта Glossy Refraction на этапе пост-обработки.

b042a4d4fe5e95e3df70c8f23e53daf9.jpeg

Не знаю как у короны, но у Vray этот эффект нагибает любую рендер ферму, серьезно столкнулся с такой проблемой я при рендере этой сцены:

00e36200dc72fbb0648b9a0b9e511f1e.jpeg

Видно что шумит стекло, пришлось убавить сэмплинг и использовать всевозможные дефликеры, иначе ждать мне неделю, а так всего пара суток)) Апосля таких событий я сильно задумался о редшифте и иже с ним, но примерно в то же время попалась мне на глаза статья о том, как рендерится кадр в Doom (2016). Вот она . Классная статья, классный движок, классные приёмы оптимизации. Но как мне это поможет в работе, я тогда еще не совместил в голове. И вот, буквально сегодня руки дошли до эксперимента, результаты его меня вполне устроили, но об этом позже.

Давайте начнем с вводных данных, а именно материал в 3д максе и необходимые опции. Стандартный VrayMaterial у которого в слоте glossiness градиент в пределах 1-254 (это важно)

c43d3e3e4c52f6dc0b6602d6019ab8d8.jpeg

Эту картинку я использовал как референс. Вот что действительно важно - так это маски. Маски - наше всё при пост-обработке. Я использовал пасс VrayExtraTex, куда и вставил текстуру из glossiness, Важно отключить сглаживание именно этого пасса, чтобы уберечь себя от ненужных артефактов по краям. Еще тут есть Cryptomatte, он пригодится, чтобы после всех операций над пикселями окно в раму вернуть, еще и с антиалиасингом, да и вообще просто жить без него не могу теперь.

18f17b9715c97dca2e399e13bd7f6b33.jpeg

Теперь смело выключаем текстуру с glossiness и ускоряемся в 12 (двенадцать!) раз.

303100322ed89cff5bf8e7b3793154c9.jpeg

Все, дальше работа в Nuke (Fusion если хотите, если повторите в фотошопе, будет вообще круть) Вот такая "расческа" у меня вышла, конечно до изящества в Doom далеко, никакие экспрешны я не использовал, и вместо понижения разрешения как в Doom я использовал обычный Box Blur, бокс мне показался более подходящим и считается он пошустрей чем Гаусс, но это не точно.

a8aa05c920ad587ef761ce6baa8754fc.jpeg

Давайте пошагово разберем, что же тут к чему. Вот первый блок, тут все просто: пятикратное повторение размытия начиная от значения радиуса 20, заканчивая 240. Тут все на глаз, оглядываясь на референс. Если первые три блёра идут последовательно друг за другом, то два последних с высокой степенью размытия, идут от исходной картинки, так хайлайты сильнее и мне визуально нравится больше, но я пробовал и все последовательно и все от исходника. Почему именно пять блёров? Это оказалось минимально достаточным количеством, чтобы гладко их сшить, четыре уже видно стыки, шесть - избыток.

408feafb2d36017f5d57fb90a4500ef2.jpeg

Следующая операция - получение индивидуальной маски на каждую степень размытия.

940c35f1a3d8984b7d6271f36a714219.jpeg

Тут я ничего лучше не придумал, кроме как воспользоваться топорным люма-кейером. Да можно изящнее, не спорю, зато наглядно и ползунки вручную покрутить можно. Каждый кейер режет свой диапазон из маски и выдает в альфа-канал свой кусочек.

aabb0da01d1b2163ad5ccd1656649180.jpeg

Ну теперь-то осталось только это совместить.

b347b602da42740ceaea89fd62743af4.jpeg

Каждый размытый проход накладывается поверх предыдущего через Copy, подмешивается по своей маске. Получается 6 степеней размытия от 0 до 240 с плавными переходами.

5bdd58121e0ff355d0fc955c7a732bac.jpeg

Давайте глянем, что будет, если простой градиент заменить на более интересную текстуру.

2b45ed54eb5cb0286d5bff2837d058bb.jpeg

Разумеется, результат не один-в-один. Такого и быть не могло. Но выигрыш в рендертайме колоссальный. И при этом стекло из Vray все равно шумит, хоть настройки я поставил выше своих средних (min shading rate=12, max subdivs=16, Noise threshold=0.01)

f3a43b244a2527c2eb49c0e5a1c4b64e.jpeg

Да, кстати, Cryptomatte, зачем он тут. Дак вот, после всех размытий получается такой результат.

d6e63b7f6f9d81f63715cbce45a55118.jpeg

Мало того, что лесенка от маски, так еще и размыто все подряд. Для этого вычленяем маску по объекту и мерджим поверх основной картинки наш результат. Вуаля, эффект только на стекле.

4510e2c3f5e17d56d9873493de32ebeb.jpeg

Вот и всё, один раз настроив будет все работать на любой сцене, только значения маски подбирать по ситуации.