Realistic Spotlights for Blender & Cycles

Blender 2.79 | Cycles Renderer

There’s currently no built-in support for IES light sources in Blender & Cycles.
We already know that Blender 2.8 will have the feature built into it (which is great news!), and there’s an addon that provides the functionality, but I wasn’t satisfied with it’s workflow, not being integrated well into Cycles.
So I decided to develop a custom Cycles shader (node group) that will provide realistic IES like spotlights in a convenient customizable way.

The Shader I developed is called CG-Lion Spotlight Presets Pack 1.0 and is available for purchase on Blender Market.
It doesn’t load external IES files, but instead has a pre-configured library of 20 spotlights shapes, and also provides features that are not available in IES lighting like tweaking the spotlight beam focus, adding a chromatic dolor dispersion effect, and producing a correctly bright surface at the light source.


This slideshow requires JavaScript.


IES Lighting in CG

IES stands for Illuminating Engineering Society, it is the organization responsible for creating and maintaining industrial standards for design and manufacturing of artificial light sources.

In 3D rendering, an IES file or “photo-metric file” is a text file containing a physical description of a light source’s beam spread , pattern and intensity, allowing for faithful depiction of the light source in 3D renders.
Most modern 3D rendering software support IES lights, that is allow loading IES files into the software and lighting the 3D scene using the light source described in the IES file.

Lighting manufacturers make measurements of their light fixture model’s physical light output and create IES files available for download on their websites.
This allows architects, lighting designers, and interior designers to download the files and realistically visualize the light sources effect on their projects.

CG artists use IES lights to add realistic spotlight beam patterns to their renderings and animations, such that can’t be created using regular simple 3D light sources.

Examples of IES lights rendered with V-Ray for 3ds max:


IES Spotlights for Blender & Cycles

Maya – Setting the V-Ray Sun direction according to location, date and time

Maya 2018 | V-Ray 3.6

To set the VRaySun photometric light source diretion according to the location in the world, the date and the time:

  1. Select the VRaySun parent node – ‘VRayGeoSun1Transform‘ and rotate it so its Z axis points to the architectural plan’s south.
  2. Select the VRaySun node – ‘VRayGeoSun1‘ and in its attributes un-check Manual Position.
    This will make the location / date / time parameters accessible.
  3. Set the GMT zone of you architectural project’s location in the world, the Date and time.
    * haven’t found how to set daylight saving time….


V-Ray for Maya Physical Camera
V-Ray for Maya White Balance
Daylight system addon for Blender

Cycles Area Light pleasant surprise

Blender 2.79

One of the features I would really like added to the Cycles Renderer is a photo-metric workflow.
That is the ability to set light sources intensity using real-world photo-metric units, load IES photo-metric data, have a physical daylight system, and set photographic camera exposure and white-balance for the output image.

While Cycles currently doesn’t have a fully functional photo-metric workflow,
It is equipped with some important basic ingredients needed for the development of such a workflow.

One Of these features is the Black-Body color conversion node that allows specifying color by Kelvin color temperature,
Another is the procedural Sky texture featuring Hosek / Wilkie and Preetham physical sky models, that can also be controlled according to global position, date and time with this addon.

Recently I’ve had a pleasant surprize finding out that Cycles actually has another important feature for a photometric workflow, and that is that Cycles Area Lights maintain a fixed general light output (‘Luminous Flux’) while area is changed and changes specular intensity correctly to so that the smaller the light source area, the greater its brightness (as it should physically be).
* This in difference to the way a mesh light with an emission shader behaves where the light output is per area and therefore increases or decreases when changing the shape and size of the surface.

This makes designing light sources with a fixed total output of light yet different shape, and therefore different specular reflection, shading, shadow softness possible,
And is in itself a valuable feature in realistic light source design.
* Especially coupled with setting the light color using Kelvin color temperature (Black-body node)
The only thing missing is the an ability to specify the total output of the light source in Lumens (lm) units.

I have encountered a mentioning of Cycles having a physical scale conversion ratio here:

Marco Pavanello, the developer of the Blender ‘Real Camera Addon‘ wrote:
“In Blender the Emission Node Strength is measured in W/m^2”
I haven’t had the time yet to seriously find out how that should be translated to intensity in lumens..
* It  should be noted that both the Cycles Area light and mesh light use the Emission shader as there source for intensity / color settings, but differently,
You can see in the demonstrations below that for a light source of the same surface area a significantly larger strength value is needed to produce roughly the same light output as the light mesh and this is probably due to the output being internally divided by surface area which is in fact the subject of this post.

Here are some renders to illustrate the point, and the diffrent behavior of light mesh (mesh with an Emission shader)
I’ve added a rough glare effect that depends on float color intensity to illustrate the way the specular highlight intensity increases as the area of the ligt source gets smaller while overall light output is the same:

Cycles Area Light with different sizes but same strength
Cycles Mesh Light using an Emission Shader with different sizes but same strength


Cycles Mesh Light using an Emission Shader with different sizes and strength changes to compensate

Daylight system for Blender

Blender 2.78

Found a simple and effective sun positioning addon for Blender,
It can be downloaded here:
The addon is easy to install like all other addons in Blender,
Once installed you will find it’s controls in the World settings,
You specify a sky environment map and a sun node and it will control them acording to given latitude longitude, date, timezone ect.
Also lets you set the north direction of the system as needed.

Very simple and very effective.

Photometric daylight setup in V-Ray for Maya