автор Андрей Клецков (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 чтобы восстановленные отражения пошли в конечное изображение в большем количестве
в общем всё это довольно непросто и обширно, с наскоку не освоишь, только через практикку. плюс ко всему этому ещё добавляется проблема краёв - очень легко получить лесинки по краям, для борьбы с этим существуют способы но будем разбираться с ними уже в следующий раз.