| Home Page | Recent Changes | Preferences

Lighting Strategies

So you want to be hailed for great lighting in your map? You have to understand how real light works and what tools are available in Unreal to emulate it.

Understanding How Light Works

Since Unreal lights do not follow real light physics, its lighting can easily look fake. However, there are a variety of Unreal lights that can make lighting look real. It is first helpful to understand how real light works.

  • parallel light rays, such as sunlight, create hard edged shadows
  • refracted light rays due to overcast skies or fog create soft edged shadows
  • light fades exponentially in air (it gets darker as it distance from the source increases)
  • light generally scatters in all directions
  • light bounces off surfaces
  • light is absorbed by surfaces
  • light carries a surface's color
  • light sources have a distinct color temperature
  • light sources have a small but bright hotspot

The Primary Light Types

As you master lighting with Unreal, you will find the majority of your light combinations will be only two. All lights will be affected by the minor tools:

[light.steady]

Light Type: Steady, Light Type: None

The steady light with no effect has a quick falloff to the unbra shadow. Since only a small portion of the radius is lit (what we call a hotspot) and a large portion is in shadow, it is a good type to use for 'atmosphere' or 'mood' because it will highlight a specific area while coloring everything around it with just enough light to make it visible, yet dark enough to be threatening.

[light.nonincidence]

Light Type: Steady, Light Effect: Non-Incidence

The opposite of the steady/none light is the steady, non-incidence light. It emphasizes the hotspot by spreading it out over a wide area then quickly falling off into the shadow umbra. It is a good choice to light a large area smoothly without making things to light or dark.

[light.cylinder]

Light Steady Light Effect: Cylinder

The cylinder is worth mentioning because it is primarily used when even floor lighting is desired, especially on terrain in UT. However, UT2003 uses a better method with the Sunlight actor.

Faking realistic light

By considering real light characterstics, the following technique demonstrates how to closely mimic real lighting in Unreal.

[real.light1]

This light is used as the hotspot. It is not showing the torch graphic because its texture been changed to a corona to imitate a flare.

  • Radius: 8 (very small)
  • Brightness: 255 (100%)
  • Light Effect: Steady. This light type fades to shadow starting almost at the center of the light source, which is why we cranked the brightness. The small radius allows us to emphasize the hotspot.
[real.light2]

This is our falloff light that scatters around.

  • Radius: 12 (small)
  • Brightness: 96 (40%)
  • Light Effect: Non-incidence. This light type fades light very slowly then quickly fades to shadow at the edge of the light radius. It is a good type to use when you want to light up an area smoothly but not overexpose surfaces.
[real.light3]

This is our bounce light near the closest surface that reflects the light back onto the scene. If this were a different colored wall, the dominate hue of that exture could be used on this light.

  • Radius: 24 (medium small)
  • Brightness: 72 (33%)
  • Light Effect: Non-incidence. Same reasons.

Things to Note

  • It takes a minimum of 2 lights (hotspot and falloff) to look good
  • Bounced light isnt necessary, but adds to the realism effect
  • One bounce light may be used if multiple lights in an concentrated area are used.

Fully lit lights on Gradient Shadowed Textures

If you want a magnitude of light fixtures flush with a gradiantly shadowed surface surface, there is a few problems that need to be solved:

  • Adding each light fixture into the surface as a solid creates BSP cuts
  • Adding each light fixture 1 pixel from the surface as a nonsolid is tedious.
  • Each light fixture must have its own light actor and there is a limit (around 1000) that Unreal is limited to.
  • Each light actor will light in a spherical or cylindrical radius, limiting your light fixture shapes and/or lighting undesired areas.

All of these issues can be solved.

[unlit.light.mask.on.surface1]

The surface fades from light to shadow nicely, but the rectangular light fixtures in shadow are darkening too. If we were to add a light for each fixture, we would run out of lights to use very quickly.

[unlit.light.mask.on.surface2]
  • Add a nonsolid sheet 1 grid unit away from the (blue) trim brush
  • Make the sheet the same height or width as the the trim
[unlit.light.mask.on.surface3]
  1. The trim brush uses a texture that has the light fixture drawn in so it will appear flush
  2. The sheet brush uses a texture that only has the light fixture and the rest is masked. This will allow the underlying texture to show through.
[unlit.light.mask.on.surface4]
  • The sheet surface is set to both to mask and unlit to allow the light mask be full bright while the underlying texture receives the gradient of light to shadow.
  • Only one light was used instead of one for each light fixture.

Lights in a Dirty World

When light is in an area of where minute particles are floating the air, we can see the light hitting those particles, resulting in a light beam. 3D engines dont account for air particles (yet), so they fake it. In Unreal, they are called lightboxes.

Most mappers mix lightboxes with lights without beams. By mixing the two types, it suggests that particles reside in a confined space. In reality, you would have all light sources in a given area show a beam at differnet intensities because of the particles floating in that area.

Rather than make multiple itensity levels for various light sources, you can encompass all light sources with fog, placing light boxes inside the area and let the fog's density level suggest the particle boundary.

Sky Light

This is the easiest method for creating nice shadows. Creating a skybox and sticking a grated (or glass criss-crossed with some sort of grating) window works with just about any (indoor) theme. Once you've constructed the beams and grate architecture, stick a light behind them on the skybox surface. Change its brightness, radius and light type and the beams will cast shadows onto your walls and floor.

Wall Lights

About the only thing I can think of for creating shadows in this sense is to make a corridor with pillars or supports running down it. Put lights in between each pillar with high brightness and low radii. Rebuild, and watch as each light spills out from the pillar and there is a shadowy area between the lights.

Spotlights

Hard shadows

Cylindrical lighting

  • When it can be useful

Conclusion

To create shadows just about anywhere, just use high brightness, low radius lights. They'll light a small area, making a sharp contrast between that light and the darker areas around it. Just make sure that you allow enough light for gameplay purposes instead of focusing on atmosphere alone. Darkness may be cool in single-player maps, but in multiplayer maps, it's best to give the players some light.

Related Topics

Comments

Sobiwan: I'm opening another can of worms. :)

Tarquin: Seems like a good idea :)

Sobiwan: I read somewhere that you weren't good at lighting. If that's true, we're gunna change all that! :)

Tarquin: My problem is that the hotspot light never looks quite right - it always lights up things around the light fitting or even behind it, that shouldn't be. Nice terminology, by the way – "hotspot", etc. Makes it easier to absorb. Plus I find lighting so tedious and slow – make tiny change, rebuild lighting... it still sucks, make tiny change, rebuild....etc

Sobiwan: Have you tried special lit to control where light goes?

Sobiwan: merged "Shadows" here.


Category Mapping
Category Tutorial
Category To Do

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

Mapping Topics

Mapping Lessons

UnrealEd Interface

Questions&Answers

Scripting Topics

Scripting Lessons

Making Mods

Class Tree

Questions&Answers

Modeling Topics

Questions&Answers

Log In