Racer v0.8.23 released!

Ruud

RACER Developer
An important one.
Troubles expected with this one:
- linearity of the steering wheel (you for one now need to specify the wheel lock in the setup screen before starting to judge things)
- a new parameter ('sunny') in most fragment shaders (any typos?). For a simple 'overcast' type of thing where you allow less sun to shine through.
- dbg_car.flip_tan=1. Perhaps a major breakthrough on the physics end. Where I always used a tan(SA), it might have needed to be atan(SA). Ouch, we're going to test this on our high-end sims later today, see how it feels (easier to do than with a G27).
- steering controls are now in degrees, rather than normalized. How about center_squeeze (and related) for Mz reduction near 0? Haven't looked at that yet.

The download: http://www.racer.nl/download/racer0.8.23.zip (67Mb)
Then get the latest exe flip_tan bugfix (only exe): http://www.racer.nl/download/racer0.8.23b.zip
(5Mb)
*after some testing, it appears than dbg_car.flip_tan should be 0* (the older situation)

The changes:
- Steering revised quite a bit - the controls for steering left/right now use degrees, instead of being
normalized. This changed some things inside the physics engine to use rotation more directly.
The idea: set your controller's lock correctly. With cars that have a steering lock that is smaller
or equal to that of the controller lock, the steering is direct (1:1). If a car has more lock defined
in its car.ini, linearity will be applied on the controller's steering output (now in degrees) to let it
use the full range of the car's steering wheel (linearity=controllerLock/steerLock).
This all targeted a bit for 900 degrees where you no longer then have to tweak for a lot of cars.
The controller setup screen is being worked on to visually check the lock (press F5 twice in the setup
screen to show the 'Wheel' page).
- Controller lock is now saved in the setup screen.
- A new important physics tweak is available: dbg_car.flip_tan. Defaulting to 0 (the v0.8.22 behavior),
setting it to 1 modifies the slipangle calculations for each wheel to use atan() rather than tan().
The tan() has been in there for a long time, to stabilize high slipangles. But, tan() makes values
worse as they grow, instead of flattening them like atan(). So, this needs to be investigated;
probably it has quite an influence on slipping behavior (with big slipangles).
- bloom_shadows_f.cg accidentally had bloom turned off
- Flare Cg shaders tweaked for nicer looks (alpha changes)
- log file position group added 'lap' (ASCII format)
- Added motion_blur.stencil option - use 1 for the old projected shadows, 0 for shadowmapping (faster)
- Added dev.nvidia_perf option that will try to access nVidia PerfSDK counters if installed.
Install an instrumented driver for this to work.
- Added a profile debug page (Ctrl-6, may have to press twice for the 2nd page) to see some nVidia performance counters.
I must say it bluescreened my XP machine more than once, so be careful with instrumented drivers.
- Added envmap.live_track.frames_per_update for more live track mapping control
- Fixed some tough render engine bugs that messed up Z-buffer usage (mirror on made the screen flicker)
- Generic models weren't transforming; fixed.
- Added wiper modes (off/interval/normal/fast), use 'w' to switch to the next mode (see also Ctrl-4 for the current mode)
- dyn_standard_bump_reflect_f.cg now also lets bumpmap alpha affect specular (next to reflectiveness)
- Sky_f.cg and sky_daynight_f.cg modified so clouds=1 now gives the normal effect (and does not raise
cloud regions to 175 klux!)
- A track's exposure in special.ini is now correctly used as the initial exposure (no more starting
with white, then coming back to a normal exposure if you set this one to a nice value; like 0.02?)
- Fixed a bug in the fresnel calculation in dyn_standard_bump_reflect_v.cg, which gave bad looking
reflections.
- Selecting Bloom/Shadowmapping from the menu gave problems with undefined 'gammaFactor' errors.
- Surround Gaming mode camera aspect fix (director mode)
- A surface's 'grip_decline_driveline' now defaults to 0 (was 1). Fixed issues with grip declining by default.
- Panorama shader's extinction now uses 'scale' Cg parameter instead of hardcoded value (5). Add 'scale' to
your track.shd file.
- Backfire would sometimes not work. This and a bunch of other uninitialized data fixed.
- 2D elements in the render engine could mess with motion blur blending (OpenGL state cache).
- When bloom was on, the aliased buffer was anti-aliased twice! (for bloom and at postprocessing)
- blur_alpha didn't work; the fullscreen shaders didn't output correct alpha. Using a bit of blur_alpha now
by default (0.3).
- Auto exposure sampling did an anti-alias pass; now it uses a previously anti-aliased result (faster).
- Dropped config.exe for now - anybody using it actively? Most should be settable ingame.
- Added 'sunny' in special.ini (tracks); 0=totally overcast, 1=super sunny. For ground objects.
Needs to be added to all fragment objects though. Also adds script cmd 'sunny <x>' to set it live.
 
Sounds good so far :D

Nice to see the menu getting some work, so we can set more things there!

Glad to see (for 900deg wheel users at least), that linearity is scaled above 900deg real wheel turns to keep straight ahead steering roughly linear to the real car!!

That sunny variable is interesting, look forward to hearing more about what that is intended to do.



Will certainly be testing later :D

Cheers

Dave
 
After I add some cars and tracks,with the map swiss stroll(others it seems to work good) when I press esc after loading map,I get this error:

Fri Nov 19 17:32:36 (FATAL): [racer/5984] Exception 0xC0000005, flags 0, Address 0x004C2E7F
(this dialog text is stored in QLOG.txt)

OS-Version: 6.1.7600 () 0x100-0x1

0x004C2E7F d:\source\trunk\dev\src\libs\world\node.cpp (line 97): WorldNode::~WorldNode()
0x0047F762 d:\source\trunk\dev_racer\src\lib\rparticlemanager.cpp (line 50): RParticleManager::~RParticleManager()
0x0047FA38 [racer]: (filename not available): RParticleManager::`scalar deleting destructor'
0x00424259 d:\source\trunk\dev_racer\src\lib\rmanager.cpp (line 544): RManager:: Destroy()
0x0042775A d:\source\trunk\dev_racer\src\lib\rmanager.cpp (line 428): RManager::~RManager()
0x00401B4E d:\source\trunk\dev_racer\src\mrun.cpp (line 1875): GameClose()
0x00403A2A d:\source\trunk\dev_racer\src\mrun.cpp (line 1951): Run()
0x00401504 d:\source\trunk\dev_racer\src\main.cpp (line 222): main()
0x00401573 d:\source\trunk\dev_racer\src\main.cpp (line 229): WinMain()
0x00549DEB f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (line 263): __tmainCRTStartup()
0x75193677 [kernel32]: (filename not available): BaseThreadInitThunk
0x77499D42 [ntdll]: (filename not available): RtlInitializeExceptionChain
0x77499D15 [ntdll]: (filename not available): RtlInitializeExceptionChain

The problem is caused by this map or is this a bug?
Otherwise,this version is VERY GOOD(in the others version when I press esc EVERY TIME the game crash).
The hardware is Nvidia GT320M,2.1 ghz dual core procesor,4 gb ram(if it's a hardware problem,but I don't think so).I have Windows 7 Ultimate x64.
 
@asasinuxp

Had the same output the first time. Somehow it disappeared on 2nd Racer load.

===================
Crtl + 4 shows the steering wheel modifications & it looks like getting better on my G25. I've ported my custom settings over from older versions.
The GUI steering wheel feature is great, it looks more & more like LFS (Live For Speed) GUI settings.
Sunny command works too, cool feature.
 
LFS did inspire a bit the locking feature, although more games seem to have it now.
For v0.8.24 I just converted the bumpmap shaders to world space (it was texture space); quite a bit easier (more like the other shaders) and since it's in world space I could also deflect the reflection vector, so the bumpmap affects reflections now as well. :D
 
Glad to see (for 900deg wheel users at least), that linearity is scaled above 900deg real wheel turns to keep straight ahead steering roughly linear to the real car!!

That sunny variable is interesting, look forward to hearing more about what that is intended to do.

Hope the automatic steer linearity works ok for <900 degree users though.
'sunny' is the amount of lit colors being added. FinalColor=ambientColor+(1-shadow)*litColor*sunny. So even though something is lit, you can reduce it with 'sunny'. For a half-overcast sky, set sunny to 0.5 and the sun will only come through 50%.
 
Thanks for the update, Ruud. As you mention in the first post dbg_car.flip_tan=0 seems to produce more realistic results - I'm getting some hefty yaw changes at high slip angles otherwise.

The revised steering works fine for me - wondering about low lock controller users though, just like you say. Perhaps we can keep steer.linearity active for them, putting the responsibility to set it to 1.0 by default in the hands of the authors, but still allowing some adjustments to be made if the user wants to? Sounds a bit messy however, I admit.
 
Nice update Ruud, can I just ask why my cars all completely white and "ghosty" in the menu screen, even the default murcielago? It has been like this for the last few releases that I can recall.

It looks fine though when you're driving/racing though.
System Specs:
Q6600 3.6ghz, 8GB DDR2, Win 7 64bit, Nvidia GTX 470 Hawk Edition
 
Hope the automatic steer linearity works ok for <900 degree users though.
'sunny' is the amount of lit colors being added. FinalColor=ambientColor+(1-shadow)*litColor*sunny. So even though something is lit, you can reduce it with 'sunny'. For a half-overcast sky, set sunny to 0.5 and the sun will only come through 50%.

Hmm, would it be possible to pick up sunny from a vector through the skybox, in the direction of the sun? (since skybox is always relative to the camera, seems like you'd only need to do this once per frame) Then multiply skybox opacity by cloud opacity, subtract it from sunny, and the sun gets darker when it goes behind clouds:wink: Of course, the effect would be more noticeable if the skybox was slowly moving, or the cloud value was changing in realtime.
 
Sunny will be a funny thing to have.

We have already seen that on an overcast day the ambient intensity is quite a bit higher than ambient intensity on a sunny clear day.

This means we ideally need a TOD curve set for a generally sunny day with either clear or partial cloud, and a TOD curve set for a partial to heavy/overcast cloud situation.


UNLESS of course, we start to use the HDR sky which is rendered, to populate the sun diffuse and sun ambient values somehow. That will be a big task of just testing/observing and trying to get a system that works nicely with just a few driving curves.


Just to check too, does 'sunny 0' mean that the sun spot is no longer rendered on to the sky? This will be very handy for overcast day simulation where you need sun intensity values to get the atmosphere to render!


Thanks

Dave
 
Wow! Thanks Ruud, a nice early christmas present. I get at least 30fps+ improvement over 0822, and I can drive now quite easily with a mouse now (haven't tried my wheel out yet, gotta wrestle it off the kids). Overall, it seems a lot smoother to drive and look at.
 
Fresnel function doesn't seem to be working at all right for me (in terms of reflection dropoff based on angle) I'll have to look deeper into the shaders to see what's going on, but right now it seems to be returning a constant 1.0.

Maybe default bias/scale are set wrong? The Aronde has them set manually in most of its materials and looks better.
Should be about this for gloss paint
Code:
fresnel
{
  bias=0.1
  scale=0.9
  power=3.0
}
Maybe even lower on the bias, like 0.05 to a 0.95 scale.


I think this is why the Lamborghini's refl had to be set so low - if bias=1.0 then it would always be at maximum reflection.
 
In the shader, you could end with 'outColor.rgb=fresnel' (check specific variable names) to visualize fresnel. I do that all the time to visualized components in the shader, to hunt bugs.

The cars are white in the car selection screen btw because it's LDR there. The whole GUI should really be integrally done through the render engine, to be able to mix 3D (cars) and 2D (gui) properly with fs_filter and all that. Quite a lot of work though.
 

Latest News

How long have you been simracing

  • < 1 year

    Votes: 292 15.2%
  • < 2 years

    Votes: 203 10.6%
  • < 3 years

    Votes: 199 10.4%
  • < 4 years

    Votes: 144 7.5%
  • < 5 years

    Votes: 259 13.5%
  • < 10 years

    Votes: 226 11.8%
  • < 15 years

    Votes: 141 7.4%
  • < 20 years

    Votes: 116 6.1%
  • < 25 years

    Votes: 88 4.6%
  • Ok, I am a dinosaur

    Votes: 248 12.9%
Back
Top