Why does image-based lighting (IBL) like HDR textures do not function as shadow-casting lights?

as donmccurdy answered at Generate shadow effect by using HDR file:

image-based lighting (IBL) like HDR textures do not function as shadow-casting lights.

I’m curious about the reason behind this.

  • Is it possible to cast shadow by using HDR as environment texture?
  • Is it too expensive to implement this?

It seems that Babylon.js also does not support this: Lighting and Shadows from HDR Texture

The most common shadow technique “shadow mapping” does not work with environmental lighting since there is no position in 3D space from where you can generate a shadow map. That is however possible with punctual lights like spot, directional and point lights.

I understand that we can not generate shadow by using “shadow mapping” for IBL.

However, it is said that Blender can generate shadow when using IBL. How does Blender accomplish it?

Where have you read that?

I imagine this would work with a path-tracer like Blender’s Cycles renderer. I’m not sure how it could be done in a realtime rasterizer like Blender’s Eevee, or THREE.WebGLRenderer.

1 Like

that isn’t accurate

Yeah, a ray tracing engine could do this (at a cost, maybe not realtime, but these days we might be surprised). Three’s rendering is not a ray tracing one, but rasterizing (calculating light/color per pixel based on input parameters without knowledge of all objects light may have come from, which is unlike a ray tracer that follows light rays through a scene through objects it may have bounced off of or passed through by the time it exits the current pixel to the camera which could potentially involve many more calculations).