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
.ddstextures 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
.KSHshaders (including_02variants that the.inidoes 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
.lbscontains_02shaders (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 weatherCLEAR02CLOUDED=> darkened, cloudyOVERCAST=> overcastPARTLY_CLD=> partly cloudyPRECIP=> precipitation, rainPRECIP_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/2andend_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_tileandMb_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
.KSHreferences: trees (spruces, oaks), fences, signs, spectators. Not directly modifiable — original.KSHfiles 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, andwet/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 itsTrackNameand particle system. For your BTB track, track 41 usesps_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]whereNN= track number,X= time of day (M=morning,E=evening,N=night,O=overcast) and weather iscrisp_clear,hazy_partcloud,heavyrain_heavycloud, etc.
| Parameter | Description | Range / Values |
| SunDir | Sun direction (normalized XYZ vector) | -1.0 to 1.0 |
| Sun_Intensity | Solar light intensity | 80 to 140 |
| SunOffset | Solar light offset | -1.0 to 1.0 |
| AmbientRed/Green/Blue | Ambient light color | 0.0 to 1.0 |
| DiffuseRed/Green/Blue | Diffuse light color | 0.0 to 1.0 |
| FogRed/Green/Blue | Fog color | 0.0 to 1.0 |
| FogStart / FogEnd | Fog start/end distance in meters | -200 to 10000 |
| UseFog | Enables fog | true/false |
| CloudName | Cloud skybox name to use | Us_clear, Us_clouded… |
| Cloud_Scale | Cloud layer scale | 0.0 to 10.0 |
| SkyboxName | Background skybox | Morning_clear, Evening_clear |
| SkyboxSaturation | Sky color saturation | 0.0 to 1.0 |
| Skybox_Scale | Skybox scale | 0 to 100 |
| Specular_Alpha | Specular reflection intensity | 0.0 to 1.0 |
| Specular_Glossiness | Reflection glossiness | 1.0 to 14.0 |
| Rayleigh_Multiplier | Atmospheric scattering (sky blue) | 0.0 to 1.0 |
| Mie_Multiplier | Particle scattering (haze) | up to 0.001 0.1 |
| Extinction | Light absorption | 0.1 to 1.0 |
| Inscattering | Light scattered toward player | 0.0 to 1.0 |
| Greenstein_Value | Scattering anisotropy (-=back, +=front) | -1.0 to 1.0 |
| Turbidity | Atmospheric turbidity (heat haze) | 0.0 to 9.0 |
| Terrain_Reflectance | Global terrain reflectivity | 0.0 to 0.2 |
| Car_Ambient/Diffuse_Lighting | Car lighting multipliers | 0.5 to 2.0 |
| Car_Shadow_Alpha | Car shadow intensity | 0.0 to 1.0 |
| SuperbowlFogStart/End | Distant skybox fog, highly variable | |
| Superbowl_Scale | Distant fog intensity | 0.0 to 1.7 |
| MipMapBias / MipMap_Bias | Texture 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 areSunDir+Sun_Intensity(angle and strength of the sun),FogStart/End+FogRed/Green/Blue(atmospheric mood), andSkyboxSaturation+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
| Aspect | Normal (31 classes) | Low (26 classes) |
| Particle classes | 31 | 26 - missing: |
| Signal handlers | 14 | 9 - no pebbles ( |
| 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 RGBAend color→ RGBA at deathstart size→ width/height at spawn (meters)im size→ intermediate sizeend size→ size at deathim size setin→ size transition momentsize variance→ random size variation (multiplier)life time→ lifetime in secondsweight→ applied gravity (0=floats, 2=falls fast)trail length→ trail length (0=none, 0.035=light rain)trail variance→ random trail variationcamera att. start→ camera attenuation start distancecamera att. end→ attenuation end distanceblend mode→BLEND_BLEND(normal) orBLEND_ADD(bright/fire)ground z push→ vertical ground pushoffset width/height→ position offsetis 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 triggermass flow reduction→ min speed threshold to emit (negative = starts early)mass flow modifier→ quantity of ground particles emittedmass flow pertubation→ random variationsmoke flow reduction→ min threshold for smokesmoke flow modifier→ quantity of smokesmoke flow pertubation→ variationequalization→ flow smoothing (0.5 = moderate)velocity modifier→ modifies particle speedvelocity pertubation→ speed variationflags→ 1=activecar speed factor→ car speed-based multiplierspeed reduction→ min activation speedspeed modifier→ emission speed modifierlimit→ max number of simultaneously active particles
Material Numbers Used in PS_MontBlanc
| ID | Name in file | Description |
| 37 | TarmacAsphalte | dry |
| 38 | Tarmac_DAMPAsphalte | damp |
| 39 | Tarmac_WETAsphalte | wet |
| 103 | Arctic_SpraySpray | snow/gravel |
| 105 | Mont_Blanc_-_Grass | MB dry grass |
| 106 | Mont_Blanc_-_Grass_DAMP/WET | MB wet grass |
| 107 | Australia_Grass_WET | Wet grass (alias) |
| 114 | Australia_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 ofintermediate color 2from 0.56 to 0.7–0.8) and lengthenlife timefrom 1.2 to 1.8. More visible pebbles - in
mb_pebbles_particleclass, increasestart sizefrom 0.015 to 0.025 andlife timefrom 1 to 1.5. More expressive grass - in
mb_grass_a_particleclass, increase thelimitin its signal handler from 8 to 12–15 for more projected grass blades. More spectacular water spray on wet - in
mb_tirespray_WET_particleclass, increaseend sizefrom 0.02/0.025 to 0.035/0.04 for larger droplets. More marked tire tracks - in the
Skidmarkssection for material 37 (tarmac), increasesize modifierfrom 1.6 to 2.0 andrubber multiplierfrom 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) indamp/,dry/, andwet/. 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 25 referenced KSH shaders (with file offsets):
0x005dEVENING_CLEAR.KSH(block size ~9211 bytes)0x2468NOON_CLEAR_AR.KSH(block size ~5031 bytes)0x381fMORNING_CLEAR_AR.KSH(block size ~5034 bytes)0x4bd9MORNING_CLEAR.KSH(block size ~5031 bytes)0x5f90NOON_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
| Shader | Usage in TrackSettings.ini |
| EVENING_CLEAR.KSH |
|
| NOON_CLEAR_AR.KSH |
|
| MORNING_CLEAR_AR.KSH |
|
| MORNING_CLEAR.KSH |
|
| NOON_CLEAR_AR.KSH | Duplicated — likely for a different condition |
What You CAN Control in TrackSettings.ini for Your Track
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_clearfor clear blue sky,Us_overcastfor heavily overcast, andUs_precipitationfor 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_DiffuseandS_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.