HDRIs are everywhere these days. If you’ve got a half-decent camera, a tripod and some software you can even make them yourself.

But just like creating art in Blender, being able to do it at all is not the same as being able to do it well.

So, after I created my first crappy HDRI and discovered how challenging it could be, I decided to embark on a quest. I wanted to create the perfect high dynamic range environment map that would give you perfectly accurate and realistic lighting as if you had teleported your CG scene to the actual location of the photo itself.

In truth, this is an unending quest, but I’ve made some fair progress over the years. So without further ado, let me explain…

What Makes a Good HDRI

Just like art, the quality of an HDRI can be a subjective thing, but I think we can all agree that there are a few fundamental attributes that define (although not exclusively) how useful or accurate an HDRI is.

Dynamic Range

Let’s begin with what is, to me, the most important aspect of any HDR image that you intend to use for lighting.

Sergey is working on another cool motion-blur-related(ish) feature: The rolling shutter effect, which you find in most photo and video cameras these days.

This is presumably to help with integrating renders with fast moving camera footage, but of course you can use it for whatever crazy purpose you desire ;)

It’s not in master just yet, but there’s a solid patch awaiting review:

This is an attempt to emulate real CMOS cameras which reads sensor by scanlines and hence different scanlines are sampled at a different moment in time, which causes so called rolling shutter effect. This effect will, for example, make vertical straight lines being curved when doing horizontal camera pan.

This commit adds the Blackman-Harris windows function as a pixel filter to Cycles. On some cases, such as wireframes or high-frequency textures, Blackman-Harris can give subtle but noticable improvements over the Gaussian window.

What is a pixel filter you ask? As I understand it, it’s basically the function used to apply anti-aliasing in your render. Different filters use slightly different math and methods to calculate how each pixel appears relative to its neighboring pixels, which makes edges look smoother.

The difference between the three types is most noticable on thin details like wires:

Previously shutter was instantly opening, staying opened for the shutter time period of time and then instantly closing. This isn’t quite how real cameras are working, where shutter is opening with some curve. Now it is possible to define user curve for how much shutter is opened across the sampling period of time.

This could be used for example to make motion blur trails softer.

Shutter curve now can be controlled using curve mapping widget in the motion blur panel in Render buttons. Only mapping from 0..1 by x axis are allowed, Y values will be normalized to fill in 0..1 space as well automatically.

About

This is a blog about rendering in general, but mostly about Blender’s awesome render engine, Cycles. Here you'll find everything from material tips and tricks to docs and demos of new features as they are committed.