Forum: Poser - OFFICIAL


Subject: how can i prove / disprove the results of increased ray trace bounces?

MistyLaraCarrara opened this issue on Mar 12, 2014 · 100 posts


bagginsbill posted Tue, 18 March 2014 at 7:33 AM

Poser refraction is broken. I try not to say that. I don't know why they coded it this way, but it only participates in what the camera sees. It does not participate in what the shadow calculator sees. As you pointed out, the only way to let light pass through and illuminate what is behind or on the other side of the refracting surface is to use transparency. But transparency combined with refraction will produce double images, one image bent, the other not. There is no solution. I hate it. I try not to talk about it because it is a long time now with no attention and I can't explain why my friends at SM display no interest in fixing this after so many years. The people showing great looking glass from other renderers make me sad, because this is not a rocket-science type of rendering problem. It's pretty basic.

Furthermore, refraction in Poser behaves on entry and on exit as if both ray intersections are entering. On entry, you go from air to the object's material, and the IOR applies. To exit and go from high IOR back to air, it should produce a reversal of the original bend. (Back of polygon to front, it's supposed to use 1 / IOR, not IOR). Instead, Poser double bends the ray, and the visual effect is as if the glass is super dense and weird - not even possible in real life. I compensate for this by decreasing the IOR value - most people don't notice the deviation from reality when I do this. For example, instead of glass 1.54, I might use 1.1 for the refraction (but still use 1.54 for the reflection!!).

The third thing wrong with Poser refraction is that it has no respect for distance traveled through the medium. A colored glass shows deeper, richer color in thick parts than thin, according to a simple inverse exponential relationship. This is easily modeled using a color coefficient that is then exponentiated by the distance traveled. I could do it myself if Poser had a refraction distance node to tell me how far the ray traveled.

The fourth thing wrong with Poser refraction is that it does not obey total internal reflection, which is directly a consequence of not obeying the inverse IOR on exit. TIR means that refraction stops altogether below a certain internal angle of incidence. Again, this is pretty trivial math for somebody who is building a renderer, even if ordinary users can't describe it. The Fresnel_Blend node (a fairly recent addition) should have taken this into account. I cannot offer any explanation why it doesn't.

TLDR Summary: Wrong shadows, wrong bends, wrong color.

 


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)