Jump to content

Glass shader faux caustics and PBR


Netvudu

Recommended Posts

You don't have to do it with a photon map, there is a "brute force" method that I used on this image. Have a look at this scene. In the PBR parameters, there is several exposed options under the PBR tab. Notice the fine streaks under the sphere ;)

Cool. I wasn't aware of a brute-force method.

Thanks for the tip, Ole!

Link to comment
Share on other sites

Cool. I wasn't aware of a brute-force method.

Thanks for the tip, Ole!

You know, I thought the brute force method was broken in 9.5, but didn't have the opportunity to check. I tried setting Glossy Limit higher and I never got those caustics. It is Glossy Limit that controls this, yes?

I should check again...

PS. That vm_pbrpathtype parameter is not longer existing in 9.5. Probably replaced by vm_pbrspecularmask? All the newer 9.5 parameters for masking path types are set to include Direct and Indirect lighting. This makes me believe 9.5's pathtracing for indirect glossy rays might be broken?

Link to comment
Share on other sites

You know, I thought the brute force method was broken. I tried setting Glossy Limit higher and I never got those caustics. It is Glossy Limit that controls this, yes?

Heh, I haven't tried it yet, so I don't know what controls it. I just took Ole's word for it :)

Could it be the SpecularBounces or GlossyBounces (instead of the limits)?

Ole?

Link to comment
Share on other sites

Heh, I haven't tried it yet, so I don't know what controls it. I just took Ole's word for it :)

Could it be the SpecularBounces or GlossyBounces (instead of the limits)?

Ole?

If you add those parms, you'll see that they include indirect lighting already (default). I will check.:)

Link to comment
Share on other sites

Well, so much for that, then.

Thanks for checking this, Jason!

So.... I wonder if it's temporarily broken, or permanently removed...

I reckon it's something to do with the parameter shuffle? -shrugs-

EDIT:

- I submitted an official bug for this. ID=32715)

Link to comment
Share on other sites

That's weird. I've uploaded a scene here where I see caustics generated by the glass and the reflective material (standard reflective and glass materials). Just hit render. vm_pbrpathtype does seem to work here:

Here is an example of the difference in the scene I've linked to:

pbr_caustics.jpg

With vm_pbrpathtype -> caustics.

pbr_no_caustics.jpg

With vm_pbrpathtype -> diffuse.

Glossy limit does control the caustics.

Houdini 9.5.252

BTW: You will need a map in the env light, or the caustics won't work. This for example (different from the example above because that is commercial).

Edit: Reflection limits controls caustics, not glossy limits.

Edited by Ole
Link to comment
Share on other sites

Huh, maybe the parameters were changed in UI in 9.5 but Mantra is still looking for the old parm names like it did in 9.1?

I can't even find the pbrpathtype parm in the Mantra 9.5 Rendering Parameters - and I guess you only have it there from a 9.1 legacy file?

That's weird. I've uploaded a scene here where I see caustics generated by the glass and the reflective material (standard reflective and glass materials). Just hit render. vm_pbrpathtype does seem to work here:

Here is an example of the difference in the scene I've linked to:

With vm_pbrpathtype -> caustics.

With vm_pbrpathtype -> diffuse.

Glossy limit does control the caustics.

Houdini 9.5.252

BTW: You will need a map in the env light, or the caustics won't work. This for example (different from the example above because that is commercial).

Link to comment
Share on other sites

I can't find it either. I have no idea why it has been removed when it seems to work, but I stumbled upon it when searching the help for caustics topics. The local url is http://localhost:48626/props/mantra9_1 and the global url is http://www.sidefx.com/docs/houdini9.5/props/mantra9_1, so it is documented but does not exist within the UI.

Link to comment
Share on other sites

The parameter vm_pbrpathtype has never been in the parameter pane in the official builds AFAIK. It is non-supported and sidefx routinely tells me to keep my hands off it ;) It does work however, but it will have you drive your sampling levels up before the results looks good enough. Still, in some cases it's faster than photon mapping. And I may be wrong, but from my tests I recall caustics depended on the reflection limit, not glossy. The reasoning that I came up with for this was that the engine has to trace back through a transmitting object to a light source (as in a bidirectional path tracer), and that may take x bounces, in which case your reflection limit should be at least x.

As with anything PBR, the best way to achieve smooth results is by keeping your light count down, preferably to only one environment light with a .RAT map attached. I find myself constantly reminding people that you can create arbitrary maps yourself (so you're not restricted to using shot HDRIs) by simply setting up your light rig, then replacing the lights with whitecards and rendering those out as an environment cube map (with the default MP engine and the standard method of rendering env maps). That map can then be used in PBR to light your scene VERY efficiently - and you can combine it with a shot HDRI anytime.

cheers,

Abdelkareem

Link to comment
Share on other sites

The parameter vm_pbrpathtype has never been in the parameter pane in the official builds AFAIK. It is non-supported and sidefx routinely tells me to keep my hands off it ;) It does work however, but it will have you drive your sampling levels up before the results looks good enough. Still, in some cases it's faster than photon mapping. And I may be wrong, but from my tests I recall caustics depended on the reflection limit, not glossy. The reasoning that I came up with for this was that the engine has to trace back through a transmitting object to a light source (as in a bidirectional path tracer), and that may take x bounces, in which case your reflection limit should be at least x.

As with anything PBR, the best way to achieve smooth results is by keeping your light count down, preferably to only one environment light with a .RAT map attached. I find myself constantly reminding people that you can create arbitrary maps yourself (so you're not restricted to using shot HDRIs) by simply setting up your light rig, then replacing the lights with whitecards and rendering those out as an environment cube map (with the default MP engine and the standard method of rendering env maps). That map can then be used in PBR to light your scene VERY efficiently - and you can combine it with a shot HDRI anytime.

cheers,

Abdelkareem

Thanks for the information and tip Abdelkareem. And you are right. I mixed up Glossy limit and Reflection limit. I will look into the whole rendering of lightmaps thing and try to combine it with my light rig for the next version (as a feature like this has already been suggested) :)

Link to comment
Share on other sites

Thanks for the information and tip Abdelkareem. And you are right. I mixed up Glossy limit and Reflection limit. I will look into the whole rendering of lightmaps thing and try to combine it with my light rig for the next version (as a feature like this has already been suggested) :)

Thanks Abdelkareem

Link to comment
Share on other sites

Hi all,

I got an official answer from SESI on the pbrpathtrace parm:

This option was intentionally removed from the UI in either the 9.0 release as the rendering algorithm is extremely prone to noise. It may be added back in at a later time.

... which is totally fair, of course. I can totally respect SESI not wanting people to use something now that they'd rather make better in a future release.

So, only use photon mapping for now. :)

Link to comment
Share on other sites

So, only use photon mapping for now.

No longer! SESI have added back this parameter for us to play with, thanks SESI.

Houdini 9.5.260: Add the vm_pbrpathtype parameter back into SOHO, as it is useful to use this property to preview photon distributions or for accurate but slow renders of caustics.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...