RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization
http://ospray.org
Apache License 2.0
1.01k stars 182 forks source link

Feature request: Shadow material. in HDRI light, we can not get shadow on ground #540

Open bharatshiyani opened 2 years ago

bharatshiyani commented 2 years ago

As there is no physical object at ground, we do not get shadow at ground. Way to do is created transparent plane underneath the 3d model and apply special material, this material can receive only shadow samples, for rest of the part it is completely transparent.

Currently we do not have any material type such as it receive only shadow map. So can we please look into it?

Twinklebear commented 2 years ago

If I understand correctly, I think this could be done with the path tracer's shadow catcher plane feature (this is still needs to be made an official/documented feature). This lets you place an invisible plane in the scene that will "catch" the shadows of objects, allowing them to cast a shadow even though there's no visible geometry in the scene that receives it. This has the effect of making it look like they're casting the shadow on to the HDRI light map.

I see you found https://github.com/ospray/ospray/issues/167#issuecomment-1222180239 , for specifying the shadow catcher you'll set a vec4f parameter on the renderer named shadowCatcherPlane that specifies the plane coefficients, just like specifying a single plane geometry: https://www.ospray.org/documentation.html#planes .