![]() |
![]() |
![]() |
The original Qrad3 prevents entity brush models (bmodels) like func_wall, func_door, etc. from casting light from their surfaces. ArghRad allows them to emit light, opening up many new options to control the properties of surface light. The surface lighting is set up normally on these brushes, and the modifying options are added as entity keys.
Generally, this looks best with unmoving entities, or entities that do not move much. As with all Qrad3 lighting, bmodel lighting is static. It will not move or turn with the entity, only be cast from its starting position. If the entity moves too far from where it cast its light, it can look pretty strange. Also, the light will not automatically toggle on and off with the bmodel. That effect must be simulated with triggered point lights.
Normally for bmodels, the surface light value is individually set for any faces. Giving the entity a "light" key will override the light value on all its light-emitting surfaces. For example, suppose two surfaces of a bmodel are lit with values 500 and 700. Setting "light" "1000" would make both of those surfaces emit light with a value of 1000.
Example:
{ "classname" "func_wall" "light" "800" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 0 1 500 ... } }
This option can be used to change the color of all the bmodel's light-emitting surfaces. The color of surface lights are normally computed by averaging all the colors in the texture. This option overrides that color and uses the specified RGB value instead. This looks most natural when using a texture that already is a similar color.
Example:
{ "classname" "func_wall" "_color" "1 .5 0" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 0 1 500 ... } }
Normally all surface lights are made style 0 (normal). This key can be used to change the style emitted by all of the bmodel's surface lights.
Example:
{ "classname" "func_wall" "style" "1" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 0 1 500 ... } }
The "_focus" key modifies the spread of light relative to the direction that the surface faces. A value greater than 1 makes the light spread out less, while a value less than 1 makes it spread out more. The effect is easier seen than explained. Also, due to the nature of surface lights, the results may not always be what you predict.
Example:
{ "classname" "func_wall" "focus" "2.5" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 0 1 500 ... } }
This option can be used to make all of the bmodel's light-emitting surfaces have a minimim brightness. This can be used to make a dim light-emitting surface appear to glow brighter.
Example:
{ "classname" "func_wall" "_lightmin" "250" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 0 1 150 ... } }
This command line option is provided for backward compatability with the original Qrad3. It disables bmodel surface lighting, which turns off all of the above features. The options below are unaffected, as they deal with the appearance of all the bmodel's surfaces, and not with emitting light.
Example:
arghrad.exe -nobmodlight mymap.bsp
Qrad3 has a "_minlight" key which applies a mottled light pattern to brighten up all dark areas on the bmodel's surfaces. This workes on the same confusing 0-2 scale as -ambient. ArghRad adds new "_minlighta" which does the same thing, but works on an absolute scale. For example, to set the bmodel minlighting to 20, you simply use the value 20.
Example:
{ "classname" "func_wall" "_minlighta" "15" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 ... } }
Sometimes you may want a minimum light value on a bmodel, but the mottled pattern is undesirable. ArghRad adds an "_ambient" option that works like the global ambient settings, but just on the bmodel. The specified ambient brightness is added evenly to all the bmodel's surfaces.
Example:
{ "classname" "func_wall" "_ambient" "20" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 ... } }
This alternate form of "_ambient" lets you specify the color of the ambient light to add. The value is specified as three separate brightnesses: red, green, and blue, respectively. It is NOT an RGB color value, it is three separate brightness values. This option also has the side-effect of colorizing the mottled minlight pattern if that is also present.
Example:
{ "classname" "func_wall" "_ambient" "10 15 20" { (0 0 8)(8 0 8)(8 0 0) e1u1/white 0 0 0 1 1 ... } }