ANALYSIS

 

RICHARD BURNS RALLY ANALYSIS


CLOUDS

  • Clouds.ini: Text file, the only one easily modifiable. It declares the 7 skybox textures and their rendering parameters (DXT3 format, filtering, opacity). This is your entry point for changing the textures used.

  • Clouds.lbs: Completely empty (0 bytes). It is likely a placeholder that the RBR engine expects as a marker file, or a reserved entry for track data that does not apply to the clouds module.

  • Clouds.trk: A renamed ZIP archive. It contains 21 .dds textures split into 3 folders according to ground weather: damp/, dry/, wet/. Each folder has the same 7 skybox textures adapted to the lighting atmosphere. You can open it directly with 7-Zip.

  • Clouds_textures.rbz: The most interesting and complex file. It is a compiled binary containing:

    • The 7 texture references (paths MAPS\GLOBAL\SKYBOXES NEW TECH\*.tga)

    • 12 .KSH shaders (including _02 variants that the .ini does not declare!)

    • A structured header: version=8, 23 shaders in total, 7 textures

    • DDS textures: damp/ (7 files), dry/ (7 files), wet/ (7 files)

  • Important observation: The .lbs contains _02 shaders (US_CLOUDED02.KSH, US_OVERCAST02.KSH, etc.) that are not referenced in the .ini. These are likely quality or special condition variants. If you want to activate them, you would need to add entries to the .ini.

  • 7 available weather states:

    • CLEAR => clear weather

    • CLEAR02

    • CLOUDED => darkened, cloudy

    • OVERCAST => overcast

    • PARTLY_CLD => partly cloudy

    • PRECIP => precipitation, rain

    • PRECIP_PC

Track No. 41 – Mont Blanc - Cote D'Arbroz

  • track-41_M.col: Collision mesh (GLS Binary format). 173 nodes, 25,984 collision triangles, 14,928 vertices. This determines where the car "grips" the ground.

  • track-41_M.dls: Dynamic file containing the DriveLine (guiding line for pace notes), Chimney_Smoke (start line chimney smoke), and 4 animation sequences: start_animation1/2 and end_animation0/1 (start lights, finish animations).

  • track-41_M.fnc: Small file of 1,128 bytes containing 9 checkpoints with their 3D positions, and referencing two objects: Mb_fence_tile and Mb_fencestolpe (start/finish fence posts).

  • track-41_M.ini: The only 100% readable and hand-modifiable file. It declares 34 textures with their rendering parameters. Priority entry point for changing track visuals. 3 defined weathers. Shadows and Lights.

  • track-41_M.lbs: The largest file (20 MB). Binary compiled shaders with 26 .KSH references: trees (spruces, oaks), fences, signs, spectators. Not directly modifiable — original .KSH files would be needed.

  • track-41_M.mat: Surface materials with the 9 weather/wear variants. Contains "Mont blanc standard dry new/normal/worn", damp, wet — this is where the engine knows how the road physically reacts depending on the weather.

  • track-41_M.trk: 3D track geometry. The track measures approximately 786 × 644 × 182 meters, with 311 objects and 9,956 triangles. This is the file that BTB generates automatically.

  • track-41_M_textures.rbz: Renamed ZIP archive (openable with 7-Zip). Structure in 3 × 3 subfolders: damp/, dry/, wet/ × new/, normal/, worn/. This is where all DDS textures adapted to each weather condition and track wear are located. Very important for improving visual rendering.

  • Texture weather states: dry/new, dry/normal, dry/worn, damp/new, damp/normal, damp/worn, wet/new, wet/normal, and wet/worn

Track Configuration

  • Tracks.ini: The global track registry. It defines the entire engine file structure in the [General] section: each extension corresponds to a role (lbs = visual shaders, trk = physics, dls = driveline, col = collision, mat = materials, fnc = checkpoints). Each [MapNN] section declares a track with its TrackName and particle system. For your BTB track, track 41 uses ps_montblanc — this file defines particle effects (dust, gravel, etc.) for the France/Mont Blanc environment.

  • TrackSettings.ini: The most important file for visually improving your tracks. This is where all lighting and weather are defined. Section nomenclature follows the scheme [NNX_weather_condition] where NN = track number, X = time of day (M=morning, E=evening, N=night, O=overcast) and weather is crisp_clear, hazy_partcloud, heavyrain_heavycloud, etc.

ParameterDescriptionRange / Values
SunDirSun direction (normalized XYZ vector)

-1.0 to 1.0

Sun_IntensitySolar light intensity

80 to 140

SunOffsetSolar light offset

-1.0 to 1.0

AmbientRed/Green/BlueAmbient light color

0.0 to 1.0

DiffuseRed/Green/BlueDiffuse light color

0.0 to 1.0

FogRed/Green/BlueFog color

0.0 to 1.0

FogStart / FogEndFog start/end distance in meters

-200 to 10000

UseFogEnables fog

true/false

CloudNameCloud skybox name to use

Us_clear, Us_clouded…

Cloud_ScaleCloud layer scale

0.0 to 10.0

SkyboxNameBackground skybox

Morning_clear, Evening_clear

SkyboxSaturationSky color saturation

0.0 to 1.0

Skybox_ScaleSkybox scale

0 to 100

Specular_AlphaSpecular reflection intensity

0.0 to 1.0

Specular_GlossinessReflection glossiness

1.0 to 14.0

Rayleigh_MultiplierAtmospheric scattering (sky blue)

0.0 to 1.0

Mie_MultiplierParticle scattering (haze)

up to 0.001 0.1

ExtinctionLight absorption

0.1 to 1.0

InscatteringLight scattered toward player

0.0 to 1.0

Greenstein_ValueScattering anisotropy (-=back, +=front)

-1.0 to 1.0

TurbidityAtmospheric turbidity (heat haze)

0.0 to 9.0

Terrain_ReflectanceGlobal terrain reflectivity

0.0 to 0.2

Car_Ambient/Diffuse_LightingCar lighting multipliers

0.5 to 2.0

Car_Shadow_AlphaCar shadow intensity

0.0 to 1.0

SuperbowlFogStart/EndDistant skybox fog, highly variable
Superbowl_ScaleDistant fog intensity

0.0 to 1.7

MipMapBias / MipMap_BiasTexture quality/sharpness

-3.0 to 0

  • Important observation: To create a new weather entry for your track (e.g., track 41 in clear morning weather), you copy an existing block like [41M_crisp_clear] and adjust the values. The most visually impactful modifications are SunDir + Sun_Intensity (angle and strength of the sun), FogStart/End + FogRed/Green/Blue (atmospheric mood), and SkyboxSaturation + Rayleigh_Multiplier (vividness of sky colors).

Particle System

  • PS_MontBlanc.ini and PS_MontBlanc_LOW.ini: These files define everything coming off the wheels, ground, and car according to terrain type and weather. Structure is always: Particle Classes → Emitter Classes → Emitters → Signal Handlers.

3-Layer Architecture

  • Particle Class — defines a particle's appearance (sprite, color, size, lifetime, weight, rendering mode).

  • Emitter Class — defines the physical behavior of emission (type, force, dispersion).

  • Emitter — concrete instance with a memory budget (max num particles) and emission rate.

  • Signal Handler — links a ground material (number) to an emitter, with speed-based flow modifiers.

Key Differences Normal vs LOW

AspectNormal (31 classes)Low (26 classes)
Particle classes

31

26 - missing: mb_grass_b, mb_pebbles, mb_tirespray_WET, mb_pebbles_DAMP

Signal handlers

14

9 - no pebbles (mb_pebbles), no water spray (mb_tirespray_WET), no mb_grass_b

Skidmarks

6 complete materials

0 - completely absent

Material aliases

36

0

Skidmark aliases

36

0

Complete Particle Parameter Reference

  • [particle class]

  • sprite id → texture index in spritesheet (0–59+)

  • start color → RGBA at spawn (0.0–1.0 each channel, A=opacity)

  • im color setin → transition moment to intermediate color (0.0–1.0 of lifecycle)

  • intermediate color → intermediate RGBA

  • end color → RGBA at death

  • start size → width/height at spawn (meters)

  • im size → intermediate size

  • end size → size at death

  • im size setin → size transition moment

  • size variance → random size variation (multiplier)

  • life time → lifetime in seconds

  • weight → applied gravity (0=floats, 2=falls fast)

  • trail length → trail length (0=none, 0.035=light rain)

  • trail variance → random trail variation

  • camera att. start → camera attenuation start distance

  • camera att. end → attenuation end distance

  • blend modeBLEND_BLEND (normal) or BLEND_ADD (bright/fire)

  • ground z push → vertical ground push

  • offset width/height → position offset

  • is rendered in car space → 1=attached to car (e.g., body water)

Signal Handler Reference — Ground-to-Particle Link

  • [signal handler]

  • material id → ground material number (see table below)

  • emitter name → which emitter to trigger

  • mass flow reduction → min speed threshold to emit (negative = starts early)

  • mass flow modifier → quantity of ground particles emitted

  • mass flow pertubation → random variation

  • smoke flow reduction → min threshold for smoke

  • smoke flow modifier → quantity of smoke

  • smoke flow pertubation → variation

  • equalization → flow smoothing (0.5 = moderate)

  • velocity modifier → modifies particle speed

  • velocity pertubation → speed variation

  • flags → 1=active

  • car speed factor → car speed-based multiplier

  • speed reduction → min activation speed

  • speed modifier → emission speed modifier

  • limit → max number of simultaneously active particles

Material Numbers Used in PS_MontBlanc

IDName in fileDescription
37TarmacAsphalte

dry

38Tarmac_DAMPAsphalte

damp

39Tarmac_WETAsphalte

wet

103Arctic_SpraySpray

snow/gravel

105Mont_Blanc_-_Grass

MB dry grass

106Mont_Blanc_-_Grass_DAMP/WET

MB wet grass

107Australia_Grass_WET

Wet grass (alias)

114Australia_Grass_DAMP

Damp grass (alias)

  • Important observation: To improve particle rendering on your track, the most impactful tweaks are:

    • Denser tire smoke on dry - in mb_tiresmoke_particleclass, increase intermediate opacity (3rd value of intermediate color 2 from 0.56 to 0.7–0.8) and lengthen life time from 1.2 to 1.8.

    • More visible pebbles - in mb_pebbles_particleclass, increase start size from 0.015 to 0.025 and life time from 1 to 1.5.

    • More expressive grass - in mb_grass_a_particleclass, increase the limit in its signal handler from 8 to 12–15 for more projected grass blades.

    • More spectacular water spray on wet - in mb_tirespray_WET_particleclass, increase end size from 0.02/0.025 to 0.035/0.04 for larger droplets.

    • More marked tire tracks - in the Skidmarks section for material 37 (tarmac), increase size modifier from 1.6 to 2.0 and rubber multiplier from 0.2 to 0.35.

Skyboxes System

  • skyboxes.trk: 0 bytes, empty. Placeholder with no physical geometry. The skybox has no collisions, it is purely visual.

  • skyboxes.ini: Declares a single texture: WHITE.tga_0.tga (DXT1 format, Point filtering = no interpolation, no mipmaps, no transparency). It is an entirely white texture — the base skybox is a blank canvas upon which KSH shaders apply dynamically calculated sky gradients.

  • skyboxes_textures.rbz: ZIP archive containing 3 identical copies of WHITE.tga_0.dds (240 bytes each) in damp/, dry/, and wet/. 240 bytes = minimum size of a 1x1 white pixel DDS. Confirmed: the skybox uses no photographic textures — the entire sky is generated via procedural shaders.

  • skyboxes.lbs: The heart of the system. 29,495 bytes of compiled shaders. Contents include:

Internal Structure of skyboxes.lbs

  • Header: version = 8, nb_textures = 1 (WHITE.tga), nb_shaders = 23 (compiled blocks in total)

  • Declared texture: "MAPS\GLOBAL\SKYBOXES PS2\WHITE.tga_0.tga", params = (8, 1, 2) → DXT1, 1 mipmap, mode 2

  • 5 referenced KSH shaders (with file offsets):

    • 0x005d EVENING_CLEAR.KSH (block size ~9211 bytes)

    • 0x2468 NOON_CLEAR_AR.KSH (block size ~5031 bytes)

    • 0x381f MORNING_CLEAR_AR.KSH (block size ~5034 bytes)

    • 0x4bd9 MORNING_CLEAR.KSH (block size ~5031 bytes)

    • 0x5f90 NOON_CLEAR_AR.KSH (duplicated, size ~5031)

  • Each KSH shader shares the same signature after its name: [8, 1, 2] + [1 or 2, 5, 0, 16, 66, 936, 65536, 196610] — these are likely rendering flags (passes, blend modes, priorities).

Skybox Dome Geometry

The first triplet found at 0x008d is (0, 0, 32) — the dome radius is 32 units. The following 427 triplets are skybox mesh vertices: first the 3 base axes (0,0,32), (0,32,0), (32,0,0), then a series of normal or UV coordinates in decreasing powers of 2 (0.002, 0.008, 0.031, 0.125, 0.501, 2.002...) — typical signature of a subdivided spherical dome or cubic skybox.

The 5 KSH Shaders = The 5 Available Sky Types

ShaderUsage in TrackSettings.ini
EVENING_CLEAR.KSH

SkyboxName = Evening_clear

NOON_CLEAR_AR.KSH

SkyboxName = Noon_clear (AR variant = aspect ratio?)

MORNING_CLEAR_AR.KSH

SkyboxName = Morning_clear (AR variant)

MORNING_CLEAR.KSH

SkyboxName = Morning_clear (standard version)

NOON_CLEAR_AR.KSH

Duplicated — likely for a different condition

What You CAN Control in TrackSettings.ini for Your Track

SkyboxName = Evening_clear ; or Morning_clear
SkyboxSaturation = 0.45 ; 0=total grey, 1=highly saturated
Skybox_Scale = 77.0 ; scale — smaller = "tighter" sky
Rayleigh_Multiplier = 0.03 ; low=clear sky, high=deep blue sky
Mie_Multiplier = 0.001 ; atmospheric haze
Extinction = 0.54 ; light absorption
Inscattering = 0.50 ; backscattered light
Greenstein_Value = 1.0 ; scattering direction

RBR's sky is entirely procedural: the white texture is a neutral canvas, and the atmospheric parameters in TrackSettings.ini dynamically drive the shader to create evening oranges, morning blues, haze, etc. This is why you can achieve very different moods just by editing these text values.

Additional Files Overview

  • PixelShaders (fog/ General)

  • VertexShaders (fog/ General)

  • misc.rbz

  • WHBS.ini

Weather and Sky Control

The file allows defining different cloud types and times of day to light tracks:

  • [Clouds]: Manages sky states (Us_clear for clear blue sky, Us_overcast for heavily overcast, and Us_precipitation for rain/snow).

  • [Skyboxes]: Defines the time of day, such as morning (Morning_clear), noon (Noon_clear), or evening (Evening_clear).

Light Rendering Parameters

All lines starting with S_ (like Slider or Setting) define sliders with a default value (Default), a minimum, and a maximum. These are values developers adjusted to create the visual mood.

  • S_Diffuse and S_Ambient (Red, Green, Blue): Adjust direct sunlight color and ambient (shadow) light color.

  • S_Fog: Manages fog color and density.

  • S_Mie_Multiplier / S_Rayleigh_Multiplier / S_Turbidity: Advanced scientific terms linked to atmospheric physics (Rayleigh and Mie scattering). They calculate how light passes through air, dust, and moisture to give the sky a realistic color! For a 2004 game, using this kind of physical model for the sky was very avant-garde.

  • S_Superbowl: "Superbowl" refers to the giant dome surrounding the map (distant celestial dome). Associated lines manage horizon fog render distance (SuperbowlFogStart / End)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.