UE4 – Lighting calculation tips for Archviz

Software:
Unreal Engine 4.25

The Static Lighting calculation in UE4 is performed by the Lightmass module (UE4’s integrated GI* engine), and the result of this calculation is stored in each object’s Lightmap, an extra texture map used for storing static light and shadow information.
This post provides a list of useful tips and techniques for improving your UE4 scene setup for an efficient light calculation.

Annotation 2020-07-04 223338

Notes:

  1. The following tips are aimed at achieving a good lighting calculation/solution but they don’t include optimization methods for high performance projects.
    Namely, we don’t get into manual Lightmap UV optimizations here.
  2. The following tips don’t take into account the now real-time ray-tracing options that have become available with Nvidia Geforce RTX / DirectX DXR.

 

Scene Setup:

  1. Delete unseen polygons from your mesh, so they wont waste Lightmap resolution.
    * For example, in an interior Archviz project, delete the outer polygons of the walls.
  2. Set the architectural surfaces to cast shadows from both sides:
    Details > Lighting > Shadow Two Sided
    Annotation 2020-07-04 231158
  3. Place “light blockers” around the structure to avoid light licks.
    * Wrap the structure on all sides with scaled cubes that have an absolute black material:
    Annotation 2020-07-04 194647
  4. Set the “light blockers” to be invisible in rendering:
    Annotation 2020-07-04 194713
  5. Scale the Lightmass Importance Volume fit around the structure tightly.
    Annotation 2020-07-04 185623

 

Lightmap Resolution:

  1. Optimize the architectural surfaces (static meshes) Light map resolution.
    A higher resolution will allow the Light Map to store more detailed lighting.
    The Static Mesh resolution setting is found in:
    Static Mesh Edior > Details > General Settings > Light Map Resolution:
    * This setting can also be overriden at the actor settings by selecting the actor in the map/level and activating:
    Details > Lighting > Override Lightmap Res
    Annotation 2020-07-04 214810
  2. Use the Lightmap Density optimization display mode to inspect the actual Lightmap texel density.
    The Lightmap Density display mode also color codes the display to indicate the efficiency of the Lightmap resolution per object (green color being optimal, and warm colors being too dense)
    * Note that in many cases of Archviz you may want a higher density than the editor displays as optimal.
    Annotation 2020-07-04 195909

 

Lighmass Settings:
The Lightmass setting are found in:
World Settings > Lightmass

  1. Decrease the Volumetric Lightmap Detail Cell Size to increase the light calculation accuracy:
    * This will increase the calculation time
    Annotation 2020-07-04 214102
  2. Decrease the Indirect Lighting smoothness to get more detailed shadows:
    Annotation 2020-07-04 232028
  3. Disable Compress Lightmaps to avoid banding artifacts in the shadow gradient:
    Annotation 2020-07-04 214102b
  4. Use the Lighting Only display mode to evaluate the lighting solution:
    Annotation 2020-07-04 200645
  5. For final quality, set the Light Quality to Production:
    Build menu > Lighting Quality > Production
    Annotation 2020-07-04 222201

 

* GI – “Global Illumination” is a term referring to indirect light simulation, namely a calculation of how light reflects and bounces between surfaces.

 

Related posts:

  1. 3ds max & V-Ray to UE4 using Datasmith
  2. “Cleaning” the UE4 FPS template for Archviz
  3. UE4 – HDRI Lighting
  4. UE4 – Activate DXR ray-traced reflections

UE4 – HDRI Environment & Lighting

Software:
Unreal Engine 4.25

Annotation 2020-05-20 162811

Creating HDRI environment backgruond and lighting* in UE4:
Note:
Lighting using a panoramic HDRI background is also referred to as IBL – Image Based Lighting.

* The example HDRIs in this post are from www.hdrihaven.com

  1. Import HDRI environment file.
    Note:
    The file must be saved as a *.hdr file and not *.exr because AFAIK that’s the only way UE4 will recognize it as an HDRI environment and encode it as a Texture Cube (cube map)
  2. Enable the HDRIBackdrop plugin:
    Go to Edit > Plugins
    Type “HDRI” in the search field to locate HDRIBackdrop and enable it.
    * You’l have to restart the UE Editor before using the plugin
    Annotation 2020-05-20 153925
  3. Drag a Lights > HDRI Backdrop object to your level:
    Annotation 2020-05-20 154657
  4. In the HDRIBackdrop details, select the wanted Cubemap:
    Annotation 2020-05-20 155212
  5. > Set the HDRIBackdrop‘s Intensity (self explanatory..).
    > Rotate the HDRIBackdrop around its Z axis to set the environment’s direction.
    > Set the HDRIBackdrop‘s Size.
    * Make it larger than your whole scene,
    And if Use Camera Projection is unchecked make it also large enough so that noticeable objects in the HDRI image will be distant enough as to not move incorrectly when you strife.
    * When Use Camera Projection is activated the Size property has no effect.
    > If Use Camera Projection is unchecked, set the Projection Center Z value to define the background image height below which it is projected as a flat ground.
    > Lighting Distance Factor defines ground projection area that will appear to receive shadows from your scene objects.
    * Set this attribute to 0 in-order to turn off the ground projection shadow.
    > Use Camera Projection:
    Activate this option to get a traditional infinitely far background with no flat ground surface projection.Annotation 2020-05-20 160338

 

Related:

  1. Sun & Sky link
  2. UE4 Architectural Glazing
  3. 3ds max & V-Ray to UE4 Datasmith workflow
  4. Preparing an FPS project for archviz
  5. UE4 – Archviz Light calculaion tips

Blender – Adding a texture to an Area Light

Software:
Blender 2.82

Adding a texture to an area light can make it produce softer and more detailed highlights and an overall more organic lighting effect.

Note:
Since an Area light in Blender isn’t rendered as an actual mesh object with UV coordinates, it’s texture coordinates are parametric (see below).

Adding a texture to an Area Light:

  1. In the Area Light properties click the Use Nodes button (see image A) to initiate its node graph and allow texturing it.
  2. In the Shader Editor view (with the light selected), drop your texture to the light’s node graph and connect it to the light’s Emission node’s Color input. (see image B)
  3. Create a new Input > Geometry node, and connect it’s Parametric output to the Image Texture’s Vector input. (see image B)

A. Without a texture the Area light produces a hard flat highlight:
a

B. With the vignette texture, the Area light now has a more subtle organic effect:
* The Emission node’s Strength was increased in this case to compensate for the lower light output with the texture.
b
Related posts:

  1. Cycles Area Light pleasent surprise
  2. Cycles Area Light shader visibility

Understanding the Photometric Light Measurement Units

There are two sets of light intensity measurement units:
Photometric units and Radiometric* units.
The Photometric units measure the intensity of visible light** as it is perceived by the human eye, and the Radiometric units measure the intensity of electromagnetic radiation***, which is the broader physical phenomenon of light, including the whole spectrum of radiation beyond visible light** (like x-rays and infrared radiation for example).

Light intensity is generally measured in three ways:

1. The directional intensity received from a light source as it is measured from a point in space. i.e Luminance in Photometric units or Radiance in Radiometric units.

2. The total light intensity output a light source emits to all directions i.e Luminous Flux in Photometric units or Radiant Flux in Radiometric units.

3. The amount of light intensity received by a surface from all directions i.e Illuminance in Photometric units or Irradiance in Radiometric units.

Similarly to the way measurement of kinetic power is based on the power of an ideal horse, the Photometric measurement units base the scale of light intensity on the light emitted by an ideal candle.

Ster

Luminance (Candela):
When measured from any point in space, the Luminance of an ideal candle seen from that point is measured as 1Candela‘ i.e. 1CD‘.
> In 3D rendering, a photometric IES file describes a light source’s light beam pattern by listing the Luminance or CD of the light source in different directions.

For light emitting surfaces like LCD screens Luminance is measured as Candelas per 1 square meter of surface i.e. CD/m2. Typical LCD computer monitors for instance, have a Luminance of about 250 CD/m2. imagine your computer screen displaying pure white and extended to an area of 1m x 1m, the light intensity perceived from it would be as if about 250 candles were spread on the whole area.

Luminous Flux (Lumen):
The amount of light emitted by an ideal candle through 1 solid angleSteradian‘**** conic beam distribution is measured as 1Lumen‘ or 1lm‘. the total Luminous Flux of the candle in all directions is 4 x PI lumens i.e 12.56 lumens which is simply the whole surface area of the unit sphere.
> The total amount of light produced by different kind of light bulbs is usually specified by Luminous Flux measurement i.e how many Lumens does the light source output.
> If sn optical reflector is placed next to a light source, focusing all it’s light output to a narrow direction, it wont change the light source’s Luminous Flux (Lumen) output, but since the same Luminous Flux will be focused to a narrower beam, it will have a higher Luminance (CD) measured from that direction, and therefore surfaces at that direction will be receive a brighter Illumination (Lux) (see below).

Illuminance (Lux):
A 1 m2 (meter squared) area surface, receiving illumination of 1 lumen has a measured Illuminance of 1 lux or 1 lx. Illuminance is measured by how many lumens a surface receives per square meter.
> In photography, the amount of Illuminance at which a surface is lit is important for determining the proper photographic exposure for the picture.

The inverse-square law:
As a light beam travels through space it’s distribution covers a larger and larger area, therefore it’s energy per area is reduced. the light energy a candle emits through 1 solid angle steradian, in a distance of 1 meter will cover an area of 1 meter squared, therefore the area of 1 meter squared will receive 1 lumen of light energy and will be illuminated with an illuminance of 1 lux. as that 1 lumen of light energy travels another 1 meter further, to a distance of 2 meters from the candle, it spreads and covers an area of 4 meter squared. each square meter of the 4 now receives just 1/4 of a lumen, so it’s illuminated by only 1/4 lux. as that 1 lumen of light energy travels another 1 meter further, to a distance of 3 meters from the candle, it spreads and covers an area of 9 meter squared. each square meter of the 9 now receives just 1/9 of a lumen, so it’s illuminated by only 1/9 lux. after a distance of 4 meters, the same 1 lumen on light energy will be spread on an area of 16 meter squared, so each square meter will be illuminated by 1/16 lux. you can already see the emerging pattern, the illumination intensity is inversely proportional to the square of the distance to the light source. This phenomenon is referred to as ‘The inverse-square law‘, and in practical terms it means that surface illumination is greatly influenced by it’s distance from the light source.

inv

Notes:

* Radiometric units measure light intensity using Watt light energy units.
note that this isn’t the Watt measurement units of electric consumption we’re used to for classifying electric light sources with, but a Watt measurement of the actual energy in the light itself.

** Electromagnetic radiation of wave lengths that stimulate the human eye.

*** Also referred to as ‘light‘ in physics.

**** A ‘Steradian‘, also referred to as ‘square radian’ is a measurement unit of 3D conic span or ‘solid angle’. a solid angle of 1 Steradian beginning at the center of a unit sphere covers exactly an area of 1 squared on the surface of the sphere. (the whole surface area of the sphere being 4 PI). The Steradian can be thought of as the Radian’s 3 dimensional ‘cousin’.

Related posts:
IES lighting in CG
Fresnel reflections

Arnold for 3ds max – Volumetric Fog and ‘God Rays’

Software:
3ds max 2019 | Arnold 5

a

Adding a ‘Volume Light’ effect in Arnold for 3ds max is fairly simple:

  1. In the Render Setup windows > Arnold Renderer tab, under Environment, Background & Atmosphere:
  2. Click the Scene Atmosphere material slot, add an Arnold Atmosphere Volume material to it,
    And drag it as an instance to the Material Editor to edit it’s parameters.
    Untitled-3
  3. Set the Density to a higher than 0.0 value, so the material will have an effect.
  4. You’ll probably need to significantly raise the number of samples in the Atmosphere Volume material, and also the number of Volume samples in the light settings in order to get a clean render.

Untitled-1.jpg

Related:
Arnold for 3ds max Volume Shading

Realistic Spotlights for Blender & Cycles

Software:
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.

CGL_Spotlight_Presets_Pack_1.0_Previews.jpg

This slideshow requires JavaScript.


Related:

Customizable Photo-realistic Car-paint shader for Cycles
Complex Fresnel texture for Cycles
Optimized Architectural Glazing Shader for Cycles
Procedural Wood Shader for Cycles

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 photometric 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

Related:
Understanding the photometric light measurement units
IES Spotlights for Blender & Cycles

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

Software:
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….

Untitled-1

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

Cycles Light (Shadow) Sampling

Software:
Blender 2.79

By default, in Path Tracing Integrator Mode, Cycles traces one ray randomly between all lights (per each camera – AA sample).
So if some lights in the scene are more important than others this will cause inefficient light sampling.
* Especially if there are a few important lights and many unimportant ones.

Light sampling can be set per light by switching the Integrator Mode to Branched Path Tracing, making sure Sample All Direct Lights is checked, and the setting the number of samples per light in the light parameters.
* The option to set the number of samples at the light parameters is only available in Branched Path Tracing Mode.

Untitled-2

In the example below there are 3 lights.
The light on the right has 64 a samples per AA sample, while the 2 other lights have just 1 sample.

Untitled-1.jpg

More on Cycles sampling:
https://docs.blender.org/manual/en/dev/render/cycles/settings/scene/render/integrator.html#sampling