Material Reference
From Mod Wiki
This is a reference of all material keywords and parameters.
Contents
Parameters Key
These are all the parameters which can be passed to material functions and values.
| <float> | Any number. |
| <int> | An integer - any number without a fractional part. |
| <string> | Any value enclosed in quotes. |
| <index> | An integer number that is an index into an array. |
| <map> | An image map, which may include image programs (below). |
| <prog> | A vertex / frament program. Written using the GL ARB shader language. These files are stored in the glprogs directory. |
| <exp> | An expression that is evaluated every frame. |
Global Keywords for Regular Materials
| qer_editorimage <map> | Image to display in the editor |
| description <string> | Just a simple description for people using this material |
| polygonOffset | [float] offset the depth buffer to combat z-fighting |
| noShadows | Don't cast shadows |
| noSelfShadow | This material doesn't cast shadows on the model it's on (but it does on other models) |
| forceShadows | Allows nodraw surfaces to cast shadows |
| noOverlays | Overlay / Decal suppression |
| forceOverlays | Force decal overlays for alpha tested or translucent surfaces |
| translucent | The engine thinks this is a translucent material (which means no ambient/zfill pass will be done for this material) |
| forceOpaque | Opposite forces the engine to think this is a nontranslucent material. |
| twoSided | Draw the front and back. Implies no-shadows, because the shadow volume would be coplanar with the surface, giving depth fighting. |
| backSided | Draw only the back. This also implies no-shadows. |
| mirror | Use to make mirrors |
| noFog | Don't fog this surface |
| guisurf <guifile>
guisurf entity[2|3] |
This surface has a gui on it. Use "somegui.gui" to specify the gui, or entity, entity2, entity3, etc for the level designer to set it in Radiant. |
| sort <type> | Type is one of: subview, opaque, decal, far, medium, close, almostNearest, nearest, postProcess |
| spectrum <int> | Spectrums are used for "invisible writing" that can only be illuminated by a light of matching spectrum |
| deform <type> | Type is one of: sprite, tube, flare, expand, move, turbulent, eyeBall, particle, particle2 |
| decalInfo <staySeconds>
<fadeSeconds> [start rgb] [end rgb] |
Used in decal materials to set how long the decal stays, and how it fades out. |
| renderbump <args...> | RenderBump command options, without "renderbump" at the start |
| diffusemap <map> | shortcut for
{
blend diffusemap
map <map>
}
|
| specularmap <map> | shortcut for
{
blend specularmap
map <map>
}
|
| bumpmap <map> | shortcut for
{
blend bumpmap
map <map>
}
|
| DECAL_MACRO | shortcut for
polygonOffset 1 discrete sort decal noShadows |
Global Keywords for Light Materials
| noShadows | This light doesn't cast shadows. |
| forceShadows | fog, blend, and ambient lights don't cast shadows by default. This forces them to cast shadows. |
| noPortalFog | This fog volume won't ever consider a portal fogged out. |
| fogLight | Option to fill with fog from viewer instead of light from center. |
| blendLight | Perform simple blending of the projection, instead of interacting with bumps and textures. |
| ambientLight | An ambient light has non-directional bump mapping and no specular. |
| lightFalloffImage <map> | specifies the image to use for the third axis of projected light volumes. |
Global Surface Parameters
| surfacetype "<stp>" | Sets a surface type for particles and sound effects, where <stp> is one of the valid surface types. |
| solid | may need to override a clearSolid |
| water | used for water |
| playerclip | solid to players |
| monsterclip | solid to monsters |
| moveableclip | solid to moveable entities |
| ikclip | solid to IK |
| blood | used to detect blood decals |
| trigger | used for triggers |
| aassolid | solid for AAS |
| aasobstacle | used to compile an obstacle into AAS that can be enabled/disabled |
| flashlight_trigger | used for triggers that are activated by the flashlight |
| nonsolid | clears the solid flag |
| nullNormal | renderbump will draw as 0x80 0x80 0x80, which won't collect light from any angle |
| areaportal | divides areas |
| qer_nocarve | don't cut brushes in editor |
| discrete | surfaces should not be automatically merged together or clipped to the world, because they represent discrete objects like gui shaders mirrors, or autosprites |
| noFragment | dmap won't cut surface at each bsp boundary |
| collision | collision surface. if a model has no collision surfaces, then all surfaces are considered collision surfaces |
| noimpact | don't make impact explosions or marks |
| nodamage | no falling damage when hitting |
| ladder | player can climb up this surface |
| nosteps | No footstep sounds. |
Stage Keywords
blend <type> blend <src>, <dst>
Blend types: Type Src Dst
blend gl_src_alpha gl_one_minus_src_alpha add gl_one gl_one filter gl_dst_color gl_zero modulate gl_dst_color gl_zero none gl_zero gl_one bumpmap Normal map diffusemap Diffuse map specularmap Specular map
Source blend modes: gl_one Constant 1
gl_zero Constant 0 gl_dst_color The color currently on the screen gl_one_minus_dst_color One minus the color currently on the screen gl_src_alpha The alpha channel of the source image gl_one_minus_src_alpha One minus the alpha channel of the source image gl_dst_alpha The alpha channel of the screen image gl_one_minus_dst_alpha One minus the alpha channel of the screen image gl_src_alpha_saturate Minimum of the source alpha and one minus screen alpha
Destination blend modes: gl_one Constant 1
gl_zero Constant 0 gl_src_color The color of the source image gl_one_minus_src_color One minus the color of the source image gl_src_alpha The alpha channel of the source image gl_one_minus_src_alpha One minus the alpha channel of the source image gl_dst_alpha The alpha channel of the screen image gl_one_minus_dst_alpha One minus the alpha channel of the screen image
| map <map> | The image program to use for this stage. |
| remoteRenderMap <int> <int> | Width and Height of the buffer to render a remote image in to (for cameras). The entity this material is applied to has to support remote render views. |
| mirrorRenderMap <int> <int> | Width and Height of the buffer to render a mirror in to. This of course makes this stage a mirror stage, which is different from using the 'mirror' global keyword because that makes the entire material a mirror, rather than just one stage. |
| videomap [loop] <file> | This stage uses a video stream as an image map. |
| soundmap [waveform] | This stage uses a sound meter from the sound system as an image map. Specify 'waveform' to get a scope rather than bars. |
| cubeMap <map> | This stage uses a cube map as the image map. Looks for _px, _py, _pz, _nx, _ny, _nz for the positive x, y, z, and negative x, y, z sides. |
| cameraCubeMap <map> | This stage uses a cube map in camera space. Looks for _forward, _back, _left, _right, _up, and _down. |
| ignoreAlphaTest | Always use DEPTHFUNC_LEQUAL rather than DEPTHFUNC_EQUAL which is normally used for opaque and alpha tested surfaces. |
| nearest | Use nearest texture filtering. |
| linear | Use linear texture filtering. |
| clamp | Same as the global keywords. Use to override a global clamp for a specific stage. |
| zeroclamp | |
| alphazeroclamp | |
| noclamp | Use to set texture repeat for a stage when global clamp is set. |
| uncompressed | Do not compress this image in medium quality mode. |
| highquality | |
| forceHighQuality | Do not compress this image in low quality mode. |
| nopicmip | Ignore the image_downSize cvar. |
| vertexColor | Multiply the pixel color by the vertex color. |
| inverseVertexColor | Multiply the pixel color by one minus the vertex color. |
| privatePolygonOffset <float> | Explicit larger (or negative) polygon offset for this stage. |
| texGen <type> | Type is one of: normal, reflect, skybox, wobbleSky <exp> <exp> <exp>. |
| scroll <exp>, <exp> | Scroll the texture coordinates. |
| translate <exp>, <exp> | |
| scale <exp>, <exp> | Just scales without a centering. |
| centerScale <exp>, <exp> | Subtracts 0.5, then scales, then adds 0.5. |
| shear <exp>, <exp> | Subtracts 0.5, then shears, then adds 0.5. |
| rotate <exp> | Subtracts 0.5, then rotates, then adds 0.5. |
| maskRed | Don't write to the red channel. |
| maskGreen | Don't write to the blue channel. |
| maskBlue | Don't write to the green channel. |
| maskAlpha | Don't write to the alpha channel. |
| maskColor | Shortcut for
maskRed maskGreen maskBlue |
| maskDepth | Don't write to the depth buffer. |
| alphaTest <exp> | Only write if the alpha value is greater than <exp>. |
| red <exp> | Set the red vertex color. |
| green <exp> | Set the green vertex color. |
| blue <exp> | Set the blue vertex color. |
| alpha <exp> | Set the alpha vertex value. |
| rgb <exp> | Shortcut for
red <exp> green <exp> blue <exp> |
| rgba <exp> | Shortcut for
red <exp> green <exp> blue <exp> alpha <exp> |
| color <exp0>, <exp1>, <exp2>, <exp3> | Shortcut for
red exp0 green exp1 blue exp2 alpha exp3 |
| colored | Shortcut for
color parm0, parm1, parm2, parm3 |
| if <exp> | Conditionally disable stages. |
| fragmentProgram <prog> | Use an ARB fragment program with this stage. |
| vertexProgram <prog> | Use an ARB vertex program with this stage. |
| program <prog> | Shortcut for
fragmentProgram <prog> vertexProgram <prog> |
| vertexParm <index> <exp0> [,exp1] [,exp2] [,exp3] | Values to pass to the vertex program. One expression gets repeated across all 4 values. Two expressions put 0, 1 in z, w. Three expressions put 1 in w. |
| fragmentMap <index> [options] <map> | The image map to use for texture unit <index>. [options] can be cubeMap, cameraCubeMap, nearest, linear, clamp, noclamp, zeroclamp, alphazeroclamp, forceHighQuality, uncompressed, highquality, or nopicmip. |
| megaTexture <mega> | This stage uses a MegaTexture. |
Image Program Functions
These can be used anywhere that accepts <map>, and can be nested.
| heightmap(<map>, <float>) | Turns a grayscale height map into a normal map. <float> determines how "deep" the bump map appears. |
| addnormals(<map>, <map>) | Adds two normal maps together. Result is normalized. |
| smoothnormals(<map>) | Does a box filter on the normal map, and normalizes the result. |
| add(<map>, <map>) | Adds two images without normalizing the result. |
| scale(<map>, <float> [,float] [,float] [,float]) | Scales the RGBA by the specified factors. Defaults to 0. |
| invertAlpha(<map>) | Inverts the alpha channel (0 becomes 1, 1 becomes 0). |
| invertColor(<map>) | Inverts the R, G, and B channels. |
| makeIntensity(<map>) | Copies the red channel to the G, B, and A channels. |
| makeAlpha(<map>) | Sets the alpha channel to an average of the RGB channels. Sets the RGB channels to white. |