resolution
{
; Resolution to play in
fullscreen=0
; Avoid screen switch? (takes 1 of height)
near_fullscreen=0
; No border? (for non-fullscreen windows without a border)
no_border=0
; Position of (non-fullscreen) window; for x/y, -1 means center on the desktop (non-fullscreen only)
x=-1
y=-1
; Width and height of window (or fullscreen resolution)
width=800
height=600
; Surround Gaming (Matrox TripleHead2Go)
; Pixel aspect ratio; normally 1 (pixels onscreen are sized 1:1)
aspect=1
; Rendering aspect; 1.333 for most VGA resolutions, 1.6 for example for a 1280x800 screen (Apple screens, 16:10). 0=automatic (width/height)
render_aspect=0
; Pixel depth (RGB; use 16 or 32; 32 preferred)
bits=32
; Alpha bits? Not really needed for normal shader operation, so keep at 0
alpha_bits=0
; Depth buffer bits; 16 or 24
z_bits=24
; Stencil buffer bits; is used for projective shadows, stencil shadowing
stencil_bits=1
; Frequency (only implemented on Mac)
; Make sure the frequency is supported, otherwise you could damage your monitor!
frequency=60
; Vertical sync? 0=off (max framerate, the default), 1=sync to display frequency, >1=set interval
vsync=0
; Frame lock? (0=disable, 1=enable) Only works on nVidia Quadro cards.
frame_lock=0
; Force frame lock enable/disable to succeed? (for tests on non-Quadro cards)
frame_lock_force=0
; Swap group & barrier; for locking multiple computers/displays (nVidia Quadro cards only) - 0=off
swap_group=0
swap_barrier=0
; Gamma (only implemented on Mac)
gamma=1.0
; Number of monitors; normally set to 1, may be set to 3 if for example
; a Matrox Parhelia is used.
monitors=1
}
filter
{
; These settings are overruled by the new gfx engine in Racer v0.5.2
; Use mipmapping? 0=none, 1=nearest, 2=linear
mipmap=1
; Use trilinear filtering? If mipmap=0 and trilinear=1,
; bilinear filtering is used instead.
trilinear=1
; Max anisotropy; the higher, the better the filtering
; Only supported on some cards. Values 1..?. 1 will not use any
; anisotropy, starting from 2 you'll get results.
max_anisotropy=2
}
envmap
{
; Enable old-style spherical environment mapping?
enable=1
; Live updating of track environment map? (very costly)
live_track=0
{
; Number of cubemap sides to update per frame (less=faster but more jerk)
sides_per_frame=6
; Frames per update; each update, 'sides_per_frame' sides will be rendered (!). Default is 1.
frames_per_update=1
; Use an offscreen FBO? Faster, better
fbo=1
; Number of FBO bits; 8 or 16 (HDR)
bits=16
; Size of FBO (width & height)
size=512
; Render once? This will generate a nice map, but never update it. Very fast
render_once=1
}
; Dozens of options controlling live track map should come here. :)
; Default environment map image for sphere environment mapping
default_texture=smap_whitesun_add.tga
}
shadow
{
; Use projected shadow for cars (on tracks)? Turn off when using shadow mapping (CSM).
project_shadows=1
}
renderer
{
; Gfx engine rendering options
; Desired framerate - will reduce detail dynamically to obtain the framerate (0 to disable)
desired_fps=0
; Throttler detail limits (0=nothing drawn, 1=full detail, >1=increased visibility range)
min_detail=1.0
max_detail=2.0
paint
{
; Show wire frame?
wireframe=0
; Show vertex normals?
normals=0
; Show triangles? (default=1)
triangles=1
}
; Note that some fog parameters are defined in <track>/special.ini
; Enable fog? (shaders can still turn fog off)
fog=1
; Use array elements instead of 1 drawelements?
use_array_elements=0
; Use single pass rendering instead of multitexturing? Don't set at 1 if you use Cg shaders
single_pass=0
; Support Vertex Buffer Objects? (for cars and/or tracks). Often increases framerate if enabled.
use_vbo=1
; Support projected lights? (default=1)
projected_lights=1
; CSM shadow mapping
shadowmapping
{
; Enable shadow mapping? If enabled, changes the Cg shader directory to
; data/renderer/shaders_hdr_csm (!) instead of data/renderer/shaders_hdr
enable=0
; debug mode (paints splits)
debug=0
; size of the debug polygons rendered
dbgsize=128
; Blur the shadowmap? (slower)
blur=0
; Profiles for different camera types
profile0
{
; outside car
; nr of splits used, each split takes one extra render loop (3 should be enough)
splits=4
; texture resolution; MUST match that in data/renderer/common/constants.cg!
mapsize=1024
; split distances 0 - 3, each distance higher than the previous one; now in data/renderer/common/constants.cg? (not true probably)
splitdist0=10
splitdist1=40
splitdist2=160
splitdist3=640
; the amount of frames to skip to increase performance
splitrenderjump0=0
splitrenderjump1=0
splitrenderjump2=0
splitrenderjump3=0
; offset the framecount for jumping frames
splitrenderoffset0=0
splitrenderoffset1=0
splitrenderoffset2=0
splitrenderoffset3=0
; debug mode (paints splits)
debug=0
; size of the debug polygons rendered
dbgsize=128
}
profile1
{
; inside car
; nr of splits used, each split takes one extra render loop (3 should be enough)
splits=4
; texture resolution; MUST match that in data/renderer/common/constants.cg!
mapsize=1024
; split distances 0 - 3, each distance higher than the previous one; now in data/renderer/common/constants.cg? (not true probably)
splitdist0=5
splitdist1=30
splitdist2=150
splitdist3=850
; the amount of frames to skip to increase performance
splitrenderjump0=0
splitrenderjump1=0
splitrenderjump2=0
splitrenderjump3=0
; offset the framecount for jumping frames
splitrenderoffset0=0
splitrenderoffset1=0
splitrenderoffset2=0
splitrenderoffset3=0
; debug mode (paints splits)
debug=0
; size of the debug polygons rendered
dbgsize=128
}
mapsize=1024
shadowintensity=0
}
rain
{
; Method of rain; 0=fullscreen poly (old), 1=Project Gotham Racing 4 particle boxes
method=1
; Method 1: particles per box (there's a maximum of 20 boxes); default 10000 (rain 1 means 20*10000 particles visible); max=10900
particles_per_box=10000
}
bloom
{
; Bloom on top of HDR - keep it on
enable=1
; Size of first bloom FBO (more are created, each half the size of the one before)
width=256
height=256
}
auto_exposure
{
; If enabled, calculates luminance of the scene and automatically adjusts the 'exposure'
; It then overrules any exposure setting from track special.ini files or the script 'exposure' command
enable=1
; Time per luminance sample (increase value to improve framerate)
time_per_sample=500
; Exposure is calculated using: gradient/sceneLuminance+offset (this was changed in v0.8.18)
offset=0
gradient=0.25
; Minimal exposure
min=0.0
max=1000.0
; Gradually change exposure with a Kalman filter (values around 0..1; close to 0=slow)
filter_gain=0.001
}
motion_blur
{
; Method: 0=disabled, 1=OpenGL accumulation buffers, 2=blur-texture, 3=bitmap (not functional), 4=FBO (fast texture based)
; Preferred is FBO (the future is going to do more & more with FBO's due to Cg shaders)
method=0
; Direct setting of FBO size (if 0, the window size is used) - only used for multiview+mirrors currently
fbo_width=0
fbo_height=0
; Use stencil buffer? (default=0) - use 0 when using shadowmapping, 1 when using the old projected shadows
stencil=1
; (Method 1 only) Motion blur using accumulation buffers; 0=don't use, >1=number of passes (renders); can be slow!
passes=4
; (Method 1 only) Mix scale; <1=darken, >1=brighten (sort of HDR)
accum_factor=1.0
; (Method 2 & 4) Amount of blur; 0=nothing, 1=lots of blur. 0.5 seems reasonable. Based on a 100fps rate and adjusted accordingly.
blur_alpha=0.3
; (Method 4 only)
fs_filter1=bloom_f.cg
; (Method=4 only) Number of color samples for multisampled FBO (0=no multi-sampling, 2/4/8/16=samples); only works on nVidia cards 8xxx series and up
samples=2
; CSAA coverage samples (only supported on nVidia cards that support CSAA)
; Typical use: CSAA 16x: samples=4, coverage_samples=16. Much faster than plain MSAA (samples=16).
coverage_samples=4
; Generate velocity map? (for use in fullscreen shader) Creates velocity values in R & G channels using motion_blur_v/f.cg shaders.
velocity_map=0
; Distortion for projectors
distorter
{
; Enable distortion? (also set motion_blur.fs_filter1 to bloom_distort_edge_lr_f.cg for example if enabled)
enable=0
; Enter edit mode at startup?
auto_edit=0
; Enable a test pattern at start
init_testpattern=2
; Transparency of control points
points_alpha=1.0
; Texture size (must be a power of 2)
texture_size=1024
; Control points defining a net to fit the screen in. The points are normalized
; (so 1 means the right or lower side of the screen, 0,0 is the origin at the top-left)
; Number order is row-column, so control_point_10 means row 1, col 0.
control_point_00=0.000000 0.000000
control_point_01=0.250000 0.028320
control_point_02=0.500977 0.066406
control_point_03=0.750000 0.026367
control_point_04=1.000000 0.000000
control_point_10=0.009766 0.250000
control_point_11=0.250000 0.250000
control_point_12=0.500000 0.250000
control_point_13=0.750000 0.250000
control_point_14=0.987305 0.250000
control_point_20=0.024414 0.500000
control_point_21=0.250000 0.500000
control_point_22=0.515625 0.483398
control_point_23=0.750000 0.500000
control_point_24=0.977539 0.500000
control_point_30=0.000000 0.750000
control_point_31=0.250000 0.750000
control_point_32=0.500000 0.750000
control_point_33=0.750000 0.750000
control_point_34=0.985352 0.750000
control_point_40=0.000000 1.000000
control_point_41=0.250000 1.000000
control_point_42=0.500000 0.971680
control_point_43=0.750000 0.989258
control_point_44=1.000000 1.000000
}
}
; Enable depth of field rendering? (experimental); needs motion_blur_passes>=2
depth_of_field=0
; Force ATI card? A number of measurements may be taken, since ATI drivers have some problems.
; Note that v0.5.3 beta 8+ already automatically tries to detect ATI cards and overrules this value
; if an ATI card is indeed found (will force it to 1).
ati=0
; Fader PID proportional setting; 0.002 is ok, 1 means superfast fades
fgr_pid_p=0.002
edge_blend
{
; Software edge blending
; From v0.8.5, this needs to be done in Cg shaders, not a texture onscreen!
; Still, even with Cg, the p and gamma values are used.
enable=0
; Curvature of edge fall-off (1=linear, 2=curvy, 3=more curved)
p=3.000000
; Gamma of projector (around 1.8..2.2, 1.0=linear)
gamma=1.93
; Size of edge ramp in pixels
width=256
; Side (1=left, 2=right, 1+2=left&right)
sides=0
; Testing the setup; draw a test image? (see also the script commands 'edgetest on' and 'edgetest off')
test_pattern=0
; Transparency of test pattern (defaults to 128)
test_pattern_alpha=128
}
gpu_shaders=1
}
mirrors
{
; Simple rectangular mirror at top? Use the mirror texture!
; So if used, also enable texture.enable (set to 1)
simple
{
; Draw simple mirror on top of screen? If 1, also set mirrors.texture.enable to 1.
enable=0
; Position (if undefined, it is centered horizontally and placed near the top vertically)
; Size of simple mirror (onscreen)
wid=250
hgt=60
}
; Mirror texture
texture
{
; If you don't enable the simple mirror, you may also turn this setting off to save memory & render time
enable=1
; Use an FBO to render into? (faster if you have the graphics power)
fbo=1
; Anti-aliasing of mirror (normally 0, but 2/4/8/16 may look better)
fbo_samples=0
; Texture size; the larger, the sharper, but also more costly
wid=500
hgt=120
; FOV in mirror view
fov=10
; Update rate (1=update every frame, 2=update every 2nd frame, 3=every 3rd etc)
update_rate=2
; Visibility in mirror (distance in meters)
visibility=750
; Haziness in the mirror (default: 1.0)
extinction_factor=1
; LOD factor (default: 1.0); keep it low to get fast rendering
lod_factor=1
; Offset
offset=0 0 0
; Angle offset (yaw, in degrees)
angle=0
; Texture coordinates; normally 0 and 1. Use 0.5..1 for the left part (the mirror is reversed!)
tc_x_start=0
tc_x_end=1
}
}
textures
{
; Big hack for faster loads during testing
enable=1
; Quality; 1=max, 2=halfsize, 4=1/4th etc. Must be power of 2.
quality=2
; Support texture compression? (default is 1 (on) unless shaders specifiy compression=0)
compression=1
; Maximum texture size; useful to cut down on really big texturemaps
; or supporting ancient gfxcards that can only deal with 256x256
; texturemaps.
max_wid=2048
max_hgt=2048
}