Render.ru

Z-композитинг

Сергей Комелов

Активный участник
Рейтинг
11
#1
При композе по Z-каналу на пересечении одного слоя с другим по большей части очень резкие границы. Также если объект был на фоне неба (например дом) а потом другой объект (например дерево) ставится за домом (в соответствии с Z-каналом), то на месте стыка - просвечивает небо (в один-два пикселя, пример с деревом и домом приложил). Как можно с этими проблемами бороться? Заранее благодарен за любой ответ... Например только открыв Шейк почти наугад нашел какую-то ноду, что сгладила границы... значит и здесь что-то должно быть - не могу найти...
 

Вложения

mentor

Активный участник
Рейтинг
15
#2
Есть такая штука, как Coverage - это канал антиалиасинга для Z-буфера. Когда рендеришь Z, то считай коверадж тоже и сохраняй в RPF, EXR и тп. А в ноде merge включай depth merge. Если есть канал coverage он его будет использовать. А ещё лучше - рендери Z с нормальным антиалиасингом ;)
 

Сергей Комелов

Активный участник
Рейтинг
11
#3
Увы, не нашел ничего подобного (вообще никаких настроек для Z-канала - он просто включен или выключен) в Майке и настройках её рендра (Mental и Soft)... Потом может чего не понимаю, но как у Z может быть антиалисинг? Ведь любое сглаживание- это изменение глубины будет, а глубина меняться не должна... Т.е. понятен механизм Coverage (точнее могу предполагать) - это анализ границ и соотв. информация об этом. Но в самом канале как может быть антиализинг?
Других идей нет?
 

Григорий Чаленко

Куратор форума
Команда форума
Рейтинг
948
#4
Coverage - это отдельный канал, считается в дополнение к Z.

Конкретно в этом случае с домом и деревьями проще складывать пассы по альфа-каналу.
В целом, лучше отдельные пассы считать на черном фоне.
 

Сергей Комелов

Активный участник
Рейтинг
11
#5
Да, насчет отдельных пассов полностью согласен... просто это был первый подобный проект у нас - и расчитывали многое по Z-каналу сложить... но как правило не очень то выходит. В результате всё равно половину пересчитывали по слоям... Чесно говоря больше надежд возлагал на канал глубины. Но он имеет (как и все) ограниченное применение - нет на белом свете палочки-выручалочки :) ех-хо..... :( Ещё и Тартилла выдает несколько отличающийся канал от ментала и софтварного рендеринга (в Maya).
Вот, ещё, краем уха слышал, что в Нюке каналы хорошо обрабатываются -может там есть какие-то инструмены на тему обработки краев при Z-композе (на будущее)?
 

svet

Мастер
Рейтинг
215
#6
антиалиазинг толк дает, невзирая на "это изменение глубины будет" проверено на практике:)
еще лучше отсчитать Z с большей битностью например 16 или 32 бита на канал
а вообще хорошо с двойным размером и с 32 бита на канал

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

ПС. Z буфер хорош только в теории, на деле удобнее просчитать маски для всех объектов или прямо в Ф5 достовать 3д
 

kIRr 15085

Активный участник
Рейтинг
11
#7
Отсчитываю в майке сглаженный канал глубины. При наложении Fog`a во Фьюжене, в местах пересечения объектов четко заметен рваный край. Тоже самое происходит при наложении fog`a на 3Д рендереное самим фуджиком. Coverage не дает никаких изменений.
 

Григорий Чаленко

Куратор форума
Команда форума
Рейтинг
948
#8
kIRr сказал(а):
Отсчитываю в майке сглаженный канал глубины. При наложении Fog`a во Фьюжене, в местах пересечения объектов четко заметен рваный край. Тоже самое происходит при наложении fog`a на 3Д рендереное самим фуджиком. Coverage не дает никаких изменений.
Возможно, у основного пасса и канала глубины разные настройки антиальясинга.
Вообще-то нодой Fog не обязательно пользоваться. Проще положить поверх картинки Background цвета тумана с маской Bitmap, взятой из Z.
 

kIRr 15085

Активный участник
Рейтинг
11
#9
Антиалиасинг одинаковый. А вот с наложением по маске стоит попробовать.
 

kIRr 15085

Активный участник
Рейтинг
11
#10
интересный момент - когда смотришь канал глубины во фьюжене, он выглядет несколько по другому чем в файле из которого его взяли. Различия именно по краям объектов. В файле Z depth хранится в RGB каналах как обычный пасс, а во фьюжене я его присоединяю через chanell boolean.
 

AMIR

Активный участник
Рейтинг
5
#11
То kIRr - depth канал не хранится в rgb каналах!!! Это просто канал -z. Майка его всегда рендерит в 32 бита.
а fcheck его просто тебе в наглядной форме отображает в виде градаций серого. А ведь он (z-канал) может быть и отрицательный. Это такая адаптация для зрителя чтоб понятно было что ближе что дальше ( а то представляешь какими цветами нужно было бы отрицательные значения передавать?) А Фу использует свой способ отображения этих данных - только и всего. И почему ты Chanell booleans присоединяешь данные z канала? Если рендерить в Iff то они будут поумочанию в файле присутствовать там же определено наличие каналов rgbaz. А по поводу антиалайзинга? Народ, какой антиалайзинг? это же глубина точки. Если у соседней эта глубина другая, то понятное дело при композе будет рваный край.
 

Григорий Чаленко

Куратор форума
Команда форума
Рейтинг
948
#12
AMIR сказал(а):
depth канал не хранится в rgb каналах!!! Это просто канал -z. Майка его всегда рендерит в 32 бита.
Есть разные варианты. Глубина может рендериться и в цветные каналы, отдельным пассом. В этом случае битность можно задавать произвольную.
А антиалайзинг работает с глубиной точки так же, как и с цветом. Если речь идет о тумане, то цвет пикселей на границах объектов получается усредненный, то же самое должно и с туманом происходить.
 

AMIR

Активный участник
Рейтинг
5
#13
Спору нет, если рендерить отдельным пассом ( как я его обычно делаю ренедерманом, правда не в rgb а во float) то его можно и антиалайзным получить. Но насколько я понял kiRr ренедерит майкой и несовсем понятно зачем в принципе делать отдельные пасссы, когда канал глубины присутствует всегда(правда несглаженный), его остается только вывести в iff.
 

AMIR

Активный участник
Рейтинг
5
#14
Хотя я наверное неправ потому ка криво выразился. конечно каждый рендерит так как ему хочется. Ктото по умолчанию получает канал глубины, ктото его получает другим способом - через шейдер, через предустановленный пасс, как это сделано в майке. но помоему просто те кто начал только работать с z каналом часто недопонимают его смысл. а вот SkyFly помоему правильно его понимает
 

kIRr 15085

Активный участник
Рейтинг
11
#15
AMIR - я наверное не правильно выразился. В RGB сохраняю не z канал, а информацию о глубине пикселей. =)).
 

AMIR

Активный участник
Рейтинг
5
#16
:) ну тогда все друг друга поняли..... Интересно вот только помогло это SkyFly? :)
 
Сверху