Несколько слов о настройках VRay.
(с) Михаил Волков (www.mcwolf.info)
Посвящается любознательным студентам,
которые и сподвигли меня написать эту заметку
Для наглядности настроек можно пока что отключить вторичные отражения Secondary Bounces: None.
Примечание: Данная заметка выражает исключительно мнение автора. Другие люди могут использовать другие настройки, считать их самыми правильными и это вполне может оказаться правдой.
Позднейшее примечание: Когда я писал название "Несколько слов о настройках VRay", я не знал, что заметка "распухнет" до таких размеров. Но название мне нравится так что менять не буду.
Гамма.
В случае, который мы будем рассматривать, гамма - это "сдвиг" серой точки. Звучит страшновато, но смысл простой - картинка становится светлее. Итак, гамма 1.0 и гамма 2.2
Как видно, при гамме 2.2 (и вообще при гамме больше 1) картинка получается более "выцветшая": тени светлее, контраст между тёмным и светлым меньше. Для тех, кто знаком с Adobe Photoshop это можно представить как использование команды Levels со значением серой точки 2.2
То есть чёрный цвет остаётся чёрным, белый остаётся белым, а вот средние значения высветляются. Почему же не сделать высветление в фотошопе уже после рендера в 3DStudio? После применения Levels цвета могут превратиться в другие, в то время как в 3DStudio "высветление" касается прежде всего освещения. Посмотрим на примере. Сделаем 3 картинки: рендер в гамме 1.0, в гамме 2.2 и в гамме 1.0 с применением Levels.
Если присмотреться, то видно, что гамма 2.2 затронула только тени. Там, где при гамме 1.0 тени выглядят чёрными, при гамме 2.2 в тенях можно разобрать детали. Цвет же текстур и объектов остаётся одинаковым (хотя надо отметить, что в данном примере для цвета шариков была использована карта коррекции цвета под гамму VRayColor, но обычно люди работают в одной гамме, поэтому даже не обязательно знать где она находится, а текстуры корректируются автоматически). А вот при гамме 1.0 и команде Levels цвета "съехали". По чёрно-белому градиенту даже видно, как именно они "съехали": серая точка сдвинулась ближе к чёрному цвету.
Выставление гаммы.
В 3DStudio из верхнего меню выбираем Customize/Preferences. Сверху выбираем закладку Gamma and LUT. Для интересующихся LUT - сокращение от lookup table, примерный перевод "таблица соответствия", то есть таблица, где некоему входному значению соответствует некое выходное. Для гаммы мы "говорим": вот этому тёмному цвету соответсвует вот этот светлее, в результате тени на рендере не такие тёмные.
Галочки:
Gamma/LUT correction - включить корректировку гаммы. Включаем галочку.
Load Enable State with MAX files - если вы загружаете файл с другими настройками гаммы, то настройки сразу загрузятся. Например, вы работаете с гаммой 2.2, а открываете файл с гаммой 1.0. При включённой галочке настройки гаммы выставятся на 1.0. Если галочка отключена, то Max при открытии такого файла "спросит", что делать с гаммой. В принципе, если вас не испугает вопрос про другую гамму при открытии файла (теперь уже не должен бы испугать), то можно эту галочку не включать.
Gamma: 2.2 - собственно то, где выставляется гамма.
Affect Color Selectors - влиять на выбор цвета. При гамме 2.2 цвет получается "выцветшим". Если вы выбираете цвет, например, в редакторе материалов и хотите видеть, каким он будет при гамме 2.2, то включаете эту галочку. Теперь при выборе цвета серая точка смещается ближе к чёрному. С выключеной галочкой мы видим цвета в гамме 1.0, с включённой в гамме 2.2. Сравните окна выбора цвета с выключенной и с включённой галочкой (второй вариант явно светлее).
Если вы хотите выбирая цвет видеть его таким, каким он будет на рендере, то эту галочку надо включить. Лично я её включаю.
Affect Material Editor - влиять на редактор материалов. При отключённой галочке в редакторе "шарики" материалов показываются в гамме 1.0, то есть темнее, чем будут на рендере, при включённой - в гамме 2.2. Лично я её включаю.
Input Gamma: 2.2 - при загрузке текстур они автоматически будут преобразовываться в гамму 2.2. То есть на рендере мы будем видеть текстуры такими, какие они были бы в гамме 1.0.
Выставление гаммы в настройках VRay.
После выставления всех настроек в Preferences и нажимания кнопки ОК переходим в настройки VRay. Сверху выбираем закладку VRay. В свитке Frame buffer ставим галочку Enable built-in Frame Buffer. Теперь рендер будет производится в специальном окне VRay.
В свитке Color Mapping ставим Gamma: 2.2. Это значит, что VRay теперь работает в гамме 2.2 ("светлит" картинку). По сути, в настройках макса мы дали команду корректировать цвета и загружаемые текстуры под гамму 2.2, а в настройка VRay дали команду считать в этой гамме.
Антиалиасинг (сглаживание).
Если вы не знаете, что такое алиасинг и антиалиасинг, то можете посмотреть в интернете. Вкратце (цитата из википедии):
http://ru.wikipedia.org/wiki/Сглаживание
----
Основной принцип сглаживания — использование возможностей устройства вывода для показа оттенков цвета, которым нарисована кривая. В этом случае пикселы, соседние с граничным пикселом изображения, принимают промежуточное значение между цветом изображения и цветом фона, создавая градиент и размывая границу.
----
В общем можно сказать, что антиалиасинг - это то, как сглаживаются пикселы на границах контрастных цветов. Даже с настройками по умолчанию в VRay сглаживание краёв есть. Но есть дополнительная обработка финальной картинки, которая называется Antialiasing Filter.
В настройках VRay фильтр антиалиасинга выставляется в закладке VRay в свитке Image Sampler (Antialiasing). Можно поставить галочку On и выбрать из выпадающего меню возможные варианты. По умолчанию фильтр антиалиасинга включён и выбран пункт Area.
Теперь посмотрим разницу при увеличении. Я взял варианты: отключённый фильтр антиалиасинга, Area (по умолчанию), Catmull-Rom и Mitchell-Netravali. Конечно, в некоторых случаях разницу реально можно увидеть, только поставив картинки как слои в Photoshop и включая/отключая их. Но всё равно присмотримся.
Отключённый фильтр антиалиасинга и Area. На Area картинка как будто немного размыта, это заметнее на контрастных краях. В Photoshop похожего эффекта можно добиться, применив фильтр размытия по Гауссу с радиусом около 0.2 пиксела. То есть значения соседних пикселов чуть-чуть "усредняются".
Catmull-Rom и Mitchell-Netravali действуют по-другому. Вдоль тёмной границы добавляется светлая полоска, вдоль светлой - тёмная (в Mitchell-Netravali больше настроек, которые позволяют менять результат от почти незаметного до такого, что Catmull-Rom нервно курит в сторонке, например при Ringing=2 и Blur=0 эффект псевдо-резкости намного превышает тот же эффект при Catmull-Rom). В результате картинка выглядит более резкой, хотя это просто обман зрения. На самом деле это полезно, но с моей точки зрения проще отрендерить картинку без фильтра антиалиасинга, а потом в Photoshop применить фильтр Unsharp Mask или Smart Sharpen (в Photoshop верхнее меню Filter/Sharpen), которые делают то же самое, но с большим количеством настроек а, главное, без необходимости пересчитывать картинку, если что-то не понравилось.
Image Sampler.
Находится в закладке VRay в свитке Image Sampler (Antialiasing), по умолчанию выбран Adaptive Subdivision (адаптивное разбиение). Два других варианта Fixed и Adaptive DMC. Настройки Image Sampler Расположены в отдельном свитке. При этом если изменить Adaptive Subdivision например на Adaptive DMC, то название свитка с настройками изменится аналогично.
В сильно упрощённом виде: чтобы рассчитать цвет одного пиксела, компьютер рассчитывает, какого цвета объект находится на месте этого пиксела. Но, допустим, на месте одного пиксела находятся два объекта разного цвета. Тогда для реалистичности надо рассчитать два цвета, а результирующим цветом будет смешение этих двух. А если ещё больше цветов попадут на один пиксел? Для решения этого вопроса используется метод Image Sampler. Например, фиксированный метод (Fixed) разбивает каждый пиксел на заданное количество частей, считает цвет в каждой из них и результирующий цвет - среднее аримфетическое этих цветов. Adaptive Subdivision и Adaptive DMC - так называемые адаптивные сэмплеры. То есть если на пиксел приходится большая одноцветная поверхность, то они не будут разбивать пиксел на много мелких частей, а если встретят мелкие детали, то будут. В этом они отличаются от Fixed, который разбивает пикселы на заданное количество частей независимо от того, какие объекты туда попадают.
В общем и целом, если у вас в сцене есть много мелких деталей и(или) эффекты размытости такие как размытые отражения (reflection glossiness) или глубина резкости, то лучше выбирать Adaptive DMC. Кроме того, он требует меньше оперативной памяти. Обычно для интерьеров он предпочтительнее, потому что размытые отражения на материалах мебели или паркета - обычная вещь.
Чтобы лучше понять, как работает Image Sampler, возьмём картинку с большим количеством мелких деталей (но пока что без отражений). Картинка посчитана Adaptive DMC с настройками по умолчанию.
Посчитаем ту же картинку с Adaptive Subdivision также с настройками по умолчанию (то есть так, как настройки выставлены, если просто поменять рендер на VRay).
Разница в скорости ощутимая: 27 секунд против 18, поэтому рассмотрим, почему второй метод оказался почти в полтора раза быстрее.
Разница именно в том, что у нас исчезли мелкие детали. Но не совсем правильно говорить, что сэмплер хуже, просто у него есть настройки, которые можно менять. Посмотрим на настройки Adaptive Image Sampler в свитке Adaptive Subdivision Image Sampler. Там есть параметры Min Rate и Max Rate, которые по умолчанию установлены -1 и 2, увеличивая эти значения, мы улучшаем качество мелких деталей. Чем больше цифры, тем лучше качество. При значениях Min rate:0 и Max rate:3 мы получаем вполне сопоставимое с Adaptive DMC качество. Но и время рендера получается практически таким же.
Кроме этого надо учитывать ещё один момент - если рендерить картинку не 640*480, как в этом примере, а в большом размере, то и мелких деталей будет "пропадать" меньше, потому что на большом формате они станут занимать больше пикселов.
 
 У Adaptive DMC Sampler тоже есть настройки. Только вместо Min rate и Max rate качеством управляют Min subdivs. и Max subdivs. По умолчанию выставлены значения 1 и 4.
Цифры 1 и 4 неплохо подходят для рендера. Эти числа в квадрате - значения, на сколько частей будет разбиваться пиксел. То есть минимум - это 1 в квадрате=1 (пиксел не разбивается), а максимум - это 4 в квадрате =16 (пиксел разбивается на 16 частей, рассчитывается яркость каждой части, потом высчитывается среднее значение). Хотя для более качественного рендера вторую цифру можно увеличить и не обязательно, что это сильно скажется на скорости. Некоторые ставят там большое значение, иногда до 100, и на скорость это обычно не влияет, потому что очень мала вероятность того, что попадётся пиксел, который придётся разбить на 10000 кусочков, но тогда просто непонятно, зачем такое нужно. Даже поставив 10 в max.subdivs. мы получим максимальное разбиение пиксела на 100 частей. Представьте, то маленький пиксел разбит на 100 частей и в каждой части считается яркость. Насколько замедлится скорость рендера и увидим ли мы большую разницу между разбиением пиксела на 100 частей и на 16?
А вот если вы хотите увеличить скорость рендера, то вторую цифру можно уменьшить. Это может пригодиться например, пока вы настраиваете свет в сцене и хотите быстрее видеть результат. Не надо также думать, что увеличение этих цифр, особенно первой, много даст (кроме увеличения времени рендера). Зачастую результат можно будет реально увидеть, только если сравнить две картинки.
Sub-pixel Mapping и Clamp Output.
Эти два параметра находятся настройках в закладке VRay в свитке Color Mapping.
Некоторые их всё время включают, другие, наоборот, всё время выключают. Чаще всего две этих галочки рекомендуют включать, если у вас на рендере появляются отдельные "засвеченные" пикселы. Но неплохо бы узнать, что же делают эти галочки. Цвет картинки при расчёте не просто варьируется от чёрного до белого. Например, лампочки "белее", чем просто "белый цвет" (поэтому от них и отражение сильнее). Представим это так: чёрный цвет:0, белый цвет:1. Соответственно, серый будет 0.5, и вообще градации цвета идут от 0 до 1. Светящиеся объекты имеют яркость больше 1. На рендере они будут показываться белым, но "внутри" компьютер будет знать, что они ярче.
Простой пример - небо. Компьютер "знает", что небо синее, но его яркость больше 1 и на рендере небо получается белым. И есть под этим небом объект со слабо отражающим материалом. Компьютер берёт цвет неба, ослабляет его для отражения и оказывается, что в отражении цвет неба уже меньше 1 и в отражении видно, что небо синее.
Clamp Output "срезает" в итоговом изображении на рендере цвета ярче заданного уровня (по умолчанию 1.0 - цифра справа от Clamp Output под названием Clamp Level). Если просто поставить галочку Clamp Output, то разницы особо не видно. Но, чтобы понять, что же это такое, можно уменьшить Clamp Level. Например, поставив Clamp Level 0.5, мы на финальном рендере "срежем" все цвета ярче серого.
(Примечание: почему плоскость, на которой стоит чайник, получилась пятнистой и как от этого избавляться, будет рассмотрено в разделе про отражённый свет Indirect Illumination)
Хотя пока что ещё неясно, зачем нам нужны такие эффекты. Тем более, что по умолчанию Clamp Level стоит 1.0, то есть он "срезает" любой засвет до белого цвета, но засветы на рендере и так показываются белым.
Сначала надо разобраться, что же делает вторая интересующая нас галочка Sub-pixel Mapping.
Как мы знаем (или подразумевается, что мы знаем), при расчёте цвета пиксела он разбивается на более мелкие части. Представим себе, что пиксел разбили на 4 части, посчитали цвет в каждой из них, а потом показали усреднённый цвет. Но мы работаем в гамме 2.2, поэтому к итоговому рассчитанному пикселу применили цветокоррекцию под гамму 2.2. Теперь включаем галочку Sub-pixel Mapping. Пиксел так же разбивается на 4 части, считается цвет в каждой из них, после чего к каждому посчитанному кусочку применяется гамма 2.2, и только после этого считается усреднённый цвет.
То есть без галочки Sub-pixel Mapping цветокоррекция применяется к итоговому пикселу, а при включённой галочке цветокоррекция применяется к каждому "кусочку" пиксела, и только потом считается итоговый цвет.
Теперь, когда вероятный читатель уже начал ломать свой мозг, пытаясь понять, как же это применять, время показать на практике, как оно работает. Если у нас вообще нет цветокоррекции, то есть стоит гамма 1.0 и в свитке Color Mapping выбран Linear Multiply с параметрами Multiplier по 1, то разницы практически не будет.
В самом деле, какая разница, в каком порядке применять цветокоррекцию, если цветокоррекции нет?
Поэтому вместе с галочкой Sub-pixel Mapping поставим ещё и галочку Clamp Output. Многие знают, что если на рендере появляются отдельные "засвеченные" пикселы, то две эти галочки помогают. Но вот почему? Предположим, у нас есть пиксел, разбитый на 4 части. При расчёте в трёх частях яркость 0.5 (серый цвет), а в четвёртой 2.5 (например, отражение лампочки).
С отключённой галочкой Sub-pixel Mapping компьютер "считает": посчитать все значения, потом сложить их, разделить на количество частей: (0.5+0.5+0.5+2.5)/4=1 и применить Clamp Output: срезать весь цвет ярче 1. Но цвет и так 1, так что итоговым цветом получаем 1.0 (белый).
Теперь включаем галочку Sub-pixel Mapping. Компьютер посчитал все четыре значения и ТУТ ЖЕ применил к ним Clamp Output. В результате значение 2.5 "срезалось" до 1.
И уже после этого компьютер считает итоговый цвет: складывает все значения и делит на количество частей: (0.5+0.5+0.5+1.0)/4=0.625 То есть получаем светло-серый цвет.
На первый взгляд, из этого примера получается, что реалистичному цвету наступает капут: разница в яркости почти в четверть от нужного - это много. Но не надо забывать, что это просто пример. В реальности галочки Sub-pixel Mapping и Clamp Output чаще всего приглушают отражения, делают их более сглаженными. При этом сам по себе Clamp Output практически не влияет на результат, а вот в сочетании с Sub-pixel Mapping он "глушит" засвеченные пикселы со страшной силой (и теперь мы знаем, почему так происходит).
Собственно, минусы установки этих двух галочек вытекают из их плюсов: они "глушат" яркие отражения там, где отражения должны быть. Но вот вопрос что нам важнее - немного больше реализма или немного больше "красивости" решается отдельно для каждого случая. В общем-то, если мы хотим больше реализма, но нам не нравятся отдельные "неправильные" засветы, то вместо этих галочек можно просто поставить повыше качество в Adaptive DMC. То есть представим себе, что пиксел в нашем примере бьётся не на 4 части, а, например, на 64. В этом случае у нас невозможен вариант когда у рядом стоящих частей такая большая разница в яркости. Конечно, тогда возникает вопрос, готовы ли мы к увеличению времени рендера в несколько раз. Если изначальная картинка считается 5 минут, то полчаса за более реалистичные отражения - это немного. А вот если у нас интерьер, которые считается час?
Для примера сравним три картинки: первая без коррекции, вторая с двумя галочками (Sub-pixel Mapping и Clamp Output), третья без коррекции, но в настройках Adaptive DMC оба min и мах subdivs поставлены по 10 (каждый пиксел независимо от того, какие объекты в него попали, разбивается на 100 частей).
Как видим, в первом случае есть отдельные яркие пикселы, во втором случае уменьшаются отражения на некоторых кромках, а в третьем случае всё красиво, но считает раз в десять дольше. И, прежде чем делать окончательные выводы, вспомним, что рассматривать картинку при большом увеличении - это хорошо теоретически, но работу будут принимать глядя на картинку целиком.
Две картинки: первая с выключенными галочками Sub-pixel Mapping и Clamp Output, вторая с включёнными:
Если присмотреться, то видно, что на второй картинке исчезли некоторые засвеченные пикселы и отражения стали чуть темнее, но я бы не сказал, что общий результат сильно изменился. Лично я обычно включаю обе галочки. Пусть отражения чуть менее яркие, но зато и засвеченных пикселов нет.
Indirect Illumination (Ненаправленное овещение).
В реальной жизни свет отражается и переотражается от объектов. Посветив в тёмной комнате фонариком в потолок мы увидим всю комнату в отражёном от потолка свете. Если на светлой поверхности лежит освещённый предмет, то от поверхности на предмет попадают рефлексы, подсвечивая объект снизу. И так далее, и так далее, поэтому для достижения реализма в 3D без расчёта отражённого света не обойтись.
В VRay отражённый свет настраивается в закладке Indirect Illumination. В свитке Indirect Illumination ставим галочку On (включили расчёт отражённого света).
Дальше в свитке Irradiance Map ставим галочки Show Calc Phase и Show Direct Light. Эти галочки не влияют на конечный результат, но в процессе расчёта показывается примерная яркость финальной картинки. Кроме того, пока мы настраиваем яркость света, в выпадающем меню Current Preset можно поменять качество с High (высокое) на Very Low (очень низкое).
Итак возьмём сцену: за стеной стоит источник света, свет отражается от другой стены и освещает объект в тени.
Обратите внимание, что при низком качестве (Very Low) отражённый свет считается не лучшим образом: под стенкой "пробивается" свет и объект как будто висит в воздухе.
С другой стороны, при высоком качестве (High), считает дольше, тени от объектов улучшаются, и стена не висит в воздухе, но появляется "пятнистость".
Попробуем для начала понять, как же работает расчёт отражённого света. Из камеры строятся лучи к объектам сцены. Итак, луч выходит из камеры и идёт, например, в левый нижний угол картинки, пока не попадёт в объект. Там, где он попал в объект, строится полусфера, из которой во все стороны также строятся лучи, которые "собирают информацию" об окружающих объектах (В свитке Indirect Illumination количество этих лучей задаётся параметром HSph. Subdivs., по умолчанию равен 50, точности ради надо отметить, что 50 - это не количество лучей, количество лучей пропорционально квадрату этого значения и может уменьшаться в зависимости от параметров DMC sampler). Итак, лучи разошлись и "принесли" информацию от окружающих объектов: от света, от цветных рефлексов и т.д. Эта информация привязывается к тому "кусочку" (сэмплу) объекта, от которого разошлись эти вторичные лучи (а параметры High или Very Low отвечают за количество "кусочков"-сэмплов).
Например, в некоем "кусочке" на поверхности объекта "записано", что он освещён зелёным светом. А в соседнем "кусочке" "записано", что он освещён красным светом. Значит при расчёте финальной картинки компьютер будет делать в этом месте плавный переход от зелёного к красному (где-то на границе этих "кусочков" цвет смешается и станет жёлтым). Но если брать только непосредственных соседей, велика вероятность появления "пятнистости", поэтому введён ещё один параметр Interp. Samples (прямо под HSph. Subdivs), по умолчанию 20. При расчёте освещения сэмпла учитывается освещение большего количества окружающих "кусочков"-сэмплов (не только непосредственных соседей, но и тех, которые расположены дальше) и освещение "усредняется" для уменьшения "пятнистости". Чем больше параметр Interp. Samples, тем больше "соседей" будет учитываться при расчёте освещения сэмпла.
Возвратимся немного назад к чайнику на пятнистой поверхности. В настройках отражённого света в выпадающем меню Current Preset было выбрано Low (низкое качество). Current Preset определяет количество "кусочков"-сэмплов поверхности, к которым привязана информация о свете (при низком качестве их не очень много, хотя нельзя сказать, что и слишком мало). То есть по поверхности "разбросаны" "кусочки"-сэмплы, в которых информация об освещённости сильно различается. В одном написано, что он светлый, в другом, что он тёмный. При попытке рассчитать плавные переходы освещёности мы и получаем пятнистость.
Количество "кусочков" можно посмотреть, включив в свитке Indirect Illumination галочку Show Samples.
Для уменьшения пятнистости можно поднять параметр Interp. Samples, например, до 50. Это количество соседних "кусочков"-сэмплов, которые участвуют в расчёте освещения сэмпла. Повысив их количество, мы как бы "размываем" освещение.
Хотя пятнистость и не убралась полностью, но мы значительно её уменьшили. Это один из возможных вариантов. А теперь посмотрим на количество "кусочков" в сцене со светом и стенами. Включим галочку Show Samples при настройках Very Low и High.
По идее на больших поверхностях нам не надо много сэмплов, а вот при построении теней от отражённого света они нужны. Мы знаем, что при расчёте освещённости сэмпла учитываются соседние сэмплы. При качестве Very Low количество сэмплов слишком маленькое и при попытке посчитать свет на поверхности часть ярких сэмплов "пробивается" с освещённой стороны стены. При качестве High даётся слишком много сэмплов, что вызывает пятнистость на ровных поверхностях (что, конечно, можно решить, повышая параметр Interp. Samples, но он сглаживает всё освещение, включая тени от объектов, плюс скорость рендера замедляется). Поэтому в Current Preset ставим Custom (ручной режим).
Min Rate и Max Rate определяют насколько "густо" распределены сэмплы (точнее, это их максимальный и минимальный размеры). Чем выше значения, тем больше сэмплов. При значении 0 разрешение расчёта отражённого света равно разрешению изображения. -1 означает, что разрешение расчёта отражённого света равно половине разрешения изображения и т.д. Соответственно при значении 1 разрешение расчёта отражённого света в два раза больше разрешения изображения.
Если у нас есть большая ровная поверхность, то на ней создаётся один большой "кусок"-сэмпл с информацией об освещении. Min Rate определяет насколько большим будет этот "кусок" (чем меньше значение, тем он больше). А на мелких деталях, или в стыках между стеной и полом будет создаваться больше сэмплов и Max Rate - их размер (чем больше значение, тем мельче сэмплы). Отрендерим сцену с настройками Min и Max Samples -5 и -1 (обратите внимание, что пороговые значения Clr thresh, Nrm.thresh. и Dist.thresh. тоже могут изменяться, но мы пока что не трогаем их, оставив такими же, как при качестве Very Low).
Картинка стала лучше, чем при Very Low, и скорость рендера всё ещё гораздо быстрее, чем на настройке High, но стенка снова "висит" в воздухе. В общем-то, уже понятно, что при значении max samples:-1 сэмплы получаются достаточно небольшого размера, поэтому нам нужно работать не с размерами max samples, а повысить количество сэмплов. При этом повысить их не везде, а только там, где сэмплов не хватает. В свитке Irradiance Map есть группа из трёх параметров: Clr thresh, Nrm.thresh. и Dist.thresh.
Color threshold (Clr thresh) - чем меньше этот параметр, тем больше сэмплов будет создаваться на участках с перепадами яркости (например, на границе света и тени).
Normal threshold (Nrm thresh) - чем меньше этот параметр, тем больше сэмплов будет создаваться на участках с изгибами поверхностей и мелкими деталями одного объекта.
Distance threshold (Dist thresh) - чем больше этот параметр, тем больше сэмплов добавится в тех местах, где объекты находятся близко друг к другу.
Подумаем, что можно сделать с нашей "летающей" стеной. С другой стороны от стены всё гораздо ярче и сэмплы "пролезают" оттуда. Точнее, с той стороны стены сэмплы яркие, и при значении Interp. Samples 20 они "смешиваются" с сэмплами с тёмной стороны. Можно, конечно, уменьшить Interp. Samples, тогда стенка не будет "летать", но при этом появятся пятна из-за того, что соседние сэмплы недостаточно смешиваются.
Поэтому мы попробуем путь увеличения количества сэмплов на местах с разной яркостью (Color threshold). Уменьшим значение Clr thresh. с 0.4 до 0.3.
Сравните, насколько повысилось количество сэмплов на границе света и тени по сравнению с предыдущим вариантом (особенно заметно на тени от объекта).
Рассмотрим ещё один пример.
Сцена освещена отражённым светом. То есть там нет лампочек, направленных на объект, а есть, например, лампочки, направленные на стену, отражаясь от которой, свет освещает объекты (на самом деле в данной сцене на окружении стоит карта HDRI, но принцип действия в данном случае практически такой же). Включаем отражённый свет (галочка On в свитке Indirect Illumination), в свитке Irradiance Map в выпадающем меню Current Preset ставим Very Low.
Появляются уже знакомые нам "висящие в воздухе" объекты. Включаем галочку Show Samples и смотрим на распределение сэмплов.
На границе света и тени их явно мало. Попробуем поставить Current Preset не Very Low (очень низкий), а Medium (средний).
Объекты уже не "летают", но появилась "грязь". Попробуем понять, откуда берётся эта "грязь". Из камеры вылетает луч, встречается с каким-то объектом, после чего из этого места разлетаются много новых лучей, которые "приносят" информацию о яркости окружающих объектов. Теперь представим себе, что окружение у нас со сложным освещением, где есть маленькие очень яркие и большие тёмные области. В сильно упрощённом виде: у одного сэмпла лучи попадут на несколько тёмных областей и на яркий блик и останется информация, что освещение есть, а у другого лучи попадут только по тёмным областям и останется информация, что освещения нет. То есть на соседних сэмплах у нас будет разная информация о яркости. Компьютер попытается построить плавные переходы между сэмплами и на картинке будет "пятнистость".
И это ещё неплохой вариант, потому что отражённый свет с разных сторон может быть разного цвета. Например, в одном сэмпле больше лучей попадёт на области с бликами красного цвета, а у другого на области с зелёными бликами. Тогда у соседних сэмплов не только яркость разная будет, но и цвет может отличаться.
Как мы знаем, можно поднять параметр Interp. Samples, чтобы яркость соседних сэмплов сильнее усреднялась, но тогда у нас будут пропадать мелкие детали (и время рендера увеличится). Можно увеличить параметр HSph. Subdivs., который влияет на количество лучей, исходящих из сэмпла для сбора окружающей информации. Если из сэмпла будет исходить больше лучей, то они принесут более точную информацию (правда, и время рендера тоже увеличится). Попробуем сравнить две картинки. На одной HSph. Subdivs равен 50 по умолчанию, на второй HSph. Subdivs равен 100.
Количество и размеры сэмплов абсолютно одинаковые, просто при увеличенном параметре HSph. Subdivs в них более точная информация об освещении.
Впрочем, если мы посмотрим на распределение сэмплов при настройке Medium, то мы увидим, что на плоскости их очень много, явный избыток. Нам нужно, чтобы на больших ровных поверхностях сэмплов было мало, а на местах с разной яркостью много. За размеры сэмплов отвечают параметры Min Rate и Max Rate. Поставим обратно настройку Very Low, после чего поменяем её на Custom, чтобы иметь возможность менять цифры. Поставим Min Rate:-6 (максимальный размер сэмпла стал больше) и Max Rate:-1 (минимальный размер сэмпла стал меньше).
По сравнению с Very Low объекты уже не "летают", плоскость вдалеке уже не пятнистая. Теперь повысим точность на границе света и теней. Параметр Clr.thresh. меняем с 0.4 на 0.3 (он повышает количество сэмплов в местах с различной яркостью, например, на границе света и тени).
Сэмплов стало больше, тени от объектов просчитываются лучше, но опять "вылезла" пятнистость. Мы можем использовать либо повышение параметра Interp. Samples, чтобы "размыть" освещённость (это быстрее), либо повысить HSph. Subdivs, чтобы улучшить правильность просчёта (это дольше, но реалистичнее). Итак, две картинки, на одной HSph. Subdivs:50 Interp. Samples:50, на второй HSph. Subdivs:80 Interp. Samples:20.
В общем, результаты сопоставимые, во втором случае тени от объектов немного чётче, что логично, потому что в первом варианте именно освещённость "размывается".
DMC Sampler.
Настройки DMC Sampler находятся в закладке Settings в свитке DMC Sampler.
Во-первых, попробуем разобраться, что же это такое, потому что эти параметры влияют на финальную картинку. Например, VRay рассчитал количество сэмплов отражённого света для объектов в сцене. Но некоторые объекты близко, а другие, наоборот, далеко. Уменьшив количество сэмплов для дальних объектов мы не сильно потеряем в качестве, но сильно выиграем в скорости рендера.
Другой вариант - разная яркость сэмплов. Например, рядом расположены несколько сэмплов с разной яркостью (граница света и тени). В этом месте явно нужно много сэмплов, а вот если рядом много тёмных сэмплов, то в этом месте их количество можно убавить.
Таких параметров "важности сэмплов для финальной картинки" может приниматься во внимание очень много. Например, количество лучей, "приносящих" информацию о яркости сэмплов (параметр HSph.subdivs.) тоже может уменьшаться в зависимости от того, считать ли этот сэмпл "важным" или нет.
Параметры в свитке DMC Sampler отвечают как раз за уменьшение количества сэмплов на картинке там, где их количество не очень важно.
Параметр Adaptive Amount отвечает за степень "адаптации". 0 - адаптации нет (у дальних объектов столько же сэмплов сколько у ближних и т.д.). 1 - максимальная адаптация. Чем меньше, тем выше качество, но и время рендера растёт, иногда в разы. По умолчанию установлено значение 0.85 - обычно вполне подходящее по соотношению скорость/качество.
Посмотрим на остальные параметры в этом свитке.
Допустим, берётся некий "кусок" сцены. Сначала VRay выбирает в разных частях этого куска несколько сэмплов и смотрит яркость этих сэмплов (за то, сколько сэмплов брать сначала, отвечает параметр Min Samples, по умолчанию 8). Если полученные сэмплы сильно различаются по яркости (размер разницы определяется параметром Noise threshold, разбирается ниже), то они остаются такими, какие есть, если сэмплы по яркости отличаются мало, то они объединяются в один большой сэмпл.
Посмотрим на примерах. Возьмём картинку.
Посмотрим как влияет на результат параметр Adaptive Amount. Возьмём картинку с не до конца настроенным отражённым светом (Indirect Illumination). Min Rate:-6 Max Rate:-1, остальные параметры как для настройки Very Low.
Неплохо, конечно, но время рендера растёт в разы. В данном случае было бы проще подправить настройки в Indirect Illumination так, как мы это уже делали. А если мы поставим нормальные параметры в Indirect Illumination, то разница от разного Adaptive Amount будет заметна только по времени рендера. Конечно, при максимальной адаптации равной 1, "глюки" всё равно "полезут", но нас никто не заставляет ставить значение выше стандартного 0.85. Вот, например, та же картинка с Clr.thresh. уменьшенным до 0.3, и HSph.subdivs. увеличенными до 80. В этом случае Adaptive Amount практически не влияет на результат:
Нельзя сказать, что при значениях 0.0 и 0.85 разница принципиальная (кроме времени рендера, которое больше в разы). При 0.85 немного темнее отражения и чуть различаются тени от объектов (но и это видно только если в Photoshop поставить картинки как два слоя и включать/выключать верхний слой).
Noise Threshold - пороговое значение шума между сэмплами на изображении. Рассчитывается яркость нескольких соседних сэмплов, после чего сравнивается между собой. Если разница в яркости больше, чем Noise Threshold, то сэмплы остаются такими, какие есть, если разница в яркости между сэмплами небольшая, то они объединяются в один большой сэмпл. Чем меньше параметр, тем меньше шум между сэмплами. Две картинки с разным Noise Threshold: на первой картинке значение по умолчанию 0.01, на второй 0.1 (в 10 раз больше).
Хотя в некоторых случаях этот параметр можно и повысить. Например, если мы рендерим тестовую сцену и хотим оценить общую яркость. Или если у нас есть текстуры, которым не повредит, если они будут выглядеть "грязнее". На первой картинке Noise Threshold 0.01 (значение по умолчанию), на второй 0.1 (в 10 раз больше, скорость рендера быстрее в полтора раза).
Если все объекты с текстурой, а не одноцветные, то разница менее заметна. На первой картинке значение 0.01, на второй 0.1. Скорость рендера опять быстрее в полтора раза.
Secondary Bounces.
В свитке Indirect Illumination есть параметры Primary Bounces и Secondary Bounces.
Попытаемся понять, что же это такое. Представим себе, что у нас есть свет, который в тёмной комнате светит в потолок. От потолка он отражается в первый раз и освещает всю комнату. Это первичное отражение (Primary Bounces). Но отражённый свет в свою очередь отражается и что-то дополнительно освещает. Это вторичные отражения (Secondary Bounces). Естественно, такой свет слабее и в некоторых случаях заметен не очень сильно. Но, тем не менее, его качество также очень важно для реалистичности.
Есть разные режимы расчёта отражённого света. По умолчанию для Primary Bounces выбран Irradiance Map (все настройки размера сэмплов, Clr.Thresh. и HSph.subdivs мы делали как раз для Irradiance map), для Secondary Bounces выбран Brute Force.
Хотя чаще для Secondary используют не Brute Force, а Light Cache. Brute Force (грубая сила) - самый простой метод. Он корректно просчитывает все детали и не требует дополнительного расхода оперативной памяти. Но при большом количестве деталей (например, в интерьерах), он работает медленнее. У Light Cache тоже есть свои минусы (подробнее про преимущества и недостатки всех систем расчёта отражённого света можно прочитать в документации к VRay, там, например, написано, что Light Cache не адаптивен, то есть всегда будет считать определённое количество сэмплов или что он не очень хорошо считает Bump-карты материалов), но свои плюсы и минусы есть у всего. Light Cache выигрывает в скорости, и связка Irradiance Map+Light Cache считается самой лучшей по соотношению скорость/качество.
Посмотрим на примере, что такое вторичные отражения. Возьмём сцену, где свет светит внутрь объекта.
Источник света светит внутрь объекта и из объекта отражается на стену. Это первичное отражение. Далее свет от стены должен отразиться назад на вторую стену. Это вторичное отражение. Попробуем во вторичном отражении Secondary Bounces поставить None (то есть отключить совсем). Две картинки: есть вторичные отражения и их нет:
Поставим вторичные отражения (Secondary Bounces): Light Cache. Ниже появился свиток Light Cache с параметрами.
Посмотрим на настройки Light Cache. Для начала параметр Subdivs. Расчёт Light Cache похож на расчёт Irradiance Map: из камеры "вылетает" много лучей к объектам сцены. Количество "вылетевших" лучей - это значение Subdivs в квадрате. То есть если у нас стоит, например, 500, то лучей вылетит 500^2=25000. Иногда берут простой вариант - ставят количество subdivs равным длинной стороне картинки. То есть для 640*480 ставят 640. Скажу сразу, что идеального значения нет, работает только правило "чем больше, тем лучше". То есть если есть возможность оставить рендер считать на ночь, то можно поставить пару-тройку тысяч и идти спать. Но, поскольку мы хотим использовать Light Cache для выигрыша в скорости, надо посмотреть, что же означают настройки в нём.
Для наглядности поставим Light Cache на Primary Bounces, а вторичные отражения отключим совсем (None).
Результаты с параметром Subdivs 500 и 1000:
Свет и тени на итоговой картинке стали точнее, но и время рендера выросло. Рассмотрим ещё один параметр - размер сэмпла Sample Size. Если у нас в разделе Scale выбран режим Screen, то Sample Size означает какая часть размера изображения является одним сэмплом. Если стоит 1, то размер сэмпла равен размеру изображения (хотя, конечно, нет смысла ставить такой размер, но это полезно для понимания теории).
Поэтому общее правило - чем больше размер сэмпла, тем сглаженнее результат, чем меньше, тем больше шума, но и корректнее тени от мелких деталей. Картинки с Samples Size: 0.01, 0.02 и 0.04: Кроме этого, при Scale: Screen чем дальше от камеры сэмплы, тем они больше, чем ближе, тем меньше.
Как видим, при таком освещении сцены при значении Sample Size: 0.04 мы получаем более сглаженный результат, но падает чёткость света и теней, результат становится равномерно освещённым.
Режим Scale: World задаёт фиксированные размеры сэмплов для всей сцены. В режиме Screen сэмплы, расположенные ближе к камере, по размеру меньше дальних. В режиме World мы ставим Sample Size в единицах сцены. Если мы работаем в миллиметрах, то Sample Size тоже должен быть в миллиметрах и не слишком маленький. Две картинки: одна в режиме Screen, Sample Size: 0.02, вторая в режиме World, Sample Size: 5 (диаметр чайника 110 мм, размер сэмпла 5 мм)
Обратите внимание, что в первом случае дальние сэмплы увеличиваются (а рядом с камерой они гораздо меньшего размера), что даёт более сглаженный результат вдали, во втором случае все сэмплы одного размера и рядом с камерой их больше (зато их меньше на заднем плане). Хотя если вы делаете анимацию в режиме Fly-through (когда отражённый свет не просчитывается каждый раз, а использует рассчитанный заранее), то вариант World может оказаться лучше.
Галочки Store direct light и Show calc. phase по умолчанию включены.
Store direct light при расчёте считает также освещение от источников света в сцене и использует эту информацию для интерполяции освещения. В этом случае рендер идёт быстрее, хотя качество может немного ухудшится, но при наличии в сцене нескольких источников света прибавка в скорости рендера полностью оправдывается. Если же Light Cache используется для вторичных отражений света (Secondary Bounces), как мы и планируем сделать в будущем, то кроме увеличения времени рендера при отключении этой галочки разницу мы вряд ли заметим.
Show calc. phase не влияет на результат, но показывает процесс расчёта отражённого света.
Параметр Filter похож на Interp. Samples в Irradiance Map, а именно сколько соседних сэмплов будут "смешиваться" для получения результирующего освещения. Больше параметр - более сглаженное освещение (но и мелкие детали освещения страдают).
Pre-Filter - отличается от Filter тем, что усреднение яркости сэмплов происходит ДО рендера. В результате получается меньше шума. Сравним: отключённый pre-filter, Filter:10 и pre-filter:100 с отключённым Filter (None).
Под параметром Pre-Filter есть галочка Use light cache for glossy rays. Если у вас в сцене есть отражающие поверхности, то установка этой галочки может сильно повысить скорость. Как правило, для интерьеров, где есть мебель с отражающими материалами эту галочку надо включать.
Вернёмся к примеру с источником света, который светит внутрь объекта.
Меняем Primary Bounces на Irradiance map, а Secondary Bounces на Light cache. После чего открываем свиток Light cache и смотрим на настройки.
Поскольку Light cache рассчитывает вторичное отражение света, то его влияние будет заметно рядом с тёмной стенкой. Таким образом всё, что мы видим рядом с ярко освещённой стеной считается Irradiance map, а всё, что рядом с тёмной считается с Light cache. На самом деле для удобства настройки можно сначала отключить Secondary Bounces, чтобы настроить Irradiance map (чтобы объекты не "летали в воздухе" и т.д.):
А уже после этого включить Secondary Bounces. Иногда могут получаться световые "глюки", например, свет пробивается из-под стенки. В этом случае бесполезно увеличивать значения рядом с параметрами фильтров (фильтры просто размывают посчитанные сэмплы). Надо либо снижать параметры фильтров (потому что смешиваются соседние сэмплы, но тогда возрастёт шум), либо увеличивать Subdivs (тогда время рендера возрастает).
Сравним несколько вариантов. Параметры Subdivs:500, Sample Size: 0.02, Scale: Screen.
Разница между Filter:10 и Pre-filter:10 небольшая, с Pre-filter:10 немного меньше световой "глюк" на стенке в нижней части центрального объекта, но разница практически не видна. Далее мы видим, почему параметры фильтров не уменьшают "глюки" - при Pre-filter:100 световое пятно на стенке объекта просто "размылось". Помогло увеличение Subdivs, но ценой увеличения скорости рендера, так что люди начнут задумываться, что, может, стОит отрендерить с низким качеством, а потом в Photoshop пару раз тыкнуть инструментом "штамп".
И для сравнения вторичные отражения Secondary Bounces: Brute Force, рассчитанные с параметрами по умолчанию.
Ещё не надо забывать, что в данном примере освещение непростое: прямой свет отражается от внутренней части объекта и только потом освещает стену. Если бы свет светил прямо на стену, то бОльшая часть отражённого света рассчитывалась бы через первичное отражение Irradiance Map и "глюки" вторичного отражения были бы гораздо менее заметны.
Color Mapping часть 2.
Мы уже видели свиток Color Mapping когда мы ставили гамму и галочку sub-pixel mapping. Снова вернёмся к нему: сверху закладка VRay, свиток Color Mapping. В этом свитке есть выпадающее меню Type, по умолчанию там выбран Linear Multiplier.
В этом выпадающем меню можно выбрать тип корректировки яркости. Linear Multiplier - линейная яркость без корректировки. Выберем там, например, Exponential или HSV Exponential. Эти корректировки затемняют яркие блики на изображении. Две картинки: Linear Multiplier и Exponential.
Exponential затемняет яркие части, HSV Exponential затемняет, пытаясь оставить цвет (точнее, оттенок и насыщенность цвета). Иногда применяют Reinhard - это промежуточный вариант между Linear и Exponential (при его параметре Burn Value=1 картинка как в Linear, при 0 как в Exponential).
Например, у нас есть светящийся объект (с материалом VRayLight). Светится он ярко и зелёным светом. Такая яркость на рендере получается засвеченной. Если в режиме Linear он создаёт засветы вокруг себя, то Exponential или HSV Exponential приглушают эти засветы.
Как видим, HSV Exponential по сравнению с Exponential пытается сохранить оттенок цвета, но и "неоновую трубку" придётся дорабатывать в Photoshop, чтобы она более явно светилась.
Кроме того, в настройках прямо под выбором типа корректировки яркости есть параметры Dark Multiplier и Bright Multiplier, которые по умолчанию равны 1. Представим себе, что мы хотим сделать тёмные части картинки посветлее. Увеличиваем параметр Dark Multiplier. Если же мы хотим сделать тёмные части картинки ещё темнее, то Dark Multiplier надо уменьшить. Аналогично для светлых частей можно менять Bright Multiplier.
Однозначного выбора, какой режим применять нет. Я обычно применяю HSV Exponential, ничего в нём не меняя. Но перед этим я стараюсь настроить свет так, чтобы он хорошо выглядел даже в Linear. Тогда переключение на HSV Exponential немного подкорректирует яркие части вроде засветов вокруг ламп, но принципиально ничего не изменит.
Кроме того, если начать сильно крутить multiplier'ы, то при включённой галочке sub-pixel mapping эта корректировка будет применяться не ко всему пикселу, а к его частям и неизвестно, что получится в результате. Если же у вас и в Linear всё неплохо, то помимо уменьшения самых ярких засветов разница будет практически незаметна.
Ещё один пример. Возьмём сцену, которая должна имитировать интерьер.
В окно светит направленный источник света, имитирующий солнце. Включаем Frame Buffer, ставим в Color Mapping гамму 2.2, включаем отражённый свет: в Indirect Illumination ставим галочку On, в свитке Irradiance Map включаем галочки Show calc phase и Show direct light. Current Preset ставим Very Low. Смотрим на рендер.
Наблюдается небольшая пятнистость и тени на стыках стены и потолка прорисованы не очень хорошо. Значит, надо увеличить количество сэмплов на стыках. Плюс к этому в данной сцене есть большие одноцветные участки, поэтому можно увеличить размер сэмплов. Распределение сэмплов с настройкой Very Low выглядит так:
Меняем размеры сэмплов: Min Rate уменьшаем, я поставил -6 (это увеличивает максимальный размер сэмпла), Max Rate: 0 (уменьшил минимальный размер). На самом деле, если некоторая "грязь" на изображении не смущает, а отрендерить хочется побыстрее, то Max Rate можно ставить и меньше: -1 или -2.
Теперь надо добавить больше сэмплов в углы и границы света и тени. Понижаем параметр Clr thresh. до 0.3 Кроме того, в данной сцене пол, стены и потолок сделаны из одного объекта, поэтому количество сэмплов можно увеличить, понизив параметр Nrm. thresh., поставим его 0.1.
Тень от объекта стала чётче, но "грязь" на стенах не убралась. Две картинки: Clr thresh.:0.4 Nrm. thresh.:0.3 (как было) и Clr thresh.:0.3 Nrm. thresh.:0.1:
Вывод один: слишком сильная адаптация количества сэмплов. Выбираем сверху закладку Settings и смотрим на настройки в свитке DMC Sampler. Для начала понижаем Noise Threshold с 0.01 до 0.005. То есть мы "говорим": проверять яркость соседних сэмплов и сливать их в один только если разница в яркости не больше 0.005. Две картинки: с Noise Threshold:0.01 и Noise Threshold:0.005:
Теперь включаем вторичные отражения Secondary Bounces: Light Cache. Пока что оставляем настройки по умолчанию и смотрим на рендер:
Поскольку мы знаем, что качество Light Cache управляется в основном параметром Subdivs. и он же максимально влияет на время рендера, попробуем понизить его с 1000 до 500. В данной сцене разница практически незаметна, потому что у нас мало мелких деталей. Добавим в сцену объектов, чтобы сравнить результаты и посмотреть, когда надо увеличивать Subdivs, а когда без этого можно обойтись. Отключим фильтр Filter:None, включим Pre-filter:10 (обычно Pre-filter работает побыстрее). Включаем галочку Use Light Cache for glossy rays (в этой сцене отражающих поверхностей нет, но как правило эту галочку включают).
Вообще обычно Pre-filter ставят больше, примерно по 50-150. Это даёт более "размытый" вторичный свет. Но в данном конкретном случае я поставил 10, потому что при значении больше 50 на тёмном месте под окном появляется "подсветка" из-за яркого пятна на полу (тёмные сэмплы под окном смешиваются с сэмплами яркого пятна). Хотя это бросается в глаза только если сравнивать картинки, а если бы у нас был экстерьер, то Pre-filter можно было бы спокойно ставить и 100. Или если бы у нас было больше сэмплов (параметр Subdivs.), то параметр Pre-filter тоже можно было бы повысить.
Для наглядности можно ещё понизить Subdivs. Две картинки: Subdivs: 300 и Subdivs:1000:
Рендер с меньшим числом Subdivs. идёт процентов на 20-30 быстрее. Конечно, если мы хотим картинку, близкую к идеалу, то можно "накрутить" настройки. Sample Size: 0.01 или 0.005 (размер сэмпла маленький), Subdivs: 2000-3000 (сэмплов много), Pre-filter: от 50 до 150 (если сэмплов много, то надо их сгладить). Но это настройки из серии "поставить и идти спать", а для среднего качества даже настройки по умолчанию неплохи.
Цвет отражений света: Saturation (Насыщенность цвета).
Теперь представим себе, что у нас в сцене много цветных объектов, которые дают цветные рефлексы. Например, у нас есть зелёный пол и белый потолок. На рендере рефлексы от пола сделают потолок зелёным.
Это реалистично с точки зрения фотографии, но с точки зрения человеческого восприятия не очень, потому что глаз человека очень хорошо "подстраивается" и видит, что цвет потолка белый, даже если на нём цветной рефлекс.
Поэтому в закладке Indirect Illumination в свитке Indirect Illumination уменьшим параметр Saturation (насыщенность). Точного рецепта нет, я обычно ставлю 0.4-0.5.
Две картинки: Одна с Saturation 1, вторая с Saturation 0.4
Если поставить Saturation:0, то цвет объектов совсем не будет влиять на цвет рефлексов, то есть рефлекс от зелёного пола на потолке не будет зелёным, но это уже будет совсем нереалистично.
И напоследок можно поставить в Color Mapping корректировку яркости HSV Exponential, чтобы уменьшить засветы.
Белое пятно на полу уже не засвечено, хотя картинка стала выглядеть немного "выцветшей". Впрочем, это уже работа Photoshop. Фильтр Unsharp Mask для резкости краёв, дубликат слоя и режим наложения Soft Light. Возможно, добавить свечение вокруг окна. До Photoshop и после:
Не надо забывать, что 3D без Photoshop'а - это как водка без закуски. Например, мы дополнительно можем отрендерить картинку, на которой видны углы (карта VRayDirt), а потом наложить её в Photoshop (поставить как слой и поменять режим наложения на Multiply).
В результате затемнятся углы между стенами и полом, стенами и потолком, а также в глубине полок. При таком подходе вторичные отражения света можно не рендерить с супер-крутыми настройками, а пойти другим путём, который требует немного больше знаний, но зато быстрее. Сравните результаты: полученная в 3D картинка и её обработка:
Примечания:
Примечание по настройкам Indirect Illumination. Настройки Current Preset, такие как Very Low и High сделаны для разрешения 640*480. При увеличении разрешения картинки параметры Min.Rate и Max.Rate можно уменьшать без потери качества отражённого света. Допустим у нас стояли Min.Rate:-5 и Max.Rate:0. При увеличении размера рендера в два раза (не 640*480, а 1280*960) можно спокойно уменьшать параметры на 1, то есть Min.Rate:-6 и Max.Rate:-1. При увеличении размера ещё в два раза - уменьшить ещё на 1 и т.д.
Ещё одно обязательное примечание для тех, кто, увидев столько "много буков", сразу перелистнул в конец, чтобы найти ответ на вопрос "так а чё ставить-то?". Однозначного ответа нет (иначе никто бы не "парился" с настройкой, а была бы одна кнопка "сделать красиво"). Но я приведу пример неких "усреднённых" настроек (подразумевается, что гамму 2.2 в настройках самого 3DStudio вы уже поставили). Ещё раз подчеркну, что данные настройки - это только моё личное мнение и для некоторых случаев могут не подойти.
Примечание к предыдущему примечанию. Частый вопрос: "а как бы сделать так, чтобы рендерилось побыстрее?" Ответ: как правило, ускорить процесс мы можем только ухудшив качество, а чтобы точно решить, чем же именно вы готовы пожертвовать, читайте данную заметку с самого начала. Плюс в Интернете можно найти очень много уроков и обсуждений.
Дополнение по настройкам Adaptive DMC.
Мы знаем что если в один пиксел попадают объекты разного цвета и(или) разной яркости, то пиксел бьётся на несколько частей. Но как компьютер решает, нужно ли делить пиксел на более мелкие части? По умолчанию это решается в двух свитках: Adaptive DMC Image Sampler (закладка VRay) и DMC Sampler (закладка Settings). DMC Sampler отвечает не только за сэмплы света, но и за пикселы.
Пиксел разбивается на несколько частей, после чего в каждой части рассчитывается цвет. Если разница в цвете частей пиксела больше, чем параметр Noise threshold, то пиксел разбивается на более мелкие части. И так до тех пор пока либо яркость перестанет отличаться, либо пока не будет достигнуто максимальное значение разбиения (Max subdivs, по умолчанию равен 4, значит максимально число разбиения - это 4 в квадрате =16).
По умолчанию включена галочка Use DMC sample threshold, то есть значение, при котором пиксел разбивается, берётся из свитка DMC Sampler. Но галочку можно отключить и поставить своё значение, которое в этом свитке называется Clr.thresh.
При уменьшении значения зернистость картинки понижается, при повышении увеличивается. Возьмём картинку.
Теперь отключим галочку Use DMC sample threshold и посмотрим, как параметр Clr.thresh. (Color threshold) влияет на зернистость (тень от источника даёт зернистость сама по себе, поэтому в параметрах источника света я увеличил параметр Subdivs. с 8 до 50, вообще 50 - это очень много, но зато тень от источника гарантированно не будет зернистой). Сравним увеличение картинки при значениях 0.001, 0.01 (по умолчанию), 0.05 и 0.1.
И теперь мы снова подходим к вопросу "ну и зачем нам это нужно?" Обычно не нужно. Если Noise Threshold стоит 0.01 или 0.005, то пикселы тоже делятся на достаточное количество частей. Но вопрос в том, что тут можно немного пожертвовать качеством ради скорости. Например, мы уменьшили Noise Threshold с 0.01 до 0.005, чтобы уменьшить "грязь" при отражённом освещении. Но при этом нас устраивал уровень зернистости изображения. Тогда можно отключить галочку Use DMC sample threshold и поставить Clr.threshold обратно на 0.01. Или даже увеличить, например до 0.02-0.03. Этот параметр довольно сильно влияет на скорость рендера.
Дополнение о Light Cache.
Если мы используем Light Cache, то следует избегать ситуации, когда в сцене есть много объектов совсем белого цвета (RGB:255,255,255) или очень близкого к нему, или даже цвета, где только один из компонентов RGB равен 255, потому что время рендера может сильно увеличиться (свет затухает недостаточно быстро). В сильно упрощённом виде: между двумя белыми стенками луч летает и летает и летает, а компьютер его считает и считает и считает. Если же цвет стенок не совсем белый, то луч "далеко не улетит".
Так что неплохая привычка даже белые потолки делать не (255,255,255), а например (245,245,245).