Mantra black refract issue...

   3701   9   2
User Avatar
Member
52 posts
Joined: June 2016
Offline
Hi,

i'm doing some tests on mantra shaders, espacially on reflective / refractive shaders.
Reflections seems to works pretty well, but I have some issue on refractive shaders :

I tested a principled shader, with IOR 1.5, no reflectivity, fully refractive, and several roughness settings (0, 0.2, 0.4, etc).
I used a environment light with an HDRI only.

When I render the balls, I have black parts appearing inside the sphere.
It's not coming from the limits (I've left the setting to 10).







I think it's a GGX model. I don't know why, since you put fully refractive shader without fully reflective, it creates black parts.



The only solutions I found were :
1) Use a classic shader and change the refractive model to Phong. But the refract result is not the same. (the roughness is different)
2) Change the envlight rendering mode to “Ray Tracing background”, but when I use this mode, I lost the background and extra image plane passes !
3) I tried to create a geolight with a sphere, and assign a self-emissive shader on it, but same, I lost the passes.

So, I don't know if there is an option somewhere that I don't know, or if it's simply impossible to render a principled shader fully refractive without reflections.

Any help would be appreciated !

Thanks !

Attachments:
mantra_refract_issue.zip (2.2 MB)
spheres_full_refract.jpg (210.8 KB)
mantra_settings_001.JPG (31.2 KB)
mantra_settings_002.JPG (26.0 KB)
principled_settings_001.JPG (74.5 KB)

User Avatar
Member
1755 posts
Joined: March 2014
Offline
It's a ruse
I can't help you with info strictly related to this issue, but I'm gonna tell you that I've given up using the principled shader for various reasons, a while ago and fully embraced the classical shader. Take this info FWIW.
User Avatar
Member
359 posts
Joined: April 2017
Offline
I may be wrong here, but I'm pretty sure that the Principled Shader won't allow you to make a 100% refractive material that has no reflections at all. Those black areas are light that SHOULD be reflected based on your IOR, but are being multiplied against your black reflection color setting. It's only barely physically possible to do such a thing… I think maybe scientists have invented an artificial material with these properties? But it's not what you'd typically think of as “realistic” material properties, and the Principled Shader isn't built to handle such things.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
1755 posts
Joined: March 2014
Offline
You need to provide a practical solution to this, because increasing reflections will not get you closer to a more realistic look. Exactly, what setting should be modified to get a desired look, because reflection ain't it.
User Avatar
Member
359 posts
Joined: April 2017
Offline
McNistor
You need to provide a practical solution to this, because increasing reflections will not get you closer to a more realistic look. Exactly, what setting should be modified to get a desired look, because reflection ain't it.

Oh, do I?

I don't think this is possible with Principled/GGX. The microfacet refraction model won't like this sort of thing at all, because the desired material is not physically-based. The practical solution is to either write your own shader from scratch if you have the time and inclination, or, significantly more practically, just use the Classic shader or pbrrefract with the Phong model and adjust the roughness parameter to be as close to the GGX result as you can get.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
1755 posts
Joined: March 2014
Offline
I didn't mean it like I'm demanding something. It's just that your explanations don't seem clear to me, but that may be my fault. I shall read about the Principled shader and not just its implementation in Mantra.
User Avatar
Member
359 posts
Joined: April 2017
Offline
I'm pretty sure a glass sphere with a concave part wouldn't look black like that in real life, so the principled shader is actually not physically accurate or there's a setting that needs to be ticked on/off, hence my question regarding what should one do to get a realistic look if one chooses to use this shader. If the answer is “write your own shader or use another”, maybe something, somewhere got off the phisically based train, be it Mantra or the shader.

A glass sphere with no reflectivity absolutely would look like that. This is because, in the real world, glass is both reflective and refractive. The ratio of each type of ray is determined by the index of refraction… reflection rays are going to take precedence to refraction at glancing angles, and this effect if exaggerated the higher your IOR goes. And of course there are internal bounces and such that contribute additional light until the ray hits its depth limit. This isn't something unique to Mantra… this is just how shaders work, and in turn is based on how light behaves perceptually in the real world. Any “glass” material preset you see from any render engine is going to be both refractive AND reflective, and have an IOR somewhere around 1.55 to set the balance between these.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
7733 posts
Joined: Sept. 2011
Offline
This is an example of total internal reflection, any shader using fresnel blending will exhibit total internal reflection where no transmission is possible due to the geometry. Although the GGX bsdf has the option to disable fresnel blending, it doesn't allow transmission through total internal reflections, possible due to the microfacet model which assumes fresnel blending is taking place.

The solutions you have found to use a specular model other than GGX are the only ones available.
User Avatar
Member
1755 posts
Joined: March 2014
Offline
@toadstorm I deleted my previous answer as I've realized there's a gap in my knowledge, but apparently I wasn't fast enough
Thanks for the explanation.
User Avatar
Member
648 posts
Joined: July 2005
Offline
see attached,
looks like reflection limit is too low.

Attachments:
reflections.hiplc (1.2 MB)

  • Quick Links