tangent-opensource/coreBlackbird

Light filters/blockers

Opened this issue · 1 comments

A prerequisite patch would be an easy way to define shapes via signed distance fields in a shader:
https://developer.blender.org/D6464 (it is WIP but this could be due to Blender integration, Cycles part of the code could be solid already).

I did a test by using the Geometry shader to output position into a light shader to attempt to access world-space position data in that context however this doesn't access the scene geometry data unfortunately, so I think this might need to be achieved in some other manner. Perhaps a dedicated way to specify light filters would be the preferred development moving forward (I'm leaning on your expertise @skwerner what you think is the best approach).

Once there is proper access to position data, using the SDF node to define blocker/filter/gobo shapes as well as plugging in other shader types like textures, we can apply light filters at a per-light basis to multiply against and link them in via USD schema:
https://rmanwiki.pixar.com/display/REN23/Light+Filters

Cheers

Screenshot_20210708_200400
World-space from light context!