Racer v0.9.0 RC5 released

Ruud

RACER Developer
Get it at http://www.mediafire.com/file/zdn8i0kntl3h579/racer0.9.0_rc5b.7z
[URL edited at 16-11-2012, 17:07 for some bugfixes]
Get a racer.exe/pdb bugfix at from http://www.mediafire.com/file/ny6a8gju5oaracb/racer090rc5c_exe.7z (which fixes that braking with locked wheels would give extra force instead of less).

A note about the audio: a bit more is planned to add to audio. Mainly an extra 'noise' sounds for each surface when going off the AI line. Then there's also an idea to use understeer & oversteer values to select samples, instead of taking skid values per wheel, since understeer sounds different from oversteer. Experimental a bit though.

Enjoy!
Ruud

Changelist:
- Ctrl-I now inverts debug readout colors (it used to roll through the debug readout views)
- Onyx compiler improved with bugfixes, type-casting.
- Onyx pointers (hm).
- Onyx now supports float const ('const float x=0.5'), while, for and do-while.
- Onyx supports basic yielding of scripts (coroutines, triggered each frame).
- Onyx internal function abs(), sqrt() added.
- A default Cg shader is created for materials without an explicit shader. To avoid black materials.
- car.ini's now accept wheel<n>.pacejka.negate_camber. Some TIR files/coefficents out there
seem to reverse camber (inverting influence on Fy tire forces). This option inverts camber sign
as it goes into the Pacejka formulae.
- lighting.cg no longer adds Ks (specular) to the ambient term.
- .f32 file support for textures in .shd files; future development for sky colors.
- Added $water_reflection texture map for shaders, in the same way $mirror exists. This works with renderer.water.*
to render a mirror image of the scene into a 2D reflection map, which can be used for a water shader.
See also water_f.cg/water_v.cg in data/renderer/shaders.
To be elaborated.
- The default debug text color is now white again.
- Timing is passed to the Cg shaders in TrackEd for some animations.
- Explicit low LOD steering model removed; use the model LOD available for the regular model (steer.model) (in car.ini)
- Car cameras can explictly turn the steering wheel on or off (camera<n>.steering_wheel=0 or 1). The default is 1 (added to data/cars/default/car.ini).
See also http://www.racer.nl/reference/carphys.htm#campos
- Number of materials in a track raised to 6000 (from 4000) for some nasty import tracks.
- TrackEd's generate template shader generated '<unnamed_QObject>' for unloaded textures.
- Added engine.shifting.cut_ignition in car.ini; instead of cut_throttle=1, you can leave throttle open and cut
part of the ignition instead. A value of 0.5 for example will output 50% of engine torque to the clutch/gearbox/wheels,
so is smoother while shifting.
- Autoclutch during shifting linearized; it was now squared, making for a less smooth experience.
- New combined slip method for tire forces; #7. From Pacejka's book, the Similarity method. Does not require
optimal_slipratio and optimal_slipangle anymore. More info on http://www.racer.nl/reference/wheels.htm#tireforces
- When the tire left the surface, slip angle and ratio were reset to 0. This was not realistic for a bumpy surface,
since you lose a lot of traction when the tire is bouncing a bit. Now it keeps on tracking slipAngle/Ratio.
- Different fonts (Eurostile)
- Added dyn_standard_bump_ao_f/v.cg shaders for ambient occlusion map (much like the mix shaders really).
- After all these years, on Win7/64bits with 32-bits Racer, got PerfKit working with PerfKit v2.2.0.12166 from nVidia ('debug 6 1').
- Added 'float serverTime' uniform for Cg shaders to get (an estimate of) the multiplayer server time. To sync vertex shader effects across multiple PC's.
- Added active differentials basics using Onyx. See http://www.racer.nl/tutorial/differentials_active.htm
- Added a global 'lowpass' DSP option. Mainly used for testing for a future 'muffle' parameter per car to soften incar sounds.
- Added track audio per surface (in special.ini). If not defined, the default global surface type audio is used.
See http://www.racer.nl/reference/tracks_surfaces.htm

------------------------------------------------------------------

Bugs (currently known specific to RC5)
  • Gearbox shift times not working properly, step from 0 > 1 clutch position over the time rather than smooth linear transition.
  • Water reflection not rendering, needs clarification on functionality.
  • Qlog discrepancies (I'll let Boomer clarify those.
  • Odd console readouts about tyre slip angles or something popping up (same goes for gearbox manual/auto setting, doesn't need to be console displayed imo)
  • PerfSDK not working as advertised, broken?
  • Multiplayer joining to IP's seems glitched, the person joining has their brake stuck on and are unable to shift
  • The Multiplayer Lobby does not let you connect, and subsequently let you host, despite the right ports being forwarded. (Anyone else experiencing this bug?)
  • The particles pop-out of existence at the end of their specified lifetime instead of fading away smoothly. It would be nice to have some better control over the fade-in and out over the lifetime of the particle since tiresmoke starts out thick and opaque then disperses and becomes more transparent over time, while gravel or dirt fades in a bit at first then eventually fades away.
  • Smoke flickers in the reflections, as though it's missing every other frame.
  • Replay bugs: No smoke effects, ghost car is left on track.
  • The starter sound plays all the way to the end of the sample instead of stopping when you let off the starter.
  • Ghost doesn't work on endless tracks.
  • track special.ini: timeline.point_to_point=1, timeline.auto_return=0 - The auto_return setting doesn't seem to work here. I have a point to point track and the car resets 3000ms (3s) after crossing the finishing line, but I don't want it to.
  • No reflection in the Racer garage when selecting a car.
  • The unsprung weight apparently applies a downforce, try making a 150kg rear axle with the front
    suspension lighter and the car will act as though it has high downforce when jumping off of a ramp.
  • If the wipers are set to rotate in opposite directions then the intermittent position does not rotate back and forth smoothly. It snaps back.
  • In RC5c at least, the camera bug is still evident, and on Carlswood (spline based cameras) you can often get stuck so you can't get back to the in-car camera view which is really annoying! - Courtesy of Dave
 
Nice work, thank you Ruud!

Downloading now.

Interesting about the understeer/oversteer noises. You'd think the noise was just a function of the four (or however many) tyres slip angles/ratios combined.

Perhaps better to look at the state of the tyres sa/sr sum in understeer/oversteer situations and see what is different between the two?

Then try make the sound system react to those variables?


All good news any way!

Any word on being able to add our own supplementary sounds via Onyx? Or supplementary accessible variables from Onyx > views.ini variables?


Thanks

Dave
 
hmm...
all i does was to change the resolution and to fullscreen, render once off, mirror off....

Code:
Thu Nov 15 17:08:42 (INFO ): [racer] --- application start ---
Thu Nov 15 17:08:42 (INFO ): [racer] Racer version 0.9.0 RC5: $Revision: 3579 $ (Nov 15 2012/15:25:40) - customer: Internet (32-bits) [main.cpp:206 / main]
Thu Nov 15 17:08:42 (INFO ): [racer] Hostname 'XXXXX', IP XXXXXXXXX [main.cpp:211 / main]
Thu Nov 15 17:08:42 (INFO ): [racer] Render engine using Cg (3.30 NVIDIA via Cg compiler) [dgpushader.cpp:47 / DGPUShaderManager::DGPUShaderManager]
Thu Nov 15 17:08:43 (INFO ): [racer] Graphics card has support for 0 groups, 0 barriers [dframelock.cpp:367 / DFrameLock::GetFunctions]
Thu Nov 15 17:08:43 (INFO ): [racer] DFrameLock::SetVSync: set vsync to 0 (verify that it now is 0) [dframelock.cpp:175 / DFrameLock::SetVSync]
Thu Nov 15 17:08:43 (INFO ): [racer] Physics engine: NEWTON v2.34, architecture 0 [rmanager.cpp:1475 / RManager::Create]
Thu Nov 15 17:08:43 (INFO ): [racer] FMOD: modified software format is rate 44100, fmt 2, outChannels 2, inChannels 6, resampler 3, bits 16 [qsample.cpp:1415 / QSampleSetup]
Thu Nov 15 17:08:43 (INFO ): [racer] Controls: main control file is 'profile1.ini' [rcontrolengine.cpp:823 / RControllerEngine::OpenConfig]
Thu Nov 15 17:08:44 (INFO ): [racer] Safety changed to: SAFE [rcontrolengine.cpp:463 / RControllerEngine::StepInput]
Thu Nov 15 17:09:24 (ERR  ): [racer] Unreleased texture(s) exist (9 are active) [dtexture.cpp:447 / DTexture::CreateTexture]
Thu Nov 15 17:09:25 (INFO ): [racer] Crash detected - attempting to recover some data before displaying the crash dialog [main.cpp:97 / crashProc]
Thu Nov 15 17:09:34 (FATAL): [racer] Exception 0xC0000005, flags 0, Address 0x0058ECBC
(this dialog text is stored in QLOG.txt)
 
OS-Version: 6.1.7601 (Service Pack 1) 0x100-0x1
 
0x0058ECBC c:\source\trunk\dev_racer\src\libw\world.cpp (line 264): RWorld::LoadShaders()
0x0046A255 c:\source\trunk\dev_racer\src\lib\rmanager.cpp (line 1093): RManager::Create()
0x0055A63A c:\source\trunk\dev_racer\src\ui_public\menuprop.cpp (line 498): RMenuPropPage::Save()
0x0055A680 c:\source\trunk\dev_racer\src\ui_public\menuprop.cpp (line 420): RMenuPropPage::HandleEvent()
0x005595D0 c:\source\trunk\dev_racer\src\ui_public\supgfx.cpp (line 194): Do()
0x00559633 c:\source\trunk\dev_racer\src\ui_public\supgfx.cpp (line 225): rrSetupGfx()
0x00551041 c:\source\trunk\dev_racer\src\ui_public\supmain.cpp (line 135): Do()
0x005510C7 c:\source\trunk\dev_racer\src\ui_public\supmain.cpp (line 174): rrSetupMain()
0x0054A4C4 c:\source\trunk\dev_racer\src\ui_public\menu.cpp (line 1839): Do()
0x0054A66B c:\source\trunk\dev_racer\src\ui_public\menu.cpp (line 1959): RMenuRun()
0x00403AC1 c:\source\trunk\dev_racer\src\mrun.cpp (line 1937): Setup()
0x00403FD1 c:\source\trunk\dev_racer\src\mrun.cpp (line 2234): Run()
0x0040161F c:\source\trunk\dev_racer\src\main.cpp (line 271): main()
0x004016A3 c:\source\trunk\dev_racer\src\main.cpp (line 278): WinMain()
0x0059D30B f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (line 263): __tmainCRTStartup()
0x759433AA [kernel32]: (filename not available): BaseThreadInitThunk
0x778B9EF2 [ntdll]: (filename not available): RtlInitializeExceptionChain
0x778B9EC5 [ntdll]: (filename not available): RtlInitializeExceptionChain [%s]
 
I have a problem with tyres.

Watching slip ratio and under braking the tyres won't seem to go above 1.0 SR.

When accelerating hard (ie, burnout) they go above 1.0 to 1.5 SR as before.


The problem seems to be that when braking hard and locking my wheels they seem to generate maximum slip force, so I can brake at 1.4g slipping, or 1.4g threshold braking.

Under acceleration and spinning rear wheels I can't accelerate harder than 0.4g.


So it seems that under braking when the SR won't go above 1.0 (seem to hit a wall there), the tyre forces also stay too high and we brake with far too much efficiency.


Cheers

Dave
 
Not sure what you mean, Dave. Under braking, SR should go negative. -1.0 is the max braking slip ratio, at which point the wheel stands still. With spinning at acceleration SR can grow above 1.0 (spinning at more than 100% surface speed).
 
A new release, thanks!

A couple of things...
The car selection screen apparently has a motion blur velocity map applied to it since it looks like the car is blurred towards the monitor.
The in-game camera selection is out of sequence, it should go...
incar, trackcam, helo, disco, incar
instead it goes...
incar, trackcam, helo, disco, trackcam, incar . One too many trackcams ;)

There are some interesting things in this release that I haven't really looked at yet, but just I would mention these things while they were on my mind.

Alex Forbin
 
Not sure what you mean, Dave. Under braking, SR should go negative. -1.0 is the max braking slip ratio, at which point the wheel stands still. With spinning at acceleration SR can grow above 1.0 (spinning at more than 100% surface speed).

Hi Ruud,

Sorry yes, the SR goes negative which is correct, but I'm certain it used to go above 1.

In any case, perhaps that is just my bad observation but I was sure it used to go above 1 when braking and sliding!


However, the problem of tyres having much too much grip when slipping under braking only is still clear.

Spin the rear wheels and you struggle to get 0.4g acceleration with my pacejka (even with the rear wheels doing about 100mph and the car setting off from a standing start)
Brake with the same pacejka with super-strong brakes,(so they lock up hard and quickly) and the car will stop with the wheels locked at near 1.4g!

In practice a locked tyre will lose it's grip vs one around optimum slip ratio (0.1 ish), but in this case it feels like a hard locked braking tyre gets MORE grip than optimal!


I'll do more testing here.


Cheers

Dave
 
well I just tried Racer out and noticed a few little issues, like the simple onscreen mirror, just shows black, and it seems any attempts to change the motion blur settings result in an over bright screen. I also noticed that on some cars some textures are just coming up with the red/blue stub texture despite there being no Qlog errors, and it working just fine in the previous version.
rc4_rc5.png


I do like having the white lettering again, and the text change feels (at least to me) like an old school kinda throw back, as I seem to recall Racer using a similar (if not the same) text some time ago.

Just went to turn off render once off in the graphics menu and got this little error now, and of course now Racer won't start.
Code:
Thu Nov 15 17:14:16 (WARN ): [racer] DGPUShaderManager:MakeObject(data/renderer/fullscreen_shaders_hdr/shadows_f.cg): can't create CG fragment shader program [dgpushader.cpp:894 / DGPUShader::LoadAndCreateFromFile]
Thu Nov 15 17:14:16 (WARN ): [racer] DGPUShader::LoadAndCreateFromFile[data/renderer/fullscreen_shaders_hdr/shadows_f.cg]: The compile returned an error. [qerror.cpp:41 / QShowCGErrors]
Thu Nov 15 17:14:16 (WARN ): [racer]  data/renderer/fullscreen_shaders_hdr/../common/hdr.cg(282) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/fullscreen_shaders_hdr/../common/hdr.cg(307) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/fullscreen_shaders_hdr/shadows_f.cg(61) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/fullscreen_shaders_hdr/shadows_f.cg(61) : error C1035: assignment of incompatible types [qerror.cpp:46 / QShowCGErrors]
Thu Nov 15 17:14:17 (FATAL): [racer] DGPUShaderManager:MakeObject(data/renderer/fullscreen_shaders_hdr/shadows_f.cg): can't create CG fragment shader program
The compile returned an error.
data/renderer/fullscreen_shaders_hdr/../common/hdr.cg(282) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/fullscreen_shaders_hdr/../common/hdr.cg(307) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/fullscreen_shaders_hdr/shadows_f.cg(61) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/fullscreen_shaders_hdr/shadows_f.cg(61) : error C1035: assignment of incompatible types [%s]
 
Well, testing another car here that I generally accept as being as accurate and sensible as I can get one.

Braking down smoothly through 0.8g, ok, 0.9g, ok, 0.95g right on the edge of locking up, ok.

As soon as they tyres lock at the front I get 1.2g of braking deceleration!




Considering I lose accelerative g's when accelerating and spinning the wheels too much, the drop-off of grip seems to be working for spinning the wheels under acceleration.

But when braking it seems to be backwards?

No idea how that might happen but it's a pretty fundamental inaccuracy.




I think whatever will fix this will fix some other weird behaviour problems I'm seeing in some situations....
Generally feels much better overall with this tyre mixing, but any high angle loss of control (ie, spin-out) seems to have a weird flicking action that spins you hard and fast as you approach 180deg rotation.
Also I've noticed in some cars while doing a donut (which is much more natural) the car is bouncing/rocking left/right after a while.

Two weird things that somehow feel related to the braking issue. Don't ask how/why but almost a decade of driving around in Racer and I just have these feelings :D

Dave
 
Considering I lose accelerative g's when accelerating and spinning the wheels too much, the drop-off of grip seems to be working for spinning the wheels under acceleration.

But when braking it seems to be backwards?

No idea how that might happen but it's a pretty fundamental inaccuracy.

Dave

Just adding my observations.
I've noticed for some time that my cars will have accurate acceleration and wheelspin (according to videos) but my braking distances are always way short so I think you're onto something here.

Alex Forbin
 
I almost got the water shader to work but really need the right textures I think to make it work well.
The waves seem VERY large (wide) and the foam texture appears to repeat at about 2m.
The basic shader layout I'm using is...
Code:
shader_water~vf_water2
{
  reflect=1
  fresnel
  {
    bias=0.05
    scale=1.15
    power=10.0
  }
  scale=0.03
  layer0
  {
    map=water512n.tga
    mode=linear
  }
  layer1
  {
    map=water512n1.tga
    mode=linear
  }
  layer2
  {
    map=$water_reflection
  }
  layer3
  {
    map=noise.tga
    mode=linear
  }
  layer4
  {
    map=foam.tga
    mode=linear
  }
  layer5
  {
    map=water512.tga
    mode=linear
  }
;Of course nothing for layer6 since it's reading the zbuffer
}

I end up with a sea of white milk. Hmmm. (oops sorry Dave ;) )

Alex Forbin
 
Hi Ruud,

Sorry yes, the SR goes negative which is correct, but I'm certain it used to go above 1.
However, the problem of tyres having much too much grip when slipping under braking only is still clear.

Progress sofar: SR indeed goes upto -1.5 when sliding around, due to velocity reversal. With just hard braking, it sticks at -1. At that point I do see Fx (longitudinal tire force) rise above the default calculation. It's a secondary effect though, as I see the entire tire forces is pointed to -wheelVelocity (block-of-rubber force direction). The rise in force is due to extreme slip angles building up.
The slip angles build up because of... Looking into that.
 
Progress sofar: SR indeed goes upto -1.5 when sliding around, due to velocity reversal. With just hard braking, it sticks at -1. At that point I do see Fx (longitudinal tire force) rise above the default calculation. It's a secondary effect though, as I see the entire tire forces is pointed to -wheelVelocity (block-of-rubber force direction). The rise in force is due to extreme slip angles building up.
The slip angles build up because of... Looking into that.

:D

Glad it's not just my dodgy pacejka or something haha!

Fingers crossed there is a patch before you leave for the weekend... but no problem if not hehe... just I have a weekend with a bit of time for Racer, woooo yeah :D

Cheers

Dave
 
I almost got the water shader to work but really need the right textures I think to make it work well.
The waves seem VERY large (wide) and the foam texture appears to repeat at about 2m.
The basic shader layout I'm using is...
Code:
shader_water~vf_water2
{
  reflect=1
  fresnel
  {
    bias=0.05
    scale=1.15
    power=10.0
  }
  scale=0.03
  layer0
  {
    map=water512n.tga
    mode=linear
  }
  layer1
  {
    map=water512n1.tga
    mode=linear
  }
  layer2
  {
    map=$water_reflection
  }
  layer3
  {
    map=noise.tga
    mode=linear
  }
  layer4
  {
    map=foam.tga
    mode=linear
  }
  layer5
  {
    map=water512.tga
    mode=linear
  }
;Of course nothing for layer6 since it's reading the zbuffer
}

I end up with a sea of white milk. Hmmm. (oops sorry Dave ;) )

Alex Forbin

Haha :D

As per your problem with too much white milk, I'm not sure but does the foam layer use alpha for coverage masking? RGB for the colour of the foam?


I thought this shader was just for water like puddles etc, but clearly this is for a river/sea or something which is cool.

I suppose we can still grab/reference the $water_reflection for other shaders any way.


Ummm, confused now what TEXUNIT5 is doing. It's commented with "Reflection of scenery"?? What does that mean?

Also you need a greyscale map (rgb greyscale I guess, bit of a waste?) for TEXUNIT6 to define the depth too.



All exciting stuff... would be nice to make a stormy sea/coastal track with lightning, rain and an so on. Oooooo.

Hmmm

Dave
 
The water shader is really a sea/ocean type indeed. Actually, the water displacement requires a lot of work to use a couple of noise layers. They are mimicked in C++ to be able to do water height detection. Anyway, that's another story. ;-)

There's an updated (full version) at http://www.mediafire.com/file/zdn8i0kntl3h579/racer0.9.0_rc5b.7z

That fixes the trackcam sequence, the braking bug and has a TrackEd with visible buttons.
The braking turned out to be a small (but relevant) change in slip angle calculations; for wheel velocity, it took angular velocity*radius, instead of velocity above the road. That does not work nicely when blocking the wheel, which was what gave the big slip angle when blocking the wheels.
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top