Render.ru

Белые зерна на glossy reflective материалах

DemX86

Активный участник
Рейтинг
18
#1
Проблема: на объектах с материалами с сильно размытыми отражениями (glossines 0.5-0.6) появляются зерна белого цвета (смотрите шторы и стену с растениями на первой картинке, здесь на изображении специально GI отключен, оставлен только direct light). Опытным путем удалось установить, что дело именно в отражающем материале, то есть GI здесь не при чем.

По идее эту проблему должна решать опция Subpixel mapping, но при включенном Linear Workflow этот параметр (как и изменение Color mapping Type) ничего не делает. Несколько улучшило ситуацию разделение highlight и reflection glossiness в настройках материала (до этого было еще хуже), но все же полностью избавиться от зерен не удалось.

Вопрос: как от них избавиться?
Настройки материала и рендера прилагаются.
 

Вложения

DemX86

Активный участник
Рейтинг
18
#3
А включите совместно с саб-пиксель колор маппинг ещё и клэмп аутпут?
Magic! Зерна пропали! Вячеслав Евгеньевич, большое спасибо за помощь.
А вы не могли бы еще немножко рассказать, что мы физически только что этими настройками сделали, то есть почему Subpixel mapping без Clamp Output не работает? Я просто пока не совсем улавливаю логики появления и исчезновения этих зерен.
 
#4
Карочи всё просто. Дипазон РГБ предполагает ограниченный набор цветов и соответственно, яркостей. Как мы знаем макс. значение любого цвета - 255. соотвецтвенно исключительно белый цвет - 255,255,255. Примем за 1. Так вот. Рендер движок когда делает своё тёмное дело не ограничивает себя в 8битном цветовом пространстве, а считает как есть и уже после приводит цветовую инфу посредствам колор маппинга к удобному для нас диапазону - урезает засветы, изменяет их и т.д. К этому же способу относится и клэмп. Он урезает все цвета, значение которых выше указанной справа цифры. Допустим, в ходе уточнения цвета пикселя получилось такая о нём информация
0.5 0.5
0.5 2.5
Затем он их усредняет, получает в результате получаем сколько? 2. 2 больше чем 1 а значит этот пиксель сведётся к чисто белому цвету. Но вот если включить ещё и саб-пиксель колор маппинг, то алгоритм меняется: урезание цвета происходит не после, а ДО устреднения. Итак, что иммем:
0.5 0.5
0.5 1 - вот ту произошло урезание цвета с 2.5 до 1
Суммируем и делим - получаем 0.625 - светлосерый, вместо белого. Смекаете?
 

DemX86

Активный участник
Рейтинг
18
#5
Благодарю за полезное пояснение, расставили все на свои места.
Осталось лишь выяснить откуда на светло-сером (или даже темном) материале появляются сэмплы со сверхбелым цветом.
 

DemX86

Активный участник
Рейтинг
18
#7

DemX86

Активный участник
Рейтинг
18
#11
Ага, сверхбелый цвет-то обрезали, но как теперь убирать засветы с картинки?
Без clamp можно было отрендерить в 32 бита (сохранить в exr, например) и легко потом убрать все засветы хоть в том же Ps. А с clamp output вся эта информация режется, и засветы с картинки уже никуда не денешь.

То есть, если хочется делать tonemapping на посте, то остается только вариант задирать настройки AA (как про это говорится в вышеуказанном уроке)?
 

DemX86

Активный участник
Рейтинг
18
#13
Засветы с картинки вам уберёт колор маппинг.
Тут немного по-другому — при вышеуказанных настройках (конкретно при включении опции Don't affect colors) изменение Color mapping Type абсолютно ничего не дает.

Здесь помогла установка clamp output = 3. Это решает проблему с зернами, но и оставляет достаточный динамический диапазон для того, чтобы потом на посте можно было приглушить засветы.
 

DemX86

Активный участник
Рейтинг
18
#15
Don't affect colors (adaptation only) включается для того, чтобы применить пороги сэмплинга с учетом последующего перевода картинки в sRGB. Иначе (без этой опции), когда мы переведем картинку в gamma 2.2, то вылезут шумы в темных местах изображения, которые при gamma 1 рендереру показались вполне нормального отсэмплированными. Но, я думаю, вы это и без меня прекрасно знаете.
Мне хотелось бы полностью делать tonemapping в посте, а Don't affect colors как раз сделана под эти нужды.

В вирее2 минимально рабочее значение клэмпа где-то от 2х.
А в V-Ray 1.5 было по-другому? V-Ray for Maya отстает в развитии от V-Ray for 3Ds Max, сейчас для Maya актуальная версия — 1.5SP1.

Здесь помогла установка clamp output = 3.
Не особо помогла, если честно... Зерна гасятся, но все равно остаются заметными. А диапазона 0-3 все равно не хватает, чтобы убрать засветы на посте. Я что-то тут начинаю теряться...
 
#16
А попробуйте в 2.2 просчитать интерьер. отключите вообще в нём клэмп и сабпиксель - должны произойти чудеса ;)
В 1.5 да - клэмпа 1 хватало чтобы убрать все пятна.
А про зёрна - уверены что они имеют именно эту природу? может мало сабдивов/высокий ноиз трешолд?
 

DemX86

Активный участник
Рейтинг
18
#17
Вячеслав, благодарю за подсказки. Вы правы насчет того, что эти зерна имеют другую природу — оказалось, что это отражения размытых отражений (см. картинку, на сфере меньше зерен, потому что у нее материал с менее размытыми отражениями, чем у плоскости). А на самой первой картинке с интерьером у меня напротив окон в глубине комнаты стояло большое зеркало, которое отражало яркий солнечный свет, которое, в свою очередь, так зернисто размывалось по шторам.

По настройкам сцены (картинка #3) видно, что это, в общем-то, production quality. Правда reflection subdivs на материалах 8. Если увеличить их, скажем, до 48, то станет получше, но все равно не совсем то, чего хотелось бы (по сравнению с первичными отражениями ИСа, см. картинку #2), а время рендера увеличилось в 5.5 раза.

Логично предположить, что отражения отражений считаются по какому-нибудь оптимизированному адаптивному алгоритму, но изменение Adaptive amount на 0 (никакой адаптации) сделало ненамного лучше (даже при reflection subdivs 48). Поискал по настройкам рендера что-нибудь на предмет отдельного контроля вторичных размытых отражений — как-то ничего не нашел.

В таком случае мой первоначальный вопрос меняется на: как бороться с зернистыми размытыми вторичными отражениями?
 

Вложения

DemX86

Активный участник
Рейтинг
18
#19
Ну noise treshold например (у вас ето adaptive treshold).
Понижать этот параметр ниже 0.005 (ведь это уже, наверное, отличное production quality для 80% случаев сцен, если не больше) только ради того, чтобы вменяемо посчитались вторичные отражения — по-моему это того не стоит, ведь время просчета увеличится чудовищно. Я бы в таком случае даже предпочел бы вообще выключить просчет отражения отражений. Надо посмотреть, можно ли такое сделать...
 
Сверху