I've made those two OSL shaders to have a fast and easy solution to put my 3D Objects in HDR Environment, without compositing.
QUIP is for Panoramic Camera, it's the easier to use. Just create a ground, plane or grid, and apply this shader to it. It doesn't work if the camera is moving, or with stereo camera.
QUIPCam is for Moving Camera. It's a kind of Spherical Camera Mapping to have a very fast 3D integration result. It's a first step to more advanced 3D integration or FX.
Just create a ground, plane or grid, and apply this shader to it. Then, create objects to mimic the real scene (box for building).
You can do very precise work for real FX, or just lowpoly object if you have fast or far camera moves.
It works very well with stereo camera, and could be used for 2D to 3D conversion.
environment_file = the ful spherical panorama, HDRI is better. It has to be the same as the one in world environment.
gammaEnv = gamma correction of environment image. Use 1.0 or 2.2 to correct the gamma.
WhiteBalance = White balance correction. Often, the environment lighting (IBL) give a colder look.
Use this value, from 3000 to 15000, to correct the warmness or coldness of ground.
Luminance = correct the darkness or brightness of ground.
ZFade = distance to make a smooth transition to the real environment. Your ground plane should be bigger than this value.
Use it a close as you can to have very smooth (invisible) transition.
AODensity = 0.0 means No Ambient Occlusion, 1.0 = completely dark (black) Ambient Occlusion.
QUIPCam has two more parameters :
Origin = Center of the Panorama. Using Z is enough, X and Y are not necessary. The bigger is Z, the bigger the Environment will be.
You may track this vector with the position of a Null Object to make it easier to use.
Pan_Rotation = Environment Rotation.
I've Include a quick tutorial after the demo video. It would help to understand how to use QUIP and QUIPCam.
You can download QUIP, and QUIPCam.
Those shaders are made for educationnal purpose only. Use them in production at your own risk.
Closures are for Blender/Cycles. They could need adaptation for your renderer.
If you use one of those shaders, or both, please credit them and me. Thank you.