IOR vs Reflectivity ? Transparency vs Opacity?

   9680   9   2
User Avatar
Member
375 posts
Joined: May 2014
Offline
Hey people

I don't understand the difference between IOR and Reflectivity. The doc does not explain it enough, and the Reflectivity example pics are missing (I logged this bug).

Then, why is the default IOR 1.5? Why is the default Reflectivity at 1? Why not 0? The doc says for IOR : “To disable reflections completely, set this parameter to 1.0”. But I find this confusing.
What's the effect of 0.5 then? When I put this slider at 1! no reflection. At 2 : reflection exists. At 0.5 : reflection exists. This does not seems logical to me.
Another example : in the material palette“, the ”white paint“ material has IOR at 1.5 and Reflectivity at 1. But white paint is barely reflective. Couldn't these 2 parameters be at 0 for the sake of clarity?

Why are there 2 parameters in the first place?

And there is a similar mess with Transparency and Opcacity.
The doc about transparency : ”Controls how transparent the surface is.“. The doc about opacity : ”Opacity Scale : The opacity of the shaded surface."
Why are there 2 parameters ? Aren't they both the same thing?
The Transparency default is 0 which seems normal for once.
Why is the Opacity scale default at 1? Even for white paint?

Sorry but I feel all this to be very confusing and I beleive this page http://www.sidefx.com/docs/houdini16.0/nodes/shop/principledshader [www.sidefx.com] should start by an explanation on these dual parameters.

Gz
Houdini gamboler
User Avatar
Member
7734 posts
Joined: Sept. 2011
Online
IOR is ‘index of refraction’ and has to do with the physical interaction of a medium with light energy. For normal materials it will always be greater than 1. An IOR of one is equivalent to a vacuum which has no interaction with light. So for completely non-reflective materials the ior can be 1 to disable reflections.

Reflectivity is an artist/texture friendly parameter that modulates the reflection amount. It attenuates the reflectivity defined by the ior, with the amount of attenuation rolling off to 0 as the angle tends towards the perpendicular.

Opacity and transparency are two unrelated concepts. Opacity makes an object allow rays to pass through it, and the degree of opacity determines the proportion being blended. Transparency is really transmission, it enables refraction which samples objects behind the surface with a ray bend according to the index of refraction. Transparency=raytracing, Opacity=compositing.

http://www.sidefx.com/docs/houdini16.5/nodes/vop/principledshader [www.sidefx.com] The current documentation explains the meaning most of these parameters quite well. The only one that is not really explained is opacity, which I guess is more of a rendering term that the documentation assumes familiarity.
User Avatar
Member
375 posts
Joined: May 2014
Offline
Hello Jsmack
First thanks for taking the time to explain these concepts and for your great insight.

- IOR: I understood it is the main parameter for reflection.
But still I find it confusing that the non reflective state is at 1. If the “zero” reflection is 1, what does mean 0.5 (where reflections do exist)? Negative reflections?
And then again, why does the “white paint” material has IOR at 1.5? Shouldn't the IOR be closer to 1, like 1.05 for example?

- Reflectivity : an attenuation for IOR, sounds right.

- Opacity and Transparency: the beginning of your explanation did not ring a bell to me as both parameters seem to allow rays to pass through the object. But when you said “Transparency=raytracing, Opacity=compositing”, it did ring a bell. In Softimage we had a shader called “sprite” which was just like a compositing app's layer transparency inside the 3d space. Perhaps Opacity is the same concept?

I don't know how these shaders operate under the hood, I'm just trying to use them in the best possible way
Houdini gamboler
User Avatar
Staff
5156 posts
Joined: July 2005
Offline
Index of Refraction is an actual physical material property that you can look up for a real material. Air is almost 1, Water is 1.33 and glass is 1.5. It wouldn't be very helpful to remap it to some other range.
https://en.m.wikipedia.org/wiki/List_of_refractive_indices [en.m.wikipedia.org]
User Avatar
Member
375 posts
Joined: May 2014
Offline
OK, I get it now! So I guess values below 1 are when the ray bends towards the opposite side?
Houdini gamboler
User Avatar
Staff
5156 posts
Joined: July 2005
Offline
IOR values less than 1 are physically impossible. It would mean that the speed of light within the medium is faster than the speed of light in a vacuum (C). So far we haven't found any medium that accelerates light to faster than C.
User Avatar
Member
7734 posts
Joined: Sept. 2011
Online
IOR less than one means the medium has an index of refraction greater than the shaded surface. IOR in most renderers can be thought of as a ratio of the material's IOR to the IOR of the medium (air/vacuum) around the material. Normally the medium is assumed to be vacuum so the ratio is with 1. However if the medium is water or glass or diamond or something else, the IOR will be the inside divided by the outside, which can give values less than 1 for example with water inside glass, or air inside water.

When using nested dielectrics where the two IOR at each interface are taken into consideration, therefore IOR is actually the material IOR, and not the ratio with the medium. The medium is assumed to be vacuum for nested dielectrics.

As for ‘white paint’, white paint is very reflective, not like you say non reflective. However the ior would typically depend on the paint's vehicle/medium such as acrylic/lacquer/polyurethane. All of which are dielectrics with indices of refraction between 1.4 and 1.6, so the reflectivity is virutally the same for all of them. Most of the reflectivity of white paint comes from the diffuse albedo, which makes it look ‘white.’ Perhaps you are confusing roughness with reflectivity, matte paint has a high roughness value, so the reflections are not specular but are diffused across the surface.
User Avatar
Member
2199 posts
Joined: July 2005
Offline
jsmack
Opacity and transparency are two unrelated concepts. Opacity makes an object allow rays to pass through it, and the degree of opacity determines the proportion being blended. Transparency is really transmission, it enables refraction which samples objects behind the surface with a ray bend according to the index of refraction. Transparency=raytracing, Opacity=compositing.

So if you want to composite something Transparent is there are “correct” way to set the alpha channel?
I guess want you need to know is if a ray hot something in the scene or not. Is that available as an export?
The trick is finding just the right hammer for every screw
User Avatar
Member
178 posts
Joined: Jan. 2013
Offline
The way I see opacity, is that it is a rendering shortcut for materials that are assumed to have holes in them that are too small too see. The amount of opacity is inverse to the porousness of the surface / volume.
User Avatar
Member
8513 posts
Joined: July 2007
Online
Simon
So if you want to composite something Transparent is there are “correct” way to set the alpha channel?
I guess want you need to know is if a ray hot something in the scene or not. Is that available as an export?
Mantra integrator doesn't propagate alpha through reflections/refractions, and since there is no B (background) event type in LPE I don't think you can currently do it through LPE either, I may be wrong though

But even if you got alpha propagated for no-hit paths it would not allow you to properly comp such renders as there would be no refraction happening in the comp for such areas, may be better than black though
Tomas Slancik
FX Supervisor
Method Studios, NY
  • Quick Links