Light Textures and Falloff Images: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Line 5: Line 5:
Lunaran (Matthew Breit) did an in depth look and the performance aspects of Light Shaders in Id Tech 4 and found that there is no performance loss for applying falloff Images and light texture to all lights on your map. He used this new-found insight to develop a technique for making the most of light textures. Essentially he took screen-shots from specific views of his map where light volumes affected the geometry in a predictable way and then painted light textures that conform to the contours of the space and surfaces shown in the screen-shots.
Lunaran (Matthew Breit) did an in depth look and the performance aspects of Light Shaders in Id Tech 4 and found that there is no performance loss for applying falloff Images and light texture to all lights on your map. He used this new-found insight to develop a technique for making the most of light textures. Essentially he took screen-shots from specific views of his map where light volumes affected the geometry in a predictable way and then painted light textures that conform to the contours of the space and surfaces shown in the screen-shots.


Lunaran's method involves not only shaped point and omni lights but also a shaped ambient (that is the deluxe method). Even without shaping the ambient a couple of custom-textured point lights can give you much richer lighting that the standard squares and circles that are commonly used.
Lunaran's method involves not only shaped projected and omni lights but also a shaped ambient (that is the deluxe method). Even without shaping the ambient a couple of custom-textured point lights can give you much richer lighting that the standard squares and circles that are commonly used.


To help you understand how these textures work you should imagine the silly flashlight mods for Doom 3 that cause your flashlight to show a pattern (like Bart Simpson's face or a Heart) on the surface that you shine the light on. Instead of shining these types of silly images, we are going to shine images that make the lighting look better by pretending to do stuff that real light does like bouncing of the ground or a wall.
To help you understand how these textures work you should imagine the silly flashlight mods for Doom 3 that cause your flashlight to show a pattern (like Bart Simpson's face or a Heart) on the surface that you shine the light on. Instead of shining these types of silly images, we are going to shine images that make the lighting look better by pretending to do stuff that real light does like bouncing of the ground or a wall.

Revision as of 16:36, 10 August 2010

Introduction

While The Dark Mod comes with a rich library of Light Shaders and Textures there are times when mappers may wish to customize the look of lighting further. Light Textures can be used for basic light painting tricks like projecting window-panes light on a floor to advanced uses like simulating the look of a baked light-map.

Lunaran (Matthew Breit) did an in depth look and the performance aspects of Light Shaders in Id Tech 4 and found that there is no performance loss for applying falloff Images and light texture to all lights on your map. He used this new-found insight to develop a technique for making the most of light textures. Essentially he took screen-shots from specific views of his map where light volumes affected the geometry in a predictable way and then painted light textures that conform to the contours of the space and surfaces shown in the screen-shots.

Lunaran's method involves not only shaped projected and omni lights but also a shaped ambient (that is the deluxe method). Even without shaping the ambient a couple of custom-textured point lights can give you much richer lighting that the standard squares and circles that are commonly used.

To help you understand how these textures work you should imagine the silly flashlight mods for Doom 3 that cause your flashlight to show a pattern (like Bart Simpson's face or a Heart) on the surface that you shine the light on. Instead of shining these types of silly images, we are going to shine images that make the lighting look better by pretending to do stuff that real light does like bouncing of the ground or a wall.

As you have probably guessed, since this is a real light it DOES affect the Light Gem.

If someone has advanced knowledge, they could bake light-bounces to a UV mapped texture of a Model created from exported brush-work and then unwrap the texture and copy a portion of it into an image editor to be saved as a light texture as well. This tutorial is just for an artistic-style "winging-it" approach.

Step 1 Planning

Once you have your map or map section built you will need to decide what lights will be direct and where you might want bounced light or moonlight to hit your geometry. If you have placed lights all over the place to approximate these bounced effects then you will need to pare-down some lights.

Step 2 Screen-Shots

Whether you decide to use the deluxe method with a shaped ambient or just a couple of custom lights (here and there) unless you have a perfect memory for proportions, screen-shots will help you design the light texture and falloff texture.

If you decide to use the deluxe version shaped ambient, a top-view view of your map would probably be the best option.

For Lunaran's Projected light example, he shows a side-view screen that has an easy to predict light pattern (like a light waterfall).

If you have a good eye and want to create a show-piece look for some building (etc) you could use a straight view shot and use that to make a very detailed light texture that would be projected straight at the front view surface. I would caution, however, against using sharp contrast and instead make sure that every adjustment is a smooth gradient. The normal maps and geometry will do the rest of the work to create the details.

Load your screen-shot into your preferred image editor Photoshop, Gimp (etc) and create a new layer. Paint the lighting as desired to the new layer. Merge this layer with a black layer and save this merged image as a TGA texture.

You will be doing this twice: Once for the Z-Axis (direction of the light projecting from the source), the other for the XY direction (the surface that the light hits).

I will recommend that you include "Z" and "XY" in the names of the textures so that you can easily distinguish them for the material light shader.


Example Z-Direction Texture: My_Custom_Light1_Z.tga

Example XY-Direction Texture: My_Custom_Light1_XY.tga

Step 3 Material Definitions

If you haven't already done so, please create a separate folder for your map files. In this folder, create the following sub-directories:

Materials

Lights

Place your new textures into the Lights directory.

Open a text editor like Notepad++ or Wordpad and create document using this as a template:


lights/My_Custom_Light1

{

lightFalloffImage makeIntensity( lights/My_Custom_Light1_Z.tga )

{

forceHighQuality

map gfx/lights/My_Custom_Light1_XY.tga

zeroClamp

}

}

Save this document and change the extension from ".txt" to ".mtr" and copy it to your new Materials directory.


Step 4 Dark Radiant Light Definitions

1) Select an existing light or create a new light

2) ... (I believe you can browse for Light Textures in the Light Inspector...? If not, you would have to type this path in too...?)

3) Manually type the path to your Material Definition in the Entity properties pane

(unfinished)

Step 5 Resize the Light

Try to maneuver to where you created your original screen-shot.

Position the light and light texture so that it matches the orientation that you used in your screen-shot plan image.

Example Light Shader

(from Strombine)


lights/aa_1_sky1

{

lightFalloffImage makeIntensity( gfx/lights/1_sky1_z.tga )

{

forceHighQuality

map gfx/lights/1_sky1_xy.tga

red Parm0 * 2

green Parm1 * 2

blue Parm2 * 2

zeroClamp

}

}

Example Ambient Light Shader

(from Strombine)


lights/aa_1_amb1

{

ambientLight

lightFalloffImage makeIntensity( gfx/lights/xrampup.tga )

{

forceHighQuality

map gfx/lights/1_amb1_xy.tga

colored

// zeroClamp

}

}

TDM Examples

Look in tdm_textures_base01

tdm_light_shadows

tdm_light_textures

Links and References

Light Baking Thread:

http://modetwo.net/darkmod/index.php?/topic/11416-light-baking/

Strombine:

http://www.lunaran.com/page.php?id=165

Strombine at Quake3world:

http://www.quake3world.com/forum/viewtopic.php?t=29872

Kabits Outdoor lighting (references a similar approach)

http://www.katsbits.com/tutorials/idtech/dynamic-outdoor-lighting-techniques.php