Blender and HDRi Reflections

I’ve received a few emails in response to the Dues Ex post wanting futher elaboration on the point of HDRi and what it truly is, so although I’ve answered their questions personally, I felt like it’s a good topic for public tutorial as well.

So, here goes!

HDRi, without getting too technical, is an image that holds more information than a normal photo. High Dynamic Range image, which in photography equates to generating information from multiple exposures several stops apart. If you’re not a photographer and just want to use premade ones, you really don’t need to know those sorts of details.

The idea is that normal images only store three values for each pixel: Red, Green and Blue. The extra information could be called intensity or brightness. If you take a [normal] photo of the sun the only information you have that it’s white: 255, 255, 255. But what if there is another white object in the photo? It might also be 255, 255, 255 but it’s not creating it’s own light energy, it’s just a white object reflecting the light. The extra information accounts for that intensity.

Now, in the 3D usage, there are two major usages. The image above is IBL lit, which Blender internal doesn’t (yet) do. That’s a Yaf(a)ray feature that takes the intensity information of a HDRi map and lights the scene with it, instead of using lights in the traditional method.

Compare the lighting and shadows on these two images. Nothing in the scene has changed except the world texture (HDRi) used. Drastically different results, right? So that’s one way: easy scene setup. No need to make lights or reflectors or anything. For this reason, renderers like Hypershot don’t need light abilities, it’s all baked into the map. This has it’s own limitations, of course, but I won’t go there in this tutorial.

Okay, back to Blender

So, that’s all fine for Yafaray users, but what about the Blender internal?

Well, it’s used slightly differently.

Reflection Maps

A reflection map is what I was doing in the DX:HR tutorial. The extra HDR information isn’t really used, but the HDRi maps make for ideal seamless environment textures for our object to reflect.

Basically, you’ve got an item and it would be ridiculous to ray-trace all the reflections for every frame in the animation. But, you want it to have some shiny, reflective properties. This is a great way of doing it without killing your render time.

Normal, default texture is light grey. AO is raytraced @ 7 samples. No lights, just environment lighting > white. 4.04 second render.

Same default texture, but added this basic HDRi map on ‘mix’ – I’ll get into the specifics further down. Same render settings, 4.23 seconds.

Assuming your scene has lights and things the ‘mix’ might be too out of place (remember, the maps won’t line up to the real environment, but try to match them up as close as possible. Also, if you have coloured materials then mix won’t recognize them, it’ll just plaster over it with the map. The solution is the above photo: ‘add’. It just adds the lights from the HDRi to the material as you’ve created it for a subtle effect.

The Nitty Gritty

“You’ve convinced me, Brennan, this looks great! How do I set it up in Blender?”

It’s super easy.

Simply make a image texture like you normally would and change it to “reflection” and then either ‘mix’ or ‘add’ at the bottom. Render!

I would advise finding some great HDRi maps, but any image will work, and sometimes it’s handy to make your own.

Go forth and make shiny things without sacrificing render time!

 

Questions, comments or concerns? Get in touch.

 

 

 


(c) 2017 ACRYLO | powered by WordPress