DLE - Light Tool

With the light tool, the brightness and the effect of variable lights in the mine can be set.


Light tool controls

  1. Set the render depth for static lights here. Render depth means how many cubes away from a light source brightness for that light source is computed.
  2. Set the render depth for variable lights here.
  3. Chose which kind of textures should be affected by variable lights, and which shouldn't. (Realistically, lights should not be darkened by nearby variable lights, but if light positions aren't chosen very carefully, this setting will usually make variable lights effectless).
  4. Turn the real time variable light renderer on or off.
  5. Set the speed of real time variable light rendering.
  6. Let DLE display the effect of variable lights on all affected sides, or only change brightness of the variable lights themselves. The further setting gives a good impression of the overall effect of variable lights, the latter setting allows to precisely check e.g. the sequence of a group of variable lights belonging together.
  7. DLE needs a light color value for each face (segment side) bearing a light. That means you have to manually assign a light color to each such face, which can be a very time consuming process if there are a lot of lights in your level, or if you want to change the color of a certain type of light.
    To make this process easier, you can check 'use texture colors' from the preferences tool and assign colors to textures. DLE will then use that light color for each face bearing that texture. The backdraw of this method is that all faces with that texture will have the exact same light color, taking control over the lighting process from the user's hands.
    To give you the best of both worlds, you can first have DLE assign light colors to faces by checking 'use texture colors', and then uncheck 'use texture colors', check 'create side lights from textures' and make a lighting run, which will now copy the texture light colors to the faces. Now you can modify those faces that you want to cast a different light color. Make sure to uncheck 'create side lights from textures' before you make another lighting computation.
  8. Dynamic segment light is the light that is cast on objects inside that segment. It is derived from the average segment brightness (averaged over the segment's corners), and makes a level look more realistic, as objects will be brighter or darker depending on whether they are in a brightly lit or a dark area of a level.

Remarks

Default light rendering depth is up to 6 child cubes away from the light source. Usually, the light is already very dim or off in 2 - 3 child cubes distance from the light source. Child segment btw. means a segment that can be reached by walking through adjacent cubes, starting at the source segment.

The static illumination in DMB2 was flawed: When DMB2 would walk through the list of lights, calculation light values for each light's child cubes, it would affect the child cubes of previous lights in the list too due to a bug. If there were a lot of variable lights in a this could lead to reaching internal buffer limits prematurely, preventing variable lights at the end of the list to show. DLE fixes this bug.

If there should be indeed too many variable lights in a DLE will automatically reduce rendering depth until it can calculate the effects for all variable lights.


How the lighting works

Illumination sets the corner light values of each (marked, if any marked) sides depending on their distance to the lights to those lights' brightness in the level. The scaling and light render depth functions only affect how bright each light is to be considered, and how far it will reach (how slow or fast its light decays over the distance).

A 'light' is a texture with a brightness value greater than zero - you can have arbitrary textures have a brightness value greater than zero using the brightness slider in the texture tool.

So illumination sets the corner brightness values. To keep manually set values, you need to mark those areas of the level that should have them automatically set (computed), and leave the manually adjusted ones untagged.


Details

  • Brightness values are calculated per vertex (vertices basically are the segments corners).
  • If a face (segment side) has a light texture, the entire face is considered being the light; hence all vertices of that face will receive that lights brightness value.
  • Illumination will proceed to all faces in the vicinity of a light face up to a certain distance that can be reached by travelling through connected segments, and will compute the brightness of each vertex of these faces. Brightness will decay depending on geometrical (Euclidean) distance from the light source.
  • The light tools render depth sliders affects how many segments from the source face away brightness is computed; it does not affect the geometrical distance based decay function. So if the max. decay distance is smaller than the render depth, increasing render depth will not affect a level's lightning. If it is bigger than the distance that is covered by walking <render depth> segments away from the light source, increasing the light render depth will increase the distance up to where a light shines. This particularly means that light will go around corners.
  • If a vertex is in range of several light sources, their brightness from several light sources add.
  • To auto illuminate only parts of a level, mark the desired segments.

I hope this was understandable.


Colored Lights

Colored lights are only available in levels of type D2X-XL. You can assign a light color to every segment side bearing a light texture individually, or assign a color to every light texture. This is done in the texture tool. While the further allows more customization, the latter is easier, as DLE will automatically use a light texture's color wherever that texture is used. To enable this, check 'use texture colors' in the preferences dialog.


Tips and Tricks

You can manually edit the corner lights. You must not use the illumination function on these lights and nearby textures though. Tag the cubes to be automatically lit before employing the illumination function. The backdraw is that DLE will not be able to properly mix the lights of adjacent marked and untagged level regions.

To have a light somewhere w/o a light texture, use the 'empty light' texture as secondary (overlay) texture. That way you can achieve neat lighting effects. To get more control over illumination without using light textures, you can use some otherwise unused texture as primary texture and give it an appropriate brightness value to have its surroundings lit the way you want it, and place the desired wall texture over it as an overlay.


For Level Designers

Read some in-depth information about level lighting the lighting how-to


News

A new D2X-XL update fixing broken screen resolution persistence is available

There is yet another D2X-XL update is available (the new Pumo Mines broke a few things ...)

Believe it or not: There's a new D2X-XL version online!

Uploaded updated D2X-XL and library source code that compiles with Visual Studio 19

After a really long time, another new DLE version is available

A new DLE version is available (hear, hear!) :D

A new Max OS X version of D2X-XL is available!

D2X-XL now offers a cartoon style render mode!

New D2X-XL and DLE versions are available

Blarget has got his own area in the level spotlight

New D2X-XL and DLE versions are available

A couple of levels have been added to the level spotlight

Hooray! We're finally having a new Mac OS X version of D2X-XL!

D2X-XL now features an observer mode for multiplayer games

A new D2X-XL version with improved multiplayer synchronization is available

A new D2X-XL version fixing out of sync problems in multiplayer games is available

A new D2X-XL version with many multiplayer bug fixes is available

Added high quality (ogg) Descent 1 and 2 music to the downloads area

A new D2X-XL version with important bug fixes is available

D2X-XL compiles and runs on Linux again!

Descent 1 and 2 high res textures are now available as complete downloads

A new DLE version with a ton of bug fixes and improvements is online

A new D2X-XL version is online

A new D2X-XL version with a much needed bug fix is online

A new DLE version is online

Published another DLE version with more bug fixes and improvements by Sirius

Published a new D2X-XL version

Published a new DLE version with tons of bug fixes and improvements by Sirius

D2X-XL now supports Oculus Rift 3D headsets!

Updated DLE and D2X-XL to support new level features requested by Pumo

Added an article about DLE's new tunnel generator to the worklog

DLE's new tunnel generator is finished

Added a new article to the worklog

Published a new DLE version

Added a new article to the worklog

Added two new articles to the worklog

D2X-XL and DLE-XP now support triangular segment sides!

DLE-XP has an OpenGL render and 1st person view!

New DLE-XP version available

Wrote a new worklog article

Check out DarkFlameWolf's level spotlight section!

New DLE-XP and D2X-XL versions are available

A new DLE-XP version is available

Added a worklog article about the way point feature

Added way point support to DLE-XP and D2X-XL

Posted a bunch of new screenshots

Posted a bunch of new screenshots

A New version of DLE-XP is available

New OS X version of D2X-XL is available!

Added article about lightmaps to worklog.

New article and video added to worklog.