Background Background Background Background Background Background


Quake III Common Shaders

When you first start mapping for Quake III or any Quake 3 mod, you’ll notice a special texture set called common shaders. These are often used to give brush volumes particular properties when compiling, for 3 main reasons; gameplay, collision and optimization.
It is best practise to have all sides of 1 brush have the same properties, this is where most of these shaders gain their use, the others are for player/bot collisions or to assist brush based entities in how they function.

You can find more common shader texture packs on my downloads page. Below is a mixture of the qRadiant defaults + source common textures.

One of the first shaders you’ll use constantly is caulk. Caulk is an invisible texture that tells the game not to draw that surface. In practice, this means you should texture every side of a solid brush that the player will never see with caulk. This keeps your maps efficient, the renderer won’t waste time or memory on faces hidden inside walls. A good habit is to caulk everything first, then apply visible textures only where needed. It’s one of the most important tools for performance and clean design.

Closely related to caulk are the nodraw shaders. They are similar to caulk in that they don’t render, but should be used on nonsolid brush volumes. Nodrop is another special variant, if an item falls into a nodrop volume, it disappears instead of cluttering the map. Designers use it over lava pits or voids so players don’t see dead bodies at the bottom of the map and any flags dropped into this volume are returned.

Collision is another area where common shaders are used. clip is an invisible barrier that blocks players but not projectiles. It’s used to smooth player movement around complex geometry, like trimming off sharp edges so the player glides past instead of snagging or to stop players from accessing parts of the map they shouldn't.

Weaponclip goes a step further, it blocks both players, bullets and projectiles. If you have a fence or railing you want players to shoot over but not through, clip is fine. If you need to prevent bullets from slipping through cracks, weaponclip is the better choice.
There’s also botclip, which only blocks bots, leaving human players unaffected. This can keep bots from getting stuck in tricky areas without ruining the player’s experience. donotenter is also a volume for bots, where it will allow bots to pass through if they have to, but will often try not to. If they end up inside this volume somehow, they will try to exit.

Another important tool is hint and its partner skip. q3map2 breaks your map into clusters to decide what parts should be visible at once. By placing hint brushes with one face textured in hint and the rest in skip, you can control where these splits happen. This means you can dramatically improve performance by preventing the engine from rendering rooms that the player can’t see. Beginners don’t always need to use hint brushes, but learning them is key for advanced optimization. Skip is used to help further optimize the process by not causing VIS splits along its surface.

Some shaders deal with entities and their movement. origin is used for defining the pivot point of entities like rotating doors or platforms. You create a small brush with the origin texture, include it in the entitiy group, and the engine will take the centerpoint of that brush as the origin of rotation/movement. Similarly, trigger is used for invisible volumes that activate events when a player passes through the volume. It has no visual presence in-game but defines where the interaction happens.

There are also shaders for special surfaces. slick makes solid surfaces slippery, so players will slide across them like ice. In Urban Terror, this surface also restricts the player from walljumping.

Lightgrid is a shader that can be used to redefine the bounds of the lightmapgrid to the map compiler. A long time ago, this was to reduce .BSP data to only calculate lightgrid data in zones where the player is expected to be, these days it's not worth the time.

Finally, there’s areaportal, which is one of the more technical shaders. It’s usually placed inside doors. When the door is closed, the areaportal seals visibility between two areas, so the renderer doesn’t bother drawing geometry behind the door. This makes indoor maps much more efficient, since only the room you’re in is being rendered. Though I would advise against using this for multiplayer, as ping delay will cause rendering delays with anything on the other side of this surface.