transparency shadows

   4193   6   3
User Avatar
Member
168 posts
Joined:
Offline
Hi!

As Houdini (solaris) is going towards serious lighting (which I am very happy about). I decided to start doing serious tests and ask serious lighting questions
All renders below were done using IPR on Houdini 18.0.566

#1 Transparency shadows.

With Mantra, transparency and shadows was always the issue. Even with Physical Rendering, we could not get proper shadows (and I understand, it's not a easy problem to solve).
starting as a “base” geometry :

(btw, please notice white line on the corners of inside of the box)

With a CLASSIC mantra shader, we would get effect like so:

Which of course, is a problem as shadow is way too dark for such transparent object.

Now, to deal with those shadows, we have 2 options:
#1 Totally remove shadows from equation (which could be sufficient for some scenarios but it's definitely not a “physically correct” solution)
or
#2 Calculate caustic light. In very simple example caustic light will work but in example like this one, it starts to fall apart:

(This render took >35mins, comparing to the previous one which took 30seconds, + it has tons of major issues)

Switching to the printipled shader, of course we will have same shadow issue (no caustic light):


With principled shader, SideFX has introduced “Fake Caustics” option which helps getting rid of bad shadows(no caustic light):

Now, switching to Karma - a base render with 1 diffuse bounce (same as mantra) gave little bit different result:

Adding transparent glass object to it (with principle “fake caustics”):

My question is - is there something I am doing wrong in my setup, something that I am missing or I should do other way ?
How do You approach an issue with transparent shadows in your scenes ?

Don't want to compare to other renderers here, but Mantra and Karma is not performing well and I want to make sure I am not doing anything wrong before treating it as a formal bug.
Edited by tmdag - Oct. 15, 2020 13:59:12

Attachments:
base.jpg (294.4 KB)
base.hipnc (640.0 KB)
classic.jpg (322.7 KB)
classic_transparency.hipnc (640.0 KB)
classic_caustic.jpg (288.9 KB)
classic_transparency_caustics.hipnc (654.1 KB)
principle.jpg (317.5 KB)
principle_transparency.hipnc (640.1 KB)
principle_fake_caustics.jpg (320.8 KB)
principle_fake_caustics.hipnc (640.1 KB)
karma_principle_base.jpg (451.8 KB)
karma_principle_base.hipnc (1.2 MB)
karma_principle_base_transparency.jpg (479.0 KB)
karma_principle_base_transparency.hipnc (1.2 MB)

Albert
User Avatar
Member
7755 posts
Joined: Sept. 2011
Offline
It can be disappointing when first learning computer graphics that some problems aren't solved yet, caustic light paths are one of them.

Very few renderers can do any more than the first solution-remove the shadows or fake it with a fresnel term as opacity. There are advancements being made in this area every year, but mantra and karma do not feature any of these new methods.

As for what's wrong with your renders, assuming you want to try ‘fake caustics’, it's a matter of a poorly modeled scene. None of the shapes have normals authored and so they shade with smooth edges. This causes the shading, shadows, and refractions to be incorrect. The walls have no thickness and are coincident with the ground plane allowing for light leaking. The glass is also overlapping with the wall geo slightly, causing a dark band.

Attachments:
glass_shadow.karma1.0001.png (579.2 KB)

User Avatar
Member
168 posts
Joined:
Offline
You have very fair point with the normals! Thanks for pointing that out.
Like I was mentioning - I know it's not an easy subject for a renderer(s) but want to explore all options and solutions and any future steps.

Here is an update for that with Karma:

Overall looking good, probably need to test with more pixel samples to remove noise.

And updated Mantra version with principle and fake caustics:

(still getting bucket shaped artefacts, not sure if that is the case of IP only in this H version 18.0.566)

Updated classic shader with caustic light (1000000 photons, 1000 filter samples)
I didn't want to wait 30mins for the render, so this is 20% of it:

I guess we would drop caustics approach nowadays ? (I could try cranking up photon amount, but that doesn't sounds like a solution)
Edited by tmdag - Oct. 15, 2020 14:03:16

Attachments:
classic_caustic_v2.jpg (392.9 KB)
classic_transparency_caustics_v2.hipnc (1.2 MB)
principle_fake_caustics_v2.jpg (313.3 KB)
principle_fake_caustics_v2.hipnc (1.2 MB)
karma_principle_base_transparency_v2.hipnc (1.2 MB)
karma_principle_base_transparency_v2.jpg (360.9 KB)

Albert
User Avatar
Member
7755 posts
Joined: Sept. 2011
Offline
tmdag
(still getting bucket shaped artefacts, not sure if that is the case of IP only in this H version 18.0.566)

The bucket artifacts are a known issue when using preview mode with mantra. Render to mplay, or disable preview mode to make them go away.

Not sure why you're getting those fireflies in karma. I'm not seeing that.
User Avatar
Member
168 posts
Joined:
Offline
jsmack
The bucket artifacts are a known issue when using preview mode with mantra. Render to mplay, or disable preview mode to make them go away.
Not sure why you're getting those fireflies in karma. I'm not seeing that.
I'm aware that outside prevew we won't get buckets, but it's good that it's a _known_ issue then. Do you happen to know RFA confining that Sesi is aware? Thanks!

As for Karma fireflies - this is also IP, just tried cranking up Pixel Samples to 512, reduced Color Limit to 1 (just in case). Got rid of SOME of them (they are still there, just suppressed)


I've tried nonIP version, I'm still trying to get my head around with Solaris - couldn't find diffuse/reflection/refraction bounce limits on Karma/rendersettings node that are available under display setting. Is it something we have to add manually ? (need to read more documentation here)



Outside render artifacts issues, my main question is:

As for today - in order to get a “proper” transparent shadows - the only way for us is to use a principled shader with faked caustics option ? (of course we probably could add same functionality to the classic mantra shader, which is just manipulating opacity of the object as I understand it correctly)


Now, if that is just a cheat - which probably will work in most cases - do we get any possibility of doing it little bit more “properly” Like with ‘caustic’ light in the past - which for some reason I couldn't get to work in this example?
Edited by tmdag - Oct. 17, 2020 17:02:45

Attachments:
karma_principle_base_transparency_v3.jpg (303.1 KB)
karma_principle_base_transparency_NONIP_v3.jpg (342.9 KB)
karma_principle_base_transparency_v3.hipnc (1.2 MB)
fakeCaustics.png (34.9 KB)

Albert
User Avatar
Member
7755 posts
Joined: Sept. 2011
Offline
tmdag
couldn't find diffuse/reflection/refraction bounce limits on Karma/rendersettings node that are available under display setting. Is it something we have to add manually ? (need to read more documentation here)

In 18.0, the bounce limits are on the geometry render settings node. There isn't a global way to set them in 18.0, except for setting it on a common ancestor primitive.

tmdag
As for today - in order to get a “proper” transparent shadows - the only way for us is to use a principled shader with faked caustics option ? (of course we probably could add same functionality to the classic mantra shader, which is just manipulating opacity of the object as I understand it correctly)

The only way in Karma is with faked caustics. Maybe Sidefx will add a bidirectional pathtracing mode, but as most renderers don't implement bidirectional pathtracing or another intelligent way to resolve caustic paths. Considering the complexity and expense of cutting edge light transport research, I wouldn't hold my breath. I don't think photons are coming back, they're an antiquated way of approaching caustics that have many problems as you found. At the very least, they might bring back ‘all paths’ mode, but it's pretty poor at resolving caustic paths from small sources.
User Avatar
Member
168 posts
Joined:
Offline
jsmack
The only way in Karma is with faked caustics. Maybe Sidefx will add a bidirectional pathtracing mode, but as most renderers don't implement bidirectional pathtracing or another intelligent way to resolve caustic paths. Considering the complexity and expense of cutting edge light transport research, I wouldn't hold my breath. I don't think photons are coming back, they're an antiquated way of approaching caustics that have many problems as you found. At the very least, they might bring back ‘all paths’ mode, but it's pretty poor at resolving caustic paths from small sources.

“caustic light” in mantra is a bidirectional path tracing mode, but doesn't look like it's performing as expected anymore.

Therefore that is my global question to SideFX here - especially if we want to start considering Karma as our future, production ready renderer.
Albert
  • Quick Links