Pz with alpha shaders wrong result?

   4053   4   3
User Avatar
Member
68 posts
Joined: May 2013
Offline
It seems to me that if you render Pz for depth but the surface has alpha you get layers of see through. This is the wrong result. Areas with two surfaces (caused by alpha passing through) appear closer to the camera as they have accumulated luminence?
For the Z Depth channel no object/shader should be calculating with alpha. I'm guessing Constants would be better. Maybe then you need Deep renders.
Do people make a separate pass with a different (solid opaque) shader without it affecting ghosting (aliasing halos) etc or something typically?
Z-Depth should work more like IDs an absolute value for the first surface. Of course a warning should pop up saying “You have alpha shaders and are asking for z-Depth!? Would you like to allow accumulated values through the transparent surfaces and render the Pz layer completely useless or should we stop at the first surface and not render that layer transmissible? Oh and here's a link with an explanation of why you might want to allow that for some bizarre reason”. That now is replaced by Deep renders, but it's questionable the Z-Blur is more efficient with such monstrously large files.
Please explain best practices (or reveal an existing video with an in-depth explanation), thanks.
:?:

The other question is if you assign different shaders for different image planes can you write them into the same EXR files without damaging the other layers in the file without having to run a compositer (image) network? I think that was their intension (see EXR spec). I would expect an option to control weather it dumps/overwrites tiles into the file's layers as it goes and have your compositor (typically nuke) hot-load detected changes in real-time.
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Interesting point and correct me if I am wrong , but as we are supposed to be using a sudo physical based render engine surely there's no such thing as opacity in the alpha ie glass, is all refraction and reflection.

Rob
Gone fishing
User Avatar
Member
285 posts
Joined:
Offline
Opacity is not just an outdated way of simulating refractions, etc. (though this is how it was often used in the past). It is also used to simulate lots of infinitesimally tiny holes in something, that combined make an object seem semi-transparent. Just like “microfacets” in BRDFs are not really billions of tiny polygons, but a statistical value to describe what those would look like from a sufficient distance.

Side Effects themselves describe their implementation of volume opacity as a “screen door” technique when using raytracing in one of the Siggraph presentations on volume rendering a couple years back.

I guess volumes themselves are a perfect example of this. Another example is, er… a screen door from a great distance away.
User Avatar
Member
142 posts
Joined: Feb. 2012
Offline
Yep, that is the issue with Pz for depth: Non 1 value alphas, be it from motion blur, opacity or even just anti aliased edges (think fur!).
A few work arounds exist.
Split your render into more layers. Eg Forground, mid and BG. if you want to add post DoF.
Use Deep, the most accurate, but such huge files!!!
Also you can change the Sample Filter in the Pz AOV to CLosest Surface and you will only return the Pz value of the closest object sampled.
Showreel 2013 [vimeo.com]
User Avatar
Member
68 posts
Joined: May 2013
Offline
I am trying to use a “mantrasurface” which says “Material Shader Builder” as does glass but they don't have the same properties?!
After some R&D testing.
Clearly the Refract tab does nothing with transmitting light, which I suppose is caustics. I always thought they were the same thing at least conceptually.
There is a Faux Caustics option under the Opacity tab.
Being named Faux or false I thought it was strictly a shortcut for performance that is “Fake” and therefore undesirable.
The lack of this being on is why I resorted to Opacity Scale or even a need to tweak the color will cause this Pz error problem.
How do I turn on real caustic rendering? or is Faux not False and real? which shaders actually compute light transmission? The default Glass is the only one and it's called a “Material Shader Builder” but it's nothing like a“mantrashader” with the same node type name.
Clearly opacity is unusable. Well at least the screen door hack version it means here.
so fake_min and fake_max being fake seem to affect IOR more then the brightness I imagined.
I've tried setting Physically Based and turn off the Faux caustics and it stops transmitting light again, so that's not it.

I thought the name “Material Shader Builder” was a long form of an Operator Type, which is actually a shop/vopmaterial in both cases? how can you have different tabs/properties and not be a different type?

In the end I guess I'm still waiting for the Otoy plugin to be available for Houdini. At least I have my hopes that it will be more similar to my way of thinking.
  • Quick Links