I have a room that is a box. There is a single rectangular window on one of the walls of the room. A directional light source is shining into the room through the window. The light source has a direction vector that is at a certain inclination towards the ground. The light source can rotate 360 degs around the vertical axis. In every rotated position the inclination angle towards the ground is thus the same. One full 360 deg revolution in this way is considered a "day".
The question is: How to construct a volume inside the room that encloses all points lit by the light during the "day"?
For a single direction it's simple; a slanted rectangular prism clipped to the room box. But how to go about "integrating" all light positions?
The only thing I have so far is monte carlo sampling + convex hull, which is not really optimal.
It's reasonably easy to model this:
A ray of light through the top-left corner of the window traces a cone throughout the day.
Cut the cone vertically at the window's left edge, move the right half to the right edge, and join the two halves with 2 rectangular faces to make a "tent with round ends" shape.
Copy the tent, translate the copy from the window's top to the bottom, and join it to the top to make a solid.
Clip against the room interior.
The idea here is that it's a lot easier to convolve the cone for a single point window instead of integrating prisms for all directions.