Object's "cast shadow"

   9470   4   3
User Avatar
Member
176 posts
Joined: May 2006
Offline
The only method I know to exclude object from casting shadow (in shadowmap at least) is to explicitly set it's name (or bundle with it) in light's shadow objects attribute.
The question is - is there any other method to exclude it from all shadows?
Something like “phantom” attribute but for shadows would be great.

Why I'm asking for it - I've done an asset for a human eye, which contains eyeball with bumped-in iris which is required to cast shadows, and second surface simulating eye's water, bumped-out near the iris to simulate cornea. That second surface should always be excluded from every shadow - because otherwise iris will always be in it's shadow!
So, therefore it's an asset, it'd be great if it will work out-of-the-box.
But, to properly render that, for every time I'm adding new new character to the scene, I always have to remember that I should exclude these water surfaces from every eye asset in my character's asset… It's a bit… not very procedural.. or I missed something?

Please help!
User Avatar
Member
176 posts
Joined: May 2006
Offline
No suggestions?
I can't believe there is no other way to do it…
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Couple different ways you could do it.

Add a OnCreate event to your asset so it automatically adds your eye surface to a bundle used for shadow exclusion.

Another method would be just to add a catch all to your light's shadow mask.
Something like ^*/myEyeSurface. That way any myEyeSurface objects inside a subnet in /obj get added excluded.
if(coffees<2,round(float),float)
User Avatar
Member
176 posts
Joined: May 2006
Offline
Thanks wolfwood, I'll try that!
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
I just ran into this problem too … is there a distinction in Houdini between “self shadows” and “cast shadows” … I'm trying to do this with Vops to make a shadow-matte shader that will only shade stuff that is cast onto the surface from other objects and not itself (ideally other shaders and not itself).

I'm very new to vops but I was thinking there should be some light-ray stuff etc, right now I just have a shadow inside of an illumination loop, I just don't know how to actually tell which surface the shadow was cast from, any ideas … is there a way to tell for instance, which primitive/primitive attribute a shadow was cast from?
  • Quick Links