ambient occlusion с прозрачными объектами
- Автор темы Eugene 8262
- Дата создания
to Решатель:
Да, уверен. Потому что во время оклюжена используются лучи не mi_trace_reflection, а mi_trace_probe. Основная резница по сравнению с другими типами лучей заключается в том что probe лучи не вызывают шейдер, хотя если насильно указать, то они это могут делать.
А если все же насильно вызывать шейдер, то уверяю вас, все будет значительно медленнее. А окклюжен он на то и окклюжен что считает лишь расстояние между объектов и вызывать просто так шейдер это уже излишне.
to Eugene:
Вы уверены что все работает? Потому что оно не должно работать
У меня не работает при любом раскладе и шейдере.
Да, уверен. Потому что во время оклюжена используются лучи не mi_trace_reflection, а mi_trace_probe. Основная резница по сравнению с другими типами лучей заключается в том что probe лучи не вызывают шейдер, хотя если насильно указать, то они это могут делать.
А если все же насильно вызывать шейдер, то уверяю вас, все будет значительно медленнее. А окклюжен он на то и окклюжен что считает лишь расстояние между объектов и вызывать просто так шейдер это уже излишне.
to Eugene:
Вы уверены что все работает? Потому что оно не должно работать
У меня не работает при любом раскладе и шейдере.
- Рейтинг
- 11
Отключи все, что только можно:
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 отрабатывает тени от объекта.
Можно для тех, кто на бронепоезде?
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 отрабатывает тени от объекта.
Можно для тех, кто на бронепоезде?
- Рейтинг
- 11
В том, то и дело, что тогда нужно будет стекла рендерить отдельным проходом, а это - лажа по двум причинам:
1. Дополнительный проход с FG (освещение сцены без источников света)
2. Отражения в стеклах получатся без теней (оклюжена).
Вся сцена 1,5- 2,5 миллиона полигонов.
Может можно что-то придумать?
Я в отчаянии ((
1. Дополнительный проход с FG (освещение сцены без источников света)
2. Отражения в стеклах получатся без теней (оклюжена).
Вся сцена 1,5- 2,5 миллиона полигонов.
Может можно что-то придумать?
Я в отчаянии ((
Дело не в шейдере, так как во время просчета окклюжена шейдер вообще не вызывается и менталу обсалютно наплевать прозрачный у вас объект или нет.
Проверяется лишь наличие пересечения с объектом.
А шейдер вызывает, например, FG (это и есть главное отличие между FG и AO)
Чтобы объект не был виден для окклюжена нужно убрать галку Trace на трансформе (не на шейпе!) объекта, можно снять все галки кроме Visible.
Но тут возникает другая проблема (возможно баг) Объект после это не просто исчезнет из окклюжена, а еще и сам прекратит отражать и преломлять и тп.
В итоге проблему можно решить написав свой шейдер окклюжена, который сделает все как вам надо
Удачи
P.S. На картинке что под стеклом окклюжен можно забейкать...
P.S.S. А зачем стекло и картинку делать разными объектами? И проблемы нету
Проверяется лишь наличие пересечения с объектом.
А шейдер вызывает, например, FG (это и есть главное отличие между FG и AO)
Чтобы объект не был виден для окклюжена нужно убрать галку Trace на трансформе (не на шейпе!) объекта, можно снять все галки кроме Visible.
Но тут возникает другая проблема (возможно баг) Объект после это не просто исчезнет из окклюжена, а еще и сам прекратит отражать и преломлять и тп.
В итоге проблему можно решить написав свой шейдер окклюжена, который сделает все как вам надо
Удачи
P.S. На картинке что под стеклом окклюжен можно забейкать...
P.S.S. А зачем стекло и картинку делать разными объектами? И проблемы нету
- Рейтинг
- 11
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
И все работает, даже с отражениями.
Спасибо за компиляцию.
Взял набор шейдеров от 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
И все работает, даже с отражениями.
Спасибо за компиляцию.
- Рейтинг
- 11
Разобрался.
Работает с родным менталовским 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
Работает с родным менталовским 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
Они соблюдают.
Скорее всего объект без trace флага на трансформе просто не попадает в bsp, по крайней мере мне так кажется.
Вот то что эти объекты сами перестают отражать, преломлять и тп, это уже криминал.
Просто когда луч попадает в объект проверяется его тип и если это был рефлекшен рей, и на объекте стоит "не виден для рефлекшен", то луч идет дальше. А вот тип луча probe попадает под категорию "все остальные"
В мае нету флага Visible for Probe. Да и в самом ментале такого флага помоему нету.
Скорее всего объект без trace флага на трансформе просто не попадает в bsp, по крайней мере мне так кажется.
Вот то что эти объекты сами перестают отражать, преломлять и тп, это уже криминал.
Просто когда луч попадает в объект проверяется его тип и если это был рефлекшен рей, и на объекте стоит "не виден для рефлекшен", то луч идет дальше. А вот тип луча probe попадает под категорию "все остальные"
В мае нету флага Visible for Probe. Да и в самом ментале такого флага помоему нету.
кстати, если использовать встроенный в 6.5 AO шейдер, то действительно отключить объект из просчета давольно сложно. но для шейдера dirtmap галки Visible in reflection, Visible in refraction помогают, то есть если их отключить то объект будет "испускать" оклюжен но не "принимать" его. это очень помогает в случае когда нужно досчитать чот-то в уже имеющийся (просчитанный) оклюжен.