Lighting: Difference between revisions
m (otherlang2)  | 
				|||
| Line 39: | Line 39: | ||
:*<code>disablevertexlighting</code> - Only store a single lighting value for the entire model  | :*<code>disablevertexlighting</code> - Only store a single lighting value for the entire model  | ||
:*<code>disableselfshadowing</code> - Prevents the entity from casting shadows on itself  | :*<code>disableselfshadowing</code> - Prevents the entity from casting shadows on itself  | ||
:*<code>ignorenormals</code> -   | :*<code>ignorenormals</code> - Ignores normals of vertex data to calculate lighting. This is extremely useful for foliage, and other thin types of vertex meshes.  | ||
=== Dynamic light sources ===  | === Dynamic light sources ===  | ||
Revision as of 03:58, 8 August 2011
| Abstract Mapping series Discuss your thoughts - Help us develop the articles or ideas you want | 
|---|
| 
 Ammunition | List of HL2 Animals and Creatures | Mapping with Antlions | Beams and Lasers | Cables and Ropes | Moving Clouds | Color Theory in Level Design | Combat | Combine | Compression (Source 1) | Doors | Dust, Fog, & Smoke | Elevators | Level Transitions | Environmental Lighting, Sun, Weather, & Outdoors | Explosions | Fire | Half-Life 2 Foliage | Glass & Windows | Headcrab | Health | Ladders | Lighting | Optimization (level design) | Physics | Retinal scanners | Sound and Music | Special effects | Terrain | Trains | Turrets | Water | Weapons | Zombie  | 
Guides
- Adding Light - A beginners tutorial on how to set up a basic light entity.
 - Intermediate Lighting - A tutorial dealing with all the light sources in more detail.
 - Advanced Lighting
 - Constant-Linear-Quadratic Falloff - An easy-to-read explanation of the old C-L-Q light attenuation system.
 - HDR - High Dynamic Range Lighting.
 
Types
Static light sources
- light
 - A static, omni-directional point light source. (e.g. a naked light bulb or flame.)
 - light_spot
 - A static, uni-directional point light source. (e.g. a torch or flashlight) The conical beam angle cannot exceed 90°.
 - light_environment
 - Provides two linked light sources:
- A diffuse 'ambient' light (representing reflected light from clouds and the atmosphere in general) that emits from all skybox surfaces
 - A directional 'brightness' light (representing sunlight or moonlight) that is only cast in a single direction.
 
 - Both are emitted from the toolsskybox material wherever it is used on a map. See also Skybox.
 - env_particlelight
 - Illuminates particles produced by env_smokestack. Particles are not affected by normal lighting. Use (no more than) two of these to make (only) env_smokestack particles appear to reflect ambient lighting.
 - Glowing Textures
 - Brush surfaces with a light-emitting material (as defined in 
game_dir/lights.rad) applied will cast volumetric light in a 180° cone. 
Static light receivers
- Brushes
 - This Hammer Face Edit Dialog tool 'Lightmap Scale' can be used to control how sharp or diffuse the lightmap of a brush surface will be - an effect most noticeable between areas of high contrast, e.g. shadows. Note that while adding extra light sources will not affect performance, decreasing lightmap scale (i.e. increasing resolution) will.
 - prop_static
 - Unlike other model entities, prop_static are lit statically: a lighting value is stored for every vertex, and the model's collision mesh (or, optionally, reference mesh) is used to calculate lightmap shadows.
 - There are the following options:
disableshadows- Do not cast lightmap shadowsdisablevertexlighting- Only store a single lighting value for the entire modeldisableselfshadowing- Prevents the entity from casting shadows on itselfignorenormals- Ignores normals of vertex data to calculate lighting. This is extremely useful for foliage, and other thin types of vertex meshes.
 
Dynamic light sources
- light_dynamic
 - A simple, uni-directional dynamic light that can be moved, turned, and adjusted.
 - point_spotlight
 - A dynamic spotlight beam effect, with an optional dynamic light source where it hits a surface.
 - npc_spotlight
 - A spotlight NPC, similar to point_spotlight but with the capability of tracking targets.
 - env_projectedtexture
 - A dynamic light that lights with a texture rather than a solid colour, and which also 'subtracts' realistic dynamic shadows. Affects all surfaces that can accept lighting, and is used for the player flashlight in Episode Two.
 
Dynamic shadows
- shadow_control
 - Point entity used to control Dynamic Shadow projections for the entire map, including maximum distance cast, direction cast, and sharpness/diffuseness.
 - info_no_dynamic_shadow
 - Point entity used to list Brush surfaces that should not receive Dynamic Shadows.
 - prop_physics entities
 - have a "shadowcastdist" keyvalue to override how far this object casts Dynamic Shadows.
 - prop_dynamic entities
 - have a "disableshadows" keyvalue, and "enableshadows" and "disableshadows" inputs to control Dynamic Shadows cast by them.
 - NPC entities
 - have the prop_dynamic shadow controls, plus a "disablereceiveshadows" Todo: to prevent...?
 
Tyndall effects
Tyndall effects are caused by light scattering on suspended (colloid) particles in a transparent medium. Eg car headlights in fog.
- Halo (Glow Sprite) effects :
 
- env_sprite - entity used to create omni-directional glow or flare effects.
 - env_lightglow - an asymmetrical glow (for areas of contrasting light).
 - env_sun - adds a bright haloed spot to the Skybox to represent the position of the Sun or Moon.
 
- Lightbeam (Volumetric Light) effects :
 
- Brush texture : 
models/effects/vol_light001 - Brush texture : 
models/effects/vol_light002 - Model : 
models/Effects/vol_light.mdl- use with prop_static. 
- Brush texture : 
 
- See also Render Modes for sprites, particularly World Space Glow.
 
Common values
- Car Headlights
 - Brightness 
231 223 192
Note:Taken from L4D2 SDK - City 17 day
 - Brightness 
237 218 143 800 - Ambience 
190 201 220 100 - Ravenholm night
 - Brightness 
175 230 239 50 - Ambience 
43 45 57 5 - Combine lamp
 - Brightness 
147 226 240 3000 - Ambience N/A
 - Tungsten bulb
 - Brightness 
254 216 146 - Ambience N/A
 - Fluorescent bulb
 - Brightness 
159 237 215 - Ambience N/A
 
For values to accompany the stock skybox materials, see Sky List.
Notes
- Naming a light makes it more expensive. Only name lights when you need to. Multiple lights sharing the same name are cheaper than lights with separate names.
 - light_dynamic is especially expensive, and will not even show up on some systems
 - The basic light entities do not come with a visible representation (e.g. a lightbulb). For that you need a prop. See HL2 light props for a list.
 - The basic light entities do not come with a "glow" as you'd expect to see in a foggy or misty area. To provide this, either compile and run the map with HDR enabled, or add a point_spotlight (with dynamic lighting off unless needed) or env_lightglow entity.
 - Maps will not be lit unless you run vrad (or equivalent). Vrad will not run properly and will not calculate realistic light bounces unless the level is free of leaks.
 - Several textures provide their own light & can do so using 
lights.radin a mod's directory or the one insourcesdk/bin. - Moving brushed-based objects will not change the way they are lit. Their lighting will be calculated only according to their positions in Hammer. (e.g. a brush in a dark room will not become bright if it is brought into a bright room.)
 
Console commands
mat_fullbright <0-2>0is normal lighting.1is 'full bright' lighting, where everything is 100% lit.2has been introduced with the Orange Box and is 'lighting only'. It replaces all textures' images with a colourless monotone, allowing you to see exactly what is lit, where, and probably how.
See also
- HL2 light props
 - Color theory (level design)
 - Light entities - A list of light entities.
 - Intermediate Lighting
 - Advanced Lighting
 - Window lighting - How to simulate refracted sunlight through openings.
 
External links
- Lighting Tutorial - Covers entities & variables with examples
 - Quadratic/Linear/Constant in Lights