The image based lighting technique is almost essential in computer graphics nowadays; as the name itself says, it's a technique to light a scene based on the pixel color information of an image, usually an hdr image (High Dynamic Range image); other image formats can also work, although not so well.
In Blender it's possible to obtain IBL both in BI and in Cycles, although with different modalities.
Start Blender and load the previously saved Gidiosaurus_3D_layout.blend
file; save it as Gidiosaurus_IBL.blend
.
We can divide this recipe into two parts: IBL in Cycles and in Blender Internal.
Let's start with the Cycles Render engine:
Enabling the World nodes in the Node Editor window
L Ice_Lake_Ref.hdr
item.Adding an Environment node to the World and loading the hdr image
Rotating the hdr image to match the position of the Lamp
Adding nodes to the World
The completed IBL World setup for the Cycles render engine
Renaming the World and some more settings in the main window
Now let's see the same thing in Blender Internal:
L Ice_Lake_Refl.hdr
item from the pop-up menu:Selecting the hdr image in the Blender Internal World
First BI World settings
More BI World settings
Enabling the transparent background for the rendering
In Cycles: at steps 6 and 7 we added nodes to increase the source light intensity of the hdr image; because this also increased the contrast of the image, at steps 8 and 9 we made it less contrasted again but kept the same light intensity, thanks to the Light Path node. The light rays shoot from the Camera position and directly hit a surface (Is Camera Ray) or any glossy surface (Is Glossy Ray) and have value = 1.000, hence corresponding to the Color2 socket of the second MixRGB node, therefore giving a pure white (1.000) value to the Background node's Strength; any other ray (transmitted, shadows, reflected, transparent, and so on) has the high contrast Strength values we established at steps 6 and 7.
We used the Mapping node for the sole reason of matching (visually and thanks to the World Background item enabled in the Display subpanel under the N side Properties panel) the source light direction of the image with the position of the Lamp in the 3D scene: that's why we rotated the hdr image to negative 235 degrees on the z (vertical) axis.
In Blender Internal: we can't rotate the image, so instead we offset it on the x axis to (almost perfectly) match the position it has in Cycles.
The Approximate gathering method is the one developed during the production of the short open movie Big Buck Bunny (https://peach.blender.org/) to have faster rendering and absence of noise in Ambient Occlusion, inevitable with the default Raytrace method (that still remains the more accurate, by the way).
Note that, in both the render engines, we didn't load a brand new Ice_Lake_Ref.hdr
image from the textures
folder, but we instead used the linked one coming from the materials of the character, as indicated by the L
in front of the name and by the name itself and all the settings grayed in the image datablock subpanel.
The free sIBL addon currently, only works with Cycles materials but it can read the .ibl
file provided with the free hdr images at the sIBL Archive (link provided further) and therefore, in one click, it can create the complete nodes setup to provide image based lighting in Blender.