Free Stuff‎ > ‎

GenIBL - IBL Generator

This is a tool to help you make IBL probe images for use in Poser, using Poser itself as the generator.
Download the file below. It contains a Runtime structure. Install the contents in any Poser runtime of your choosing. There are only two files. In Props:GenIBL you'll find the GenIBLSet.pp2 file and a thumbnail for it.
Set up your scene, sky, and ground (if any). You may want to use my Environment Sphere to wrap a spherical panoramic image around your scene. You may also want to add buildings, trees, walls, anything that would contribute a lot to the ambient lighting, besides the sky.
The tool is a Prop file that loads 2 props, and carefully positions your Dolly camera. (If you're using the Dolly camera for something important, and you don't want its properties to be lost, be sure to save the camera settings first. Use of GenIBL will completely change your Dolly camera settings.)
The two props are necessary and should not be moved alone. They will come in parented to the Dolly camera. You may move the Dolly camera if you need to, but do not rotate it. (Moving the camera may be necessary if the camera or GenIBL props are too close to or inside some other prop.) The camera, by default, will be 42 inches from the center of the universe and 60 inches off the ground.
The two props are the GenIBL-Probe and the GenIBL-Lens. The Probe is a torpedo shaped object, about an inch in diameter, with a very carefully designed shape and a mirror finish. The Lens is a little square refractive object between the camera and the probe. The lens is required to correct the perspective distortion created by trying to "photograph" the probe with a camera that is so close. It also performs anti-gamma correction, so that the rendered IBL probe is in linear color space.
How does it work?
(Note: This is just FYI - you don't need to understand any of this to use GenIBL.)
In the past I suggested to use a reflective sphere to generate the probe image, but that actually has a totally incorrect shape. Looking at the world through a mirror ball, you do see something similar to an IBL probe image (technically called an Angular Map), but it is sufficiently wrong to cause problems and I don't like imprecision if it can be avoided.
I developed the shape of this probe object using calculus. It wasn't actually that hard. The cross section of this curve is based on the desire to have a slope = tan(x). Finding the integral, the desired shape is -ln(cos(x)). All that remained was to write a program to generate the OBJ file. Surprisingly simple, isn't it?
But then we have the problem of perspective distortion. One way around it is to move the camera really really really far away from the probe, and use an extremely high focal length to zoom in on it. Being really far away, the view lines are nearly parallel and the distortion is minimized. But if you do that, the camera ends up outside the environment sphere (or room if that's what you're working with) and you can't actually see the probe object.
The solution turned out to be quite simple. After studying Snell's law which describes the relationship of incoming and outgoing angles in refraction, I theorized that the index of refraction, when really high, forces the refracted ray to be very close to the normal of the surface. In fact, if the IOR was infinite, the refracted ray would be precisely aligned with the surface normal. Well I can't do infinite IOR in Poser, but IOR=1 million works just fine. Thus, when you view the probe through the lens, it appears that your viewpoint is about a million times farther than it actually is, with a focal length about a million times higher than the 1000mm I have set up on the Dolly Camera. If you look at the thumbnail at the top of this page, you can actually see what the probe and lens look like when viewed from the side. Wierd, huh?
Steps to use:
Navigate to Props:GenIBL and double click the GenIBLSet library object.
This will load the two props and set up your Dolly Camera. In the preview, you'll see nothing whatsoever. This is good.
In Render settings, make sure you enable ray-tracing and have at least two ray-trace bounces.
Make sure your render dimensions are square. I suggest 400 by 400. Bigger is not much better for Poser IBL. If you disagree, by all means render at 512 by 512 or 800 by 800 or 1024 by 1024. (If you can demonstrate a difference, I'd be interested in seeing that.)
Render. It should look something like these.
Your image will, of course, look different, based on your scene. Don't be scared if it looks dark. That is because the color space of this image is linear - not corrected to look good on your monitor, but to work right with lighting arithmetic.
Save the resulting image to an image file. Pay attention to where you put it.
Create an IBL light (if you don't have one already). Load the IBL probe image file into it like any other. In other words, the Image_Map should be plugged into the light shader's Color input. Set the Intensity of this light to 100% (or 1.0 in the material room). Make sure that the IBL Contrast is 1, not 3.
You're all set. You can now delete the GenIBL-Probe and GenIBL-Lens.
If you rotate your environment sphere or make other positional changes, you should generate a new, matching IBL probe.
Unless you're using Poser Pro, this will produce an LDR IBL image, not an HDR IBL image. (In Poser Pro, check HDRI Optimized output in render settings and save as EXR or HDR format.) In Poser 7, even if your environment sphere has an HDR image on it (Poser 7 and up only), the generated probe image is LDR, and Poser 6 can't load HDR images at all.
However, you can get much of the effect of an HDR image with a little more work in Poser 7. Go into the material room for the GenIBL-Lens. Find the Color_Math:Pow node. Change Value_1 to RGB(127, 127, 127). This will cut the brightness in half. Render with this setup and save as a JPG or PNG or whatever. Even though this is LDR, we've compressed the ordinary brightness to half, so that some of the extra-bright stuff can be recorded.
Now when you load the IBL image into the IBL material, it is only half as bright as it should be. To compensate, change the IBL intensity to 200%. You'll get back a lot of the dynamic range up to 2X max brightness. If you want to try for more, use RGB(64, 64, 64) instead, and then set the IBL intensity to 400%.
Ted Czotter,
Aug 12, 2008, 9:50 PM