8.9 KiB
Materials: Commands
surfaceparm
Overview
The surfaceparm keyword is not only read by the VMAP compiler, but also by the renderer. A few keywords will only apply to any one of them.
All surfaceparm keywords are preceded by the word surfaceparm as follows:
:
: surfaceparm **fog**
Behaviour Keywords
Commands that affect core functionality of a surface, or could impact the entire room or the gameplay surrounding it.
areaportal
A brush marked with this keyword functions as an area portal, a break in the VMAP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the areaportal.
clusterportal
A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It is typically placed in locations that are natural breaks in a map, such a sentrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the areaportal.
donotenter
Read as "do not enter." Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features.
lava
Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush.
nodamage
The player takes no damage if he falls onto a texture with this surfaceparm
nosteps
The player makes no sound when walking on this texture.
nonsolid
This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to triggers, hint brushes and similar brushes. This affects the content of a brush.
origin
Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be rectangular (or square). The origin point is the exact center of the origin brush.
playerclip
Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked playerclip. The intended use for this is to block the player but not block projectiles like rockets.
slick
This surfaceparm included in a texture should give it significantly reduced friction.
slime
Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush.
structural
This surface attribute causes a brush to be seen by the VMAP process as a possible break-point in a BSP tree. It is used as a part of the material for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by default, structural, so you shouldn't need to specify this.
water
Assigns to the texture the game properties for water.
climb
Marks the desired surface as a climbable surface. This currently affects the entire volume.
vehicleclip
Blocks all movement of vehicle entities through this surface.
leakssteam
When this surface is impacted, steam will leak out temporarily. Specific to The Wastes 1.3.
leakswater
When this surface is impacted, water will leak out temporarily. Specific to The Wastes 1.3.
fl_r1
Reserved for custom games. This can be anything.
fl_r2
Reserved for custom games. This can be anything.
fl_r3
Reserved for custom games. This can be anything.
fl_r4
Reserved for custom games. This can be anything.
fl_r5
Reserved for custom games. This can be anything.
fl_r6
Reserved for custom games. This can be anything.
fl_r7
Reserved for custom games. This can be anything.
Rendering Keywords
Commands that affect rendering of a surface, or the how surfaces are made to look by the compiler. These do not affect gameplay function.
alphashadow
This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the VMAP process to use the texture's alpha channel as a mask for casting static shadows in the game world.
Design Note: Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows.
fog
Fog defines the brush as being a "fog" brush. This is a VMAP function that chops and identifies all geometry inside the brush. The General material keyword fogparms must also be specified to tell how to draw the fog.
lightfilter
Causes the VMAP light stage to use the texture's RGB and alpha channels to generate colored alpha shadows in the lightmap. For example, this can be used to create the colored light effect cast by stained glass windows. This can be used with surfaceparm alphashadow if an alpha is to be respected.
nodlight
Read as "No DeeLight". A texture containing this parameter will not be affected or lit by dynamic lights, such as weapon effects. The VMAP compiler doesn't really care about this, but the renderer does.
nodraw
A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin brushes, and so on. Light will pass through it, therefore beware of bleeding issues when using nodraw/caulk textures with this.
nodraw2
Same as nodraw, but the engine won't draw it, whereas the VMAP compiler will react to the surface. So unlike nodraw, light will not pass through these surfaces.
noimpact
World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave marks.
nomarks
Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. This is useful to keep lights from being temporarily obscured by battle damage.
Blob shadows (aka r_shadows 1) also counts as a mark. So any surface that you don't want to see affected by shadows should receive this surfaceparm.
nolightmap
This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not require the addition of an rgbGen identity keyword in that stage.
trans
Light will pass through this surface, but only if either alphashadow or lightfilter are applied. Tells VMAP that pre-computed visibility should not be blocked by this surface. Generally, any materials that have blendfuncs should be marked as surfaceparm trans.
Material Related Keywords
Specifies which impact effects and footstep sounds are played when interacting with a given surface. Only one of them can be given at once:
alien
Defines that the surface is of an 'alien' material. Affects impact sound and effects.
flesh
Defines that the surface is of flesh. Affects impact sound and effects.
foliage
Defines that the surface is foliage. Affects impact sound and effects.
computer
Defines that the surface is of computer parts. Affects impact sound and effects.
dirt
Defines that the surface is of dirt. Affects impact sound and effects.
vent
Defines that the surface is a vent. Affects impact sound and effects.
grate
Defines that the surface is a grate. Affects impact sound and effects.
metal
Defines that the surface is of metal. Affects impact sound and effects.
glass
Defines that the surface is of glass. Affects impact sound and effects.
sand
Defines that the surface is of sand. Affects impact sound and effects.
slosh
Defines that the surface is of a liquid. Affects impact sound and effects.
snow
Defines that the surface is of snow. Affects impact sound and effects.
tile
Defines that the surface is of kitchen/bathroom tiles. Affects impact sound and effects.
wood
Defines that the surface is of wood. Affects impact sound and effects.
concrete
Defines that the surface is of concrete. Affects impact sound and effects.