Multi HDRI Projection

Here is a fantastic tool by Bhavesh Budhkar for projecting multiple HDRIs onto geometry.

Resources

Purpose

Projecting HDRI on a Lidar or a Tracking Geometry for accurate reflection is commonly used in the VFX pipeline. Let’s say we have a huge scene for rendering, and we have multiple HDRIs of the same location for projection. But projecting single HDRI for such a scene is sometimes not sufficient as the HDRI starts to pixelate over a certain distance. In such cases, using multiple HDRIs for projection would be a great solution to create a Master setup. I have prepared a simple setup for a multi HDRI projection.

For the representation purpose, Bhavesh has used 3 colors as a projection on the ground. Here we are getting Yellow and Cyan colors where 2 projections are blending with each other.

You will be replacing lidar_placeholder with the scene Lidar Geometry and assigning the same shader. Bhavesh has added some attributes in place3dTexture nodes to control the projection mask.

So the logic here is, we need a mask to cut off one HDRI to a certain distance so it will not pixelate as well as won’t completely overlap with other HDRIs. I have used some math nodes to generate the mask which will follow the place3dTexture’s placement interactively.

Based on per shot requirement, we can transform entire setup just by transforming the main parent “HDRI_PROJECTION” group.

place3dTexture node Attributes:

Translate XYZ – Default attributes to control the position of the projection HDRI.

Rotate Y – Default attribute to rotate the projection HDRI. I have removed Rotate X and Z which you can bring back from Channel Control.

Min Radius Falloff – The distance at which mask falloff fades in.

Max Radius Falloff – The distance at which mask falloff fades out.

Mask Shape – Box and Sphere are 2 options to select the shape of the mask.

Mask Rotate Y – Y-axis rotation of the mask, not the place3dTexture rotation.

Here, Bhavesh has set up the shader for 3 HDRIs which you can plug in your existing projection setup.