Sub-pixel Mapping и Clamp Output

Эти два параметра находятся настройках в закладке VRay в свитке Color Mapping.

Sub-pixel Mapping и Clamp Output - student2.ru

Некоторые их всё время включают, другие, наоборот, всё время выключают. Чаще всего две этих галочки рекомендуют включать, есть у вас на рендере появляются отдельные "засвеченные" пикселы. Но неплохо бы узнать, что же делают зти галочки. Цвет картинки при расчёте не просто варьируется от чёрного до белого. Например, лампочки "белее", чем просто "белый цвет" (поэтому от них и отражение сильнее). Представим это так: чёрный цвет: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, мы на финальном рендере "срежем" все цвета ярче серого.

Sub-pixel Mapping и Clamp Output - student2.ru

Sub-pixel Mapping и Clamp Output - student2.ru

(Примечание: почему плоскость, на которой стоит чайник, получилась пятнистой и как от этого избавляться, будет рассмотрено в разделе про отражённый свет 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 - student2.ru

В самом деле, какая разница, в каком порядке применять цветокоррекцию, если цветокоррекции нет?
Поэтому вместе с галочкой Sub-pixel Mapping поставим ещё и галочку Clamp Output. Многие знают, что если на рендере появляются отдельные "засвеченные" пикселы, то две эти галочки помогают. Но вот почему? Предположим, у нас есть пиксел, разбитый на 4 части. При расчёте в трёх частях яркость 0.5 (серый цвет), а в четвёртой 2.5 (например, отражение лампочки).

Sub-pixel Mapping и Clamp Output - student2.ru

С отключённой галочкой 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.

Sub-pixel Mapping и Clamp Output - student2.ru

И уже после этого компьютер считает итоговый цвет: складывает все значения и делит на количество частей: (0.5+0.5+0.5+1.0)/4=0.625 То есть получаем светло-серый цвет.
На первый взгляд, из этого примера получается, что реалистичному цвету наступает капут: разница в яркости почти в четверть от нужного - это много. Но не надо забывать, что это просто пример. В реальности галочки Sub-pixel Mapping и Clamp Output чаще всего приглушают отражения, делают их более сглаженными. При этом сам по себе Clamp Output практически не влияет на результат, а вот в сочетании с Sub-pixel Mapping он "глушит" засвеченные пикселы со страшной силой (и теперь мы знаем, почему так происходит).

Sub-pixel Mapping и Clamp Output - student2.ru

Собственно, минусы установки этих двух галочек вытекают из их плюсов: они "глушат" яркие отражения там, где отражения должны быть. Но вот вопрос что нам важнее - немного больше реализма или немного больше "красивости" решается отдельно для каждого случая. В общем-то, если мы хотим больше реализма, но нам не нравятся отдельные "неправильные" засветы, то вместо этих галочек можно просто поставить повыше качество в Adaptive DMC. То есть представим себе, что пиксел в нашем примере бьётся не на 4 части, а, например, на 64. В этом случае у нас невозможен вариант когда у рядом стоящих частей такая большая разница в яркости. Конечно, тогда возникает вопрос, готовы ли мы к увеличению времени рендера в несколько раз. Если изначальная картинка считается 5 минут, то полчаса за более реалистичные отражения - это немного. А вот если у нас интерьер, которые считается час?
Для примера сравним три картинки: первая без коррекции, вторая с двумя галочками (Sub-pixel Mapping и Clamp Output), третья без коррекции, но в настройках Adaptive DMC оба min и мах subdivs поставлены по 10 (каждый пиксел независимо от того, какие объекты в него попали, разбивается на 100 частей).

Sub-pixel Mapping и Clamp Output - student2.ru

Как видим, в первом случае есть отдельные яркие пикселы, во втором случае уменьшаются отражения на некоторых кромках, а в третьем случае всё красиво, но считает раз в десять дольше. И, прежде чем делать окончательные выводы, вспомним, что рассматривать картинку при большом увеличении - это хорошо теоретически, но работу будут принимать глядя на картинку целиком.
Две картинки: первая с выключенными галочками Sub-pixel Mapping и Clamp Output, вторая с включёнными:

Sub-pixel Mapping и Clamp Output - student2.ru

Sub-pixel Mapping и Clamp Output - student2.ru

Если присмотреться, то видно, что на второй картинке исчезли некоторые засвеченные пикселы и отражения стали чуть темнее, но я бы не сказал, что общий результат сильно изменился. Лично я обычно включаю обе галочки. Пусть отражения чуть менее яркие, но зато и засвеченных пикселов нет.

Наши рекомендации