разбираемся с рендер пассами

автор Андрей Клецков (111) - http://andklv.narod.ru


27 августа 2009

на изучение этого аспекта подвигло "сделайте темнее-светлее-розовее и т.д. вот это-то-сё"

есть такое полезное дело - как рендерить картину не полностью а разложить её на составляющие и потом крутить это дело в фотошопе или ещё где. для этого нужно разобраться какие пассы бывают вообще и как их можно комбинировать чтобы полусить исходное изображение. и потом понятно можно будет вмешиваться в любой компонент изображения и побправлять его по мере надобности.

так, блендер. он предлагает нам следующие пассы:

Combined - конечный результат рендера, в общем он не нужен. разве что для того чтобы правильно собрать картинку из пассов.

Z - з-буфер, показывает глубину, дальность точки от камеры, чем дальше тем темнее. без антиалиасинга.

Vec - векторы движения. у пиксела есть цвет который кодируется тремя цифрами по стотавляющим - rgb. естественно эти цифры можно использовать и по другому назначению. в данном случае ими кодируется вектор пикселя (куда эта точка двинется в следующем кадре)

Nor - нормали, точно так же закодированы вектора куда смотрит воерхность, можно потом отражения наложить и осветить

UV - текстурные координаты, опять закодированные в цвете. в 8мибитных изображениях можно закодировать только текстуру 256х256, вот почему важно работать не в 8ми битами а с 16 или лучше 32мя - гораздо точнее та информация которая закодирована.

IndexOb - каждому объекту можно назначить индекс, и в зависимости от индекса получатся разноцветные маски, по которым можно выбирать потом объекты

Col - цвет

Diff - тоже цвет, не совсем понял чем отличается от предыдущего

Spec - спекуляр - пасс со спекулярами

Shad - тени отдельно - нужно мультиплаить с diff пассом

AO - пасс амбиент окклюжина

Refl - отражения, нужно накладывать в режиме add

Refr - преломления - также в режиме add

вот минимальный набор пассов которые можно рулить. причём если только чуть-чуть подправить изображение то nor, uv, vec, z, IndexOb, combined не нужны. остаются 1 - color (diff), 2 - specular, 3 - shadow, 4 - ao (необязательно но не помешает, в других рендерерах заменяется на глобал иллюминатион), 5 - refl, 6 - refr. итого 6 обязательных пассов. осталось разобраться в каких режимах они собираются и какие ещё вариации с ними бывают.

 

враевские пассы (табличка из хелпа, некоторые каналы новые, которых нет в хелпе)


оригинальное изображение - отражение на зелёном шарике и спекуляры, ги и падающие тени

зелёные - маски, жёлтые - для спецэффектов

превьюшка название враевского пасса поддержка враевского материала поддержка стандартного материала фильтрация поддержка прозрачности английское описание описание

VRayAlpha

yes

yes

yes**

yes

Alpha transparency. прозрачность, для вставки задников
 

VRayAtmosphere

yes

yes

no**

yes

The atmospheric effects. атмосферные эффекты

VRayBackground

yes

yes

yes**

yes

The image background. задник - энвайронмент, для сборки изображения из кусков
 

VRayCaustics

yes

no*

yes**

yes

The caustics on the material. Only present when the Caustics option of V-Ray is enabled. This channel does not include GI caustics. каустика

VRayDiffuseFilter

yes

yes

yes**

yes

The pure diffuse surface color. Note that this is different from the standard 3ds Max Diffuse render element, which contains the diffuse surface lighting. основной цвет, плоский, просто цветовая составляющая картинки

VRayGlobalIllumination

yes

no*

yes**

yes

The diffuse surface global illumination. Only present if Global illumination is enabled. глобал иллюминатион, с диффузом

VRayLighting

yes

yes*

yes**

yes

The diffuse direct surface lighting. прямое освещение, для складывания с глобальным, получим тотал лайтинг
vray total lighting           полное освещение с цветом
 

VRayMtlID

yes

yes

no (always off)

no

The material ID of the object. материал айди, для масок
 

VRayMtlSelect

yes

no

yes

yes

This element allows you write the result of a V-Ray compatible material into a separate element. The material can be a top-level material or a sub-material of VRayMtlBlend. какой то один выбранный материал

VRayNormals

yes

yes

yes

no

The surface normals. нормали, для спецэффектов
 

VRayObjectID

yes

yes

no (always off)

no

The object gbuffer ID (set through the node's Properties dialog). обжект айди, для масок

VRayRawGlobalIllumination

yes

yes

yes**

yes

The raw diffuse global illumination (not multiplied by the diffuse surface color). Only present if Global illumination is enabled. глобальное освещение не умноженное на цвет диффуз

VRayRawLighting

yes

no

yes**

yes

The raw diffuse direct illumination before it's multiplied by the diffuse surface color. прямое освещение НЕ умноженное на диффуз (по-моему просто прямое освещение)

VRayRawReflection

yes

no

yes**

yes

The pure surface reflection before it's multiplied by the reflection filter color. отражение не умноженные на фильтр, для умножения на фильтр и таким образом для регулирования отражений
 

VRayRawRefraction

yes

no

yes**

yes

The pure surface refraction before it's multiplied by the refraction filter color. преломления не умноженные на фильтр

VRayRawShadow

yes

no

yes**

yes

The raw light that was blocked by other objects. тени, просто маска теней даже без прозрачности
raw total lighting           сложенные raw GI и raw lighting

VRayReflection

yes

yes

yes**

yes

The reflections on the surface. отражения

VRayReflectionFilter

yes

no

yes**

yes

The reflection filter (the color by which the raw reflections are multiplied to give the final surface reflection). This may be considered as an alpha channel for the reflections. фильтр - сила отражений, можно считать как альфа для отражений
 

VRayRefraction

yes

no

yes**

yes

The refractions on the surface. преломления
 

VRayRefractionFilter

yes

no

yes**

yes

The refraction filter (the color by which the raw refractions are multiplied to give the final surface refraction). This may be considered as an alpha channel for the refractions. фильтр - сила преломлений
 

VRayRenderID

yes

yes

no (always off)

no

The node render ID of the object that contributes most to the pixel value. каждый объект отдельно, для масок
 

VRaySelfIllumination

yes

yes

yes**

yes

The self-illumination of the surface. самосвечение, для эффектов

VRayShadow

yes

no

yes**

yes

The diffuse light that was blocked by other objects. тени, с альфой? для прямого композа
vray matte shadow           просто абрис теней

VRaySpecular

yes

yes

yes**

yes

The surface specular hilights. спекуляр

VRayUnclampedColor

yes

yes

yes**

yes

The unclamped image color. цвет в полном диапазоне, полезная вещь для руления выдержкой
 

VRayVelocity

yes

yes

yes

no

The surface velocity. This channel will not be generated if 3d motion blur is enabled. вектора скорости, для эффекта размытия движения
 

VRayWireColor

yes

yes

yes

yes

The wire color of the object as set in the 3ds Max scene. This can be used to generate masks for the objects based on their wire color. по цветам объектов в максе, для масок
 

VRayZDepth

yes

yes

yes

no

The z-depth of the surface. з-буффр, для эффектов тумана дофа, и т.д.

* для стандартных материалов VRayLighting element вклячает прямое и непрямое освещение и каустику, а VRayGlobalIllumination и VRayCaustics elements - чёрные. однако для всех материалов добавление, VRayLighting, VRayGlobalIllumination и VRayCaustics elements даёт полное освещение..
** подвергается ли пасс влиянию атмосферных эффектов типа тумана.

итого, будем разбираться какие комбинации из этой кучи каналов собираются. начнём с основной и попробуем вывести оптимальную и определить какие каналы нужны для сбора какртинки, руления отражений преломлений и изменения цвета материалов. некоторые каналы совершенно избыточные так ка получаются путём сложения двух других, какой в них смысл - не знаю. также не понял разницы между RAW и аналогичным каналом не raw, выглядят вроде бы идентично.

для сборки нужны:

1 - задник (не интересует)

2 - альфа, чтобы задник собрать, хотя теоретически должна быть в самом заднике (не интересует)

3 - диффуз фильтр - цветовая составляющая - это цвета материалов, всё остальное - это освещение

4 - прямое освещение (raw lighting, просто Lighting не годится так как там уже диффуз есть)

5 - raw global illumination

6 - отражения и маска для отражений - reflection filter

7 - спекуляр

8 - по хорошему ещё рефракт и его фильтр нужны для упрощения задачи ограничимся только рефлектом, тут теоретически аналогично рефлекту всё

вот что мне удалось собрать. результат не 1 в 1 с оригиналом. наложенный мультиплаем диффуз убивает контраст освещения

 

попробуем-ка собрать в 32битной среде. может это поможет..


12 сентября 2009

берём ньюк и пробуем собирать из exr. в exr гораздо шире динамический диапазон, что если даже собрать там картинку по алгоритму фотошопа, результат будет другой. но там есть и более интересные варианты. поговаривают что собрать враевские пассы один в один можно только в ньюке, подписываться не буду, передал что слышал. в ньюке однако куча всёких режимов смешивания двух слоёв, и какими нюансами они отличаются - это наверное тема для изучения в течении нескольких месяцев..plus, over, overlay и так далее, похожие но чуть-чуть отличающиеся...

итак к делу. ещё раз напосню для чего все эти рендеры по пассам существуют - покрутить отражения/преломления, подкрутить освещение по цвету (не трогая материалы объектов), изменить цвет-материал объекта и т.д.

будем собирать картинку из кусков. ключевые куски: цвет материалов, освещение прямое и глобальное, отражения и преломления (ну и почие спекуляры и т.п. но там просто). во врае появились новые пассы которые по идее надо использовать для этого и начинаются они на RAW, но умные люди пишут что эти пассы алиасинговые, то есть края у них лесенкой и поэтому нормально собрать их не получится. для этого их восстанавливают вычитая diffuse_filter из пассов GI и Lighting. восстановив чистые составляющие прямого и глобального освещения можно над этими составляющими поиздеваться, то есть это именно то ради чего и задумывалась вся чехарда с пассами. с отражениями-преломлениями то же самое, только там в качестве фильтра выступает не diffuse filter а reflection_filter или refraction_filter, а так смысл ровно такой же. из пасса с отражениями восстанавливает полностью отражения, потом над ними можно издеваться и собирать обратно. вариантов миллионы, все их описать сложно. в зависимости от того что нужно сделать так нужно и действовать. хотя суждествуют готовые как-бы схемы (и скрипты для автоматизации) которые выводят компоненты для кручения, все какие можно, но получается огроменный монстр, который в прочем себя оправдывает если работа идёт на потоке.

вот пример того как можно усилить отражения на шарике с помощью таких штук - здесь покрутил reflection_filter чтобы восстановленные отражения пошли в конечное изображение в большем количестве

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

Hosted by uCoz