my shadows through glass are black.

   9490   7   1
User Avatar
Member
115 posts
Joined: Feb. 2014
Offline
Finally getting some time to dip a toe into houdini, transitioning from soft, and the completely different way of working is giving my brain a much needed workout out, but I've a constant stream of questions and this one I've not been able to answer.

I'm trying to shade some transparent objects, like a sheet of glass but the shadows that are cast by it are black. I'm using H16, the mantra-pbr engine and the principled shader with an area light. Transparent shadows are on in the light, and i can see straight through the glass sheet to the shadow underneath, which is black.


Does this sound familiar? What am I doing wrong?


cheers,

A>
Edited by Andi Farhall - Feb. 27, 2017 15:11:45
User Avatar
Staff
418 posts
Joined: Sept. 2016
Offline
If you want to get non-black shadows without using actual caustics (raytraced or photon mapped), you must enable “fake caustics” on the material. You'll find it on “Opacity” tab on both principled shader and classic shader.
User Avatar
Member
115 posts
Joined: Feb. 2014
Offline
aha, thanks. So a shadow through glass is in fact a caustic? And that's why it's named as a faked one? I need to do more research on material behaviour.


cheers,

A>
User Avatar
Member
115 posts
Joined: Feb. 2014
Offline
so I've switched on the fake caustics in the shader, and i now seem to have the opposite problem of no shadow. There is something very faint, but my material is 50% transparent with some green in the transmission so i'm expecting a shadow density somewhere nearish to .5 with some colour to it.
User Avatar
Member
236 posts
Joined: March 2015
Offline
Hi, I decided to setup a test file to help explain and also ask a question related to transparency/caustics.

I very rarely use faux caustics but it depends on the scene really. For something like this example, I've used All paths and compared to photon maps. (caustic light)

All paths can be found on the Mantra render node on the Rendering > Shading tab, Allowable paths. This allows you to render caustics without using photon maps but it tends to be noisy.

Using a caustic light to generate photon maps will produce less noise but will take longer. You can reduce the time by using the Light Mask section and removing lights. (I've shown this on the example picture)

I've used the Mantra Surface Shader (SHOP) as that's what I'm used to. I tried using the Principled Shader (MAT) but as you can see from the result, the glass is not red and I'm unsure why. I'm sure that I'm missing something and I'd be grateful if someone can explain.

Rob

Attachments:
Caustics_Test.jpg (243.8 KB)
Caustics.hiplc (582.0 KB)

User Avatar
Staff
418 posts
Joined: Sept. 2016
Offline
Transmission colour (and nested dielectrics features) on the principled shader will not work in “Physically based rendering” mode unless you enable it explicitly on the mantra ROP (rendering->shading->“enable absorption and nested dielectrics”).

It doesn't seem to affect the colour of photon maps however - that might be a bug. I'll file a bug report.
User Avatar
Member
236 posts
Joined: March 2015
Offline
Thanks dlee, that answered my question and produces expected results similar to the Mantra shaders above.
User Avatar
Member
115 posts
Joined: Feb. 2014
Offline
Rob, thanks for the hip file, very handy. I think I've spent too long with Arnold and Redshift which work straight out of the box but are entirely wrong with this example. Learning Mantra will blow a few rendering cobwebs away.
  • Quick Links