|
Hi Christian,
First of all, the depth of field effect present in the lens is very different from the light scattering effect that happens with glossy reflection. With a glossy reflection, the focus located on the surface of the reflective object, which is not usually the case with a lens.
For lens DOF, we use the frischluft lenscare plugin for after effects. It's beautiful and fast.
For glossy reflection, I would maintain that there's no better substitute for raytracing scattered samples using the reflection diffuse node. Just be sure to tweak the BSP tree and set a reasonable maximum depth and sample count. And run a fresnel coefficient into the reflection power.
my 2c,
Brett
On 8/9/06, Christian Götzinger <cg(at)pension-goetzinger.de> wrote:
Hi List,
I hate the fact that there's no proper way to calculate true depth of field in mental ray. Mental ray's native DOF shader is absolutely
ridiculous. Way too slow and it doesn't even simulate the aperture shape. Also, I had to find out recently that even X-DOF is fake because reflections are not blurred correctly based on ray length - instead the
z buffer is used. For reflective objects this ALWAYS looks totally wrong and fake.
Now, I was thinking that if you rendered a diffuse pass and a reflection pass and applied DOF in post independently to both passes then all you'd
need is an additional "depth pass" that's based on ray length. You could apply DOF to the reflection pass based on this ray length pass and add the result on top of the diffuse (which receives independent DOF).
Of course this is still not ideal because you have to guess the depth of field amount for every shot instead of basing it on real world values, but doing depth of field in post seems like the only solution to getting
good depth of field in reflections when dealing with mental ray.
Is this thinking flawed? Is there any way to do this? I'd appreciate any help on this because lack of realistic depth of field is driving me crazy.
Cheers, Chris
--- Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body: unsubscribe xsi
|