Skip to content

Surfaces and Shaders

P3rlE edited this page Oct 3, 2026 · 1 revision

Surfaces and Shaders

In Q3Rally, the surface under the tyres affects grip, skidmarks, particles and sounds. You set the surface type per texture in its shader, with a surfaceparm line.

Workflow

  1. Add the matching surfaceparm to the texture's shader in your .shader file.
  2. Compile the map with -custinfoparms (see Mapping: Getting Started).
  3. Apply the shader to the brush faces in Radiant.
textures/mymap/gravel_road
{
	qer_editorimage textures/mymap/gravel_road.jpg
	surfaceparm SURF_GRAVEL
	{
		map $lightmap
		rgbGen identity
	}
	{
		map textures/mymap/gravel_road.jpg
		blendFunc filter
	}
}

Without -custinfoparms, q3map2 doesn't know the Q3Rally surface names and the information doesn't end up in the BSP.

Surface types

surfaceparm Effect Example textures
SURF_ASPHALT Standard road grip, dark skidmarks textures/q3r_road/asphalt
SURF_DIRT Brown skidmarks and dirt particles textures/q3r_dirt_grass/dirt01
SURF_GRASS Green-tinted skidmarks, grass debris textures/q3r_dirt_grass/grass01
SURF_GRAVEL Like dirt, with coarser particles textures/q3r_dirt_grass/gravel01
SURF_SAND Loose sand, dust puffs, low grip textures/q3r_dirt_grass/sand
SURF_SNOW White skidmarks, packed-snow grip, snow spray textures/q3r_ground/snowy01–04
SURF_ICE Very low grip textures/q3r_ground/ice01, ice02
SURF_WET Water splashes from the tyres textures/q3r_liquids/q3r_water_01
SURF_METAL Sparks on impact metal grates, pipes
SURF_SLICK Extremely low grip, no skidmarks textures/common/slick
dust Raises dust clouds when driven over (standard Quake III surfaceparm) textures/common/terrain2

⚠️ Write the Q3Rally types exactly as shown, e.g. surfaceparm SURF_GRAVEL. The plain Quake III surfaceparm metal (metal footsteps) is not the same as SURF_METAL.

The Q3Rally-specific flags are defined in baseq3r/scripts/custinfoparms.txt. They must stay in sync with the engine (surfaceflags.h) and the Radiant gamepack. You can combine several flags on one texture.

🧪 Development build: roads inside a rain volume become wet, and roads inside a snow volume get packed-snow grip, even without the matching surfaceparm. See Weather.

Car reflections

Car paint reflects an environment map. Set it per map with the worldspawn key reflectionImage (default textures/reflect/chrometest2). See Race Track Entities → Worldspawn keys.

Further reading

The gamepack ships the classic Q3A Shader Manual in tools/gamepacks/q3rally.game/docs/. Everything in it applies to Q3Rally as well.

Clone this wiki locally