# PP2014: Odd refraction in material for drinking glass.

• @morkonan - Does the ray-tracing keep track of the IOR the ray is travelling through ?

From the following simple test I'd say NO.

I simply added an extra refracting plane between the front camera and the rotated plane. This extra plane is NOT rotated, so there will be zero refraction when looking through it from the front camera, because the incident angle of all rays striking it will be zero. I set its IOR to 1.5

I then set the IOR of the rotated refracting plane to 1.25

If Poser's raytracing keeps track of the IOR then at the rotated plane we should get refraction of a ray going from IOR 1.5 to IOR 1.25

If Poser's raytracing doesn't keep track then we'll probably get refraction of a ray going from IOR 1.0 to IOR 1.25 (i.e. the render will look the same as if the extra plane wasn't there.

(The simplest check is to look at the render and compare the areas where the two refracting planes overlay each other, and the areas covered by only one refracting plane)

Edit: I then remembered that a higher IOR going to a lower IOR can cause total internal reflection in real life, and caused an odd problem in my earlier test. So I tried with various IOR combinations on the two refracting planes, including 1.25 on the extra plane and 1.5 on the rotated plane. Same results - it appears that Poser always assumes that the incident IOR is 1.0 (proviso: when refraction is at a front-facing polygon)

• @ghostship - 4 bounces (as per your comment after the post with the render settings).
Since Andy is showing up behind the open cylinder then the rays have definitely got through the cylinder - the ones that don't hit Andy should continue to the background sphere (or evaluate to black if that's out of range). I just tried applying brightly coloured stripes to the sphere (my own worldball) and I can see them through the cylinder behind Andy, but the colours are really washed out - the effect is almost as if the cylinder's filled with smoke (that's quite similar to what I saw in my very first test, test 1 in the OP)

I only did a couple of small area renders with the bright background since it's so slow, but you should be able to see what I mean.

Edit: I wonder if it's something to do with using ambient only (i.e. diffuse = 0) on my sphere, and on the original backdrop with the asymmetric letters? Edit2: No, it's nothing to do with that - just tried.

• @ghostship - I think this proves that the washed-out effect seems to be due to a low Quality setting in the refract node in PP2014. But there's no white at all on the backdrop sphere, so I don't understand why I still see white bits with refract quality = 0.9

Was your Poser 11 render really using quality = 0.2 (as shown on your render settings screenshot)? If so then Poser 11 seems to have a higher standard for refraction quality :D

• I think I've just confirmed for myself that PoserPro 2014 (10.0.5.28925) doesn't do total internal reflection. If the criteria for total internal reflection are met (and these criteria seem to be incident angle greater than critical angle when hitting the back face* of a surface with a refraction IOR of greater than 1) then the ray just continues on its original path!

• Hmmm... back in 2010 bagginsbill posted this https://www.renderosity.com/mod/forumpro/?thread_id=2804987&page_number=2#msg3665923 (on the Renderosity Underwater Submarine thread), which included an image showing total internal reflection of a water surface from underneath. So I think I'm missing something - total internal reflection was obviously working back then...

Edit: Time to look once again at the complete scene that came at the end that thread

• Those underwater scenes were using IOR < 1.0 for the water surface. IOR of water is 1.33, so the reverse IOR for going from water to air is 1/1.33 = 0.75. So a refractive surface with IOR set to 0.75 should behave like the boundary between water (in front) and air (behind).

I tried my total internal reflection test again, this time with a half-cylinder with outward facing normals so the front camera's looking at the front of the surface, and with IOR = 0.67 (i.e. 1/1.5) expecting to see total internal reflection.

Oh dear, exactly the same as before - with incident angles over the critical angle the ray passes straight through.

• Heh, heh! It seems that I've done my old trick of thinking out loud onto a forum, and it's rather difficult to follow the train of thought. Sorry about that!

• What does the value of the Quality setting of the Refract node actually mean?

The PP2014 manual says "The Quality attribute controls how many rays are spawned by hitting a surface. Increasing this value increases the realism of reflections [sic] but consumes computing resources."

Does a value of 0.2 mean that the refraction is only calculated for 20% of the incident rays, and that the remainder are interpolated? Would a value of 1.0 calculate refraction for 100% of the incident rays?

If there is interpolation then what is interpolated? Is it the refacted angle, or is it the final pixel colour?

Etc

• @3dcheapskate I still have PP2014 installed and working. I'll do a quick render of our test cylinder in that to see if anything different happens. Yes, using quality setting of .2 (default) because I have a slow i5 and don't want to wait three years for a render.

• @3dcheapskate here is the render. Looks just fine in PP2014. Same material, same render settings as before. The difference is that I am using Bagginsbill's Envirosphere.

• @ghostship - Thank you ! :)

I've already got BBs environmentSphere - I use my own for purely egotistal reasons... ;o)

However, kicking my ego out the door - when I used BBs sphere the refraction seemed to work as it should:

Sooo... time to experiment and see why my worldball screws it up !
(and also time to nurse my wounded ego! ;o) LOL )

• @ghostship - Got it ! It's simply the "Filtering" setting of the environment image. My worldball's using 'Quality' whereas BBs envSphere is using 'None'.

I changed mine to 'None' and Bob's your uncle! :) Big thank you!

• Glad you got it worked out!

• Final test with the setup from the OP (well, similar). Simply changing the Filtering on the lettered bacdrop image fixes it.

Now I'm just left with the query about whether PP2014 does total internal reflection correctly that cropped up while I was messing around here...

• @ghostship - Got it ! It's simply the "Filtering" setting of the environment image. My worldball's using 'Quality' whereas BBs envSphere is using 'None'.

I changed mine to 'None' and Bob's your uncle! :) Big thank you!

AHA!

I wondered what the heck I was doing wrong! I couldn't reproduce your results. I even started measuring stuffs... I duped your settings... nothing.

But, I always render with no texture filtering on anything! Always. Why? Because... I just do. :) So, thanks for that explanation! Now I know I'm not a complete idiot, just mostly one. :)

Now I'm just left with the query about whether PP2014 does total internal reflection correctly that cropped up while I was messing around here...

And the mystery deepens. Just when we though it was safe to go back into the Material Room.... ;)

• Looking through this thread I've noticed several stupid mistakes in my tests, e.g. plugging a Refract node into the Reflection_Color input of PoserSurface!

Since the main problem that caused me to start this thread turned out to be the Filtering setting on an image, and the other oddity (oddities?) thrown up while investigating appear to be related to total internal reflection and/or back-facing polygons, for which I already started a separate thread, my stupid mistakes here can be brushed under the carpet... can't they? ;o)