Render.ru

ambient occlusion с прозрачными объектами

Eugene 8262

Активный участник
Рейтинг
11
#1
Подскажите как убрать из трассировки оклюжина объекты с прозрачностью
(к примеру, картинка под стеклом или конфетки в прозрачной пластиковой банке).
И возможно ли это сделать в MAYA?
В LightWave я ставил в свойствах прозрачных объектов флаг Unseen by Rays.
 
#3
А у нас все просто - говоришь - не окклюжить объекты с таким-то ID - оно и не оклюжит...
 

Puppet

Активный участник
Рейтинг
19
#4
to Решатель:

Да, уверен. Потому что во время оклюжена используются лучи не mi_trace_reflection, а mi_trace_probe. Основная резница по сравнению с другими типами лучей заключается в том что probe лучи не вызывают шейдер, хотя если насильно указать, то они это могут делать.
А если все же насильно вызывать шейдер, то уверяю вас, все будет значительно медленнее. А окклюжен он на то и окклюжен что считает лишь расстояние между объектов и вызывать просто так шейдер это уже излишне.

to Eugene:

Вы уверены что все работает? Потому что оно не должно работать :)
У меня не работает при любом раскладе и шейдере.
 

Eugene 8262

Активный участник
Рейтинг
11
#6
Незнание Maya на Вашем уровне.
Не могу найти какой флаг отвечает этому параметру.
Судя по Вашему посту полагаю, что Вы с этим сталкивались и буду благодарен за подробный ответ.
 

Eugene 8262

Активный участник
Рейтинг
11
#8
Отключи все, что только можно:
Casts Shadows
Receive Shadows
Visible in Reflections
Visible in Refractions
даже отключил Primary Visibility (хотя стекла должны быть всетаки видны)
В секции mental ray оключил
Visible in Transparency
Trancmit Transparency
Trace Reflection
Trancmit Reflection
FG Cast
FG Receive,
но результат остается тем же: ambient occlusion отрабатывает тени от объекта.
Можно для тех, кто на бронепоезде?
 
Рейтинг
34
#9
Хм. Если нужно убрать сам обьект - то выключается primary visibility.
По идее после этого он не должен видеться AO шейдером, но почему-то видится. Ну что ж - значит надо его просто спрятать и всё. ;)
 

Eugene 8262

Активный участник
Рейтинг
11
#10
В том, то и дело, что тогда нужно будет стекла рендерить отдельным проходом, а это - лажа по двум причинам:
1. Дополнительный проход с FG (освещение сцены без источников света)
2. Отражения в стеклах получатся без теней (оклюжена).
Вся сцена 1,5- 2,5 миллиона полигонов.
Может можно что-то придумать?
Я в отчаянии :(((

 
Рейтинг
34
#11
Значит надо воспользоваться каким-то другим AO shader. Вроде были на highend'е. И поблагодарить программеров из Alias ещё раз. :-\
 

Eugene 8262

Активный участник
Рейтинг
11
#12
Да вот как раз и пытаюсь установить AO shader от LightEngine3d.
Посмотрим, что выйдет.
 

Puppet

Активный участник
Рейтинг
19
#13
Дело не в шейдере, так как во время просчета окклюжена шейдер вообще не вызывается и менталу обсалютно наплевать прозрачный у вас объект или нет.
Проверяется лишь наличие пересечения с объектом.
А шейдер вызывает, например, FG (это и есть главное отличие между FG и AO)

Чтобы объект не был виден для окклюжена нужно убрать галку Trace на трансформе (не на шейпе!) объекта, можно снять все галки кроме Visible.
Но тут возникает другая проблема (возможно баг) :) Объект после это не просто исчезнет из окклюжена, а еще и сам прекратит отражать и преломлять и тп.

В итоге проблему можно решить написав свой шейдер окклюжена, который сделает все как вам надо :)

Удачи ;)

P.S. На картинке что под стеклом окклюжен можно забейкать...
P.S.S. А зачем стекло и картинку делать разными объектами? И проблемы нету :)
 

Eugene 8262

Активный участник
Рейтинг
11
#15
2 Puppet
Взял набор шейдеров от Gonzalo Garramuno в твоей компиляции (mrClasses v.0.1.7). В нем есть gg_ambientocclusion.

Стеклу в шейпе вырубаем:
Visible in Reflections
Visible in Refractions

В трансформе:
Visible:Yes
Trace: Use Inherited
Shadow: No
Caustic: Hidden
Globillun: Hidden

И все работает, даже с отражениями.
Спасибо за компиляцию.
 

Eugene 8262

Активный участник
Рейтинг
11
#16
Разобрался.
Работает с родным менталовским mib_amb_occlusion
с gg_ambientocclusion (Gonzalo Garramuno)
и с Dirtmap (Daniel "thebigMuh" Rind)

Стеклу в шейпе вырубаем:
Cast Shadows
Visible in Reflections
Visible in Refractions

В трансформе:
Visible:Use Inherited
Trace: Use Inherited
Shadow: Use Inherited
Caustic: Hidden
Globillun: Hidden
 

Puppet

Активный участник
Рейтинг
19
#18
Они соблюдают.
Скорее всего объект без trace флага на трансформе просто не попадает в bsp, по крайней мере мне так кажется.
Вот то что эти объекты сами перестают отражать, преломлять и тп, это уже криминал.

Просто когда луч попадает в объект проверяется его тип и если это был рефлекшен рей, и на объекте стоит "не виден для рефлекшен", то луч идет дальше. А вот тип луча probe попадает под категорию "все остальные"
В мае нету флага Visible for Probe. Да и в самом ментале такого флага помоему нету.
 

helm

Активный участник
Рейтинг
12
#20
кстати, если использовать встроенный в 6.5 AO шейдер, то действительно отключить объект из просчета давольно сложно. но для шейдера dirtmap галки Visible in reflection, Visible in refraction помогают, то есть если их отключить то объект будет "испускать" оклюжен но не "принимать" его. это очень помогает в случае когда нужно досчитать чот-то в уже имеющийся (просчитанный) оклюжен.
 
Сверху