Light sources

From Blood Wiki
Jump to: navigation, search
Darkplaces lighting | previous chapter: Special effects

Contents

This page is not finished
You can help by editing and extending it.

[edit] Static lightsources

[edit] Dynamic lightsources

[edit] World lights

Worlds lights are loaded from external .rtlights file supplied with a map (foo.bsp will try to load foo.rtlights). If there are not .rtlights file, engine tries to load lights from a map "light" entities, which often is grude and terrible slow (as "lights" are maked for map compiler LIGHT stage raytracer, not for reatime rendering). So producing a good .rtlights folr is very first step in a process of map creation.

World lights are static, meaning they canot be moved, rotated, altered during a game.

Tip: Blood Omnicide is using world lights to place lights for a Q3map2 LIGHT phase. So unlike Quake, which should have both "light" entities and .rtlights, Blood Omnicide .rtlights containins all map static lights

Each world light can have this parameters:

  • origin : position
  • angles : rotation
  • color : RGB light color
  • radius : radius of light in game units
  • corona : corona intensity (0 to disable)
  • coronasize : size of corona (this is multiplier to light radius)
  • style : lights style number (see lightstyles above)
  • shadows: whether to cast shadows from light
  • cubemap : a path to cubemap filter texture
  • ambient : ambient light intensity (ignores shading, makes lighting to be more 'flat')
  • diffuse : shading light intensity (default is 1)
  • specular : specular intensity (default is 1)
  • normalmode : if this flag is set, light will be draws if cvar r_shadow_realtime_world is 0
  • realtimemode : if this flag is set, light will be draws if cvar r_shadow_realtime_world is 1
Tip: A combination of normalmode = 0, realtimemode = 0 to mark lights which are only appear on lightmap
Tip: Light style 1 will make a dynamic lights that will not appear on lightmap
Tip: Cubemap-filtered lights dont appear on lightmap

Console variables:

 r_shadow_realtime_world : Enables rendering of full world lighting (whether loaded from the map, or a .rtlights file, or a .ent file, or a .lights file produced by hlight)
 r_shadow_realtime_world_lightmaps : Brightness to render lightmaps when using full world lighting
 r_shadow_realtime_world_shadows : Enables rendering of shadows from world lights
 r_shadow_realtime_world_compile : Enables compilation of world lights for higher performance rendering (shadow volumes only)
 r_shadow_realtime_world_compileportalculling : Enables portal-based culling optimization during compilation (overrides compilesvbsp)
 r_shadow_realtime_world_compileshadow : Enables compilation of shadows from world lights for higher performance rendering (shadow volumes only)
 r_shadow_realtime_world_compilesvbsp : Enables svbsp optimization during compilation (slower than compileportalculling but more exact)
Tip: In Blood Omnicide, this console varisables are hardcoded since its using a combination of full realtime lightning and lightmaps. Tweak this settings only for debugging purposes or if you want to break something.

[edit] Dynamic lights

Dynamic lights are cast from entities. This could be both server-side entities such as rockets or client-side entities such as explosions.

 r_shadow_realtime_dlight : Enables rendering of dynamic lights such as explosions and rocket light
 r_shadow_realtime_dlight_portalculling : Enables portal optimization on dynamic lights
 r_shadow_realtime_dlight_shadows : Enables rendering of shadows from dynamic lights
 r_shadow_realtime_dlight_svbspculling : Enables svbsp optimization on dynamic lights



Next chapter: Tweaking
Back to index | Top of the page

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox