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
 
Sure, everything is fixable & doable.

Just look at it with more attention & then check Racer.nl for more infos.
Go error by error & try by yourself to fix it, you'll see all the reward & personal satisfaction of achieving something without any help !

All I see, it's a big mess ATM...:geek:

Tip :
Check the DOF Fix
 
Anyone know a good way to make grass not smoke when you drive on it?

Only thing so far is what Cosmo suggested, set the surface 'type' to road and then use the custom sound entries to make it sound like grass again...

Part of me is wondering if we could just do with a toggle for smoke/particle density and also a switch?

Or both in one, 0 is off, and then values in the range 0 > 1 impact particle opacity!?

Hmmmm

Dave
 
Smoke some grass! Hahaha :D

I think one should just tune the particle variables in the particles.ini or whatever its called...

That's what I did and it works fine, you will find it under grass_smoke.

I'm thinking about getting a search party together for Ruud, anyone interested? It's been almost two months since anyone has seen him around here, and even then he appeared to have a disheveled look about him and two days of beard growth.

Alex Forbin
 
I'm pretty sure Ruud is alive and well, just he's had no free time for Racer for a while as he was moving house.

I have a feeling he'll be popping his head up soon again...


Ah yes I could edit particles.ini I suppose.

This is another place where removing hard-coding into per-track customisations would be a nice way to go.

I really like the way we can define shaders for tracks for example. We have a library of defaults, then we reference them in generally standard ways at the heads of shader files, then we can then define specific shaders from there.

We should have this power for many track elements, so the default particles can exist, but we reference them in our special.ini and then we can change values if we wish... so the standard values are there but we can override per-track if we wish...


It's not so ideal to make content and then ask all your users who may have tweaked partciles.ini for their own stuff, to use your file just for your track.

I agree that if everyone had to set these up for every track we'd have a nightmare of standards issues, but defaults that you can then tweak with factors or over-rides (like the material noises we now have) makes a lot of sense!

Ie, special.ini material definition, having smoke=0....1 scale the particle opacity just seems logical, flexible, sensible, no down-sides, but loads of up-sides.





Also, another thing I've been getting a bit frustrated with is the sky rendering. Anyone else feel the sun is too big?

Try change this line:
Code:
float miePhase=sunny*0.000079577471636878192976419142055225*atmosMie*((1-g)*(1-g))/pow((1+g2-2*g*cos),1.5);
To this:
Code:
float miePhase=(sunny*0.1)*0.000079577471636878192976419142055225*atmosMie*((1-g)*(1-g))/pow((1+g2-2*g*cos),1.5);

Basically I'm using the sunny variable which throttles how sunny it appears, to throttle it back by 10 times as standard.

The sun suddenly appears a reasonable size in the sky, reflections of the sun in car bodywork appear more sensible etc.

I'm certain something is awry in the code for this because there is no way the sun fills so much of the sky. Even if you crank the exposure back with the standard settings it remains far too big... ie, we are not just seeing the 'glare' of the sun making it look bigger, it physically seems way way too big by many factors.


Anyone else had a play with this?


Since this value may be wrong, we also choose non-ideal sun intensity values, and thus wrong mie/ray settings, and a feedback loop of wrong value selection occurs again...

This then means we might pick bad sun diffuse/ambient values, and then use bad specular/gloss values on materials etc...

Hmmm

Hopefully the HDR format sky textures (f32 or something, Ruud mentioned it in a recent changelog?!) will alleviate some of these issues, at least with calibration of scenes, because we'll just set a realistic EV exposure for the scene, use the real HDR sky, and it should 'look' right. Then balancing values to that sky for diffuse/ambient should be a lot more intuitive :D


I'm still curious about the logic of having fresnel on all materials too, to impact specular just like reflections. I'm certain that is what is technically happening.

Also dumping the sun spot from the envmap render pass so we can replace with specular would seem prudent for improved visual quality (looks like how Assetto Corsa do it)
That sun-spot in reflections looks nice but it can get in the way quite a lot of the time (dark sides of the car reflecting the sun etc)... also still confused about the logic of specular. In theory specular=1 should be the maximum value we use as that is 100% reflection of the sun, but right now specular feels unit-less and doesn't correspond well to the sun-spot reflection in the envmap for intensity (ie, a ball with a sharp specular and a ball with just the env-map reflection have way different klux values, you have to set specular well over 1 to get a matching klux value, but then is klux from the sun spot wrong because of the mie scaling being wrong in my shader tweaks above!?!? arghhhh :D )

I guess this is again where f32 HDR envmap would really let us match things perfectly and get a feel for stuff because right now the Racer sky is, imo, giving unreliable reflections to base all our other values off!


Hmmmm

Thanks

Dave
 
PS, I found this document a while back.

http://www.ee.ryerson.ca/~phiscock/astronomy/light-pollution/luminance-notes.pdf

I'm pretty sure you can get a reasonable measure of point klx (klux) values from a HDR image, so in theory we could start HDR images and check values in the sky, clouds, sun spot etc, to make sure our values in Racer line up about right. (although I feel until specular obey fresnel we might struggle as I'm sure that speculars should obey fresnel!)

Hmmmm...


I'd certainly figure all this out myself but there are too many variables I'm unsure about. The F32 HDR skies would certainly help eliminate a massive chunk of unknown variables... but then the material responses wrt fresnel and specular.

Everything else seems fairly 'right' for now at least, we can tweak amb/diff on materials and get intuitive results so I'm happy enough with those. Just these pesky speculars really hehe.

Dave
 
Probably somewhere in the shader files...

I've been playing with 3DS Max Bipeds those last days, powerful stuff I admit...
Still, just for fun, I've tried animating Citra from FC3, Modeler doesn't seem to appreciate the model which is around 13K after cleaning her jewelry...I also tried to use less bones (fingers) & stuff, still no way...

Anyway, awesome you gave us the most extreme ways of animating with Mocap & stuff...
A huge collection of characters is in production in my studios !! :)

Here's a list of free Mocaps for advanced animators & characters modelers :
3dsMax-friendly .BVH release of 2548 human motions

Enjoy !
 
Also is anyone else finding the motion blur worse now than it was before?

I get a weird non-blurred area around A pillars on interiors, and also a gap behind cars when using an exterior view that isn't blurred.

I'm certain this wasn't a problem in the past but it appears to be one again these days... Hmmmm...

Dave
 
Hey, I upgraded to the latest beta version and I've disabled all the assists in the game (auto clutch and auto shift) But I cant do a burnout for example like in the version I had installed before (0.6) . When Im in idle (800-900 rpm) and try to loose the clutch pedal, the car stay in idle, it doesnt go forward, it just start to run when I press the gas button. what is the problem? Ive manually turn off assist in the racer,ini but it isnt working !
 
Hey, I upgraded to the latest beta version and I've disabled all the assists in the game (auto clutch and auto shift) But I cant do a burnout for example like in the version I had installed before (0.6) . When Im in idle (800-900 rpm) and try to loose the clutch pedal, the car stay in idle, it doesnt go forward, it just start to run when I press the gas button. what is the problem? Ive manually turn off assist in the racer,ini but it isnt working !

Welcome to Racer maat,
Make sure the car you are using doesn't have traction control enabled and also check the car.ini, set the autoclutch_rpm=0 this will make the car rev into it's power band as the clutch is engaged.

Alex Forbin
 
Also is anyone else finding the motion blur worse now than it was before?

I get a weird non-blurred area around A pillars on interiors, and also a gap behind cars when using an exterior view that isn't blurred.

I'm certain this wasn't a problem in the past but it appears to be one again these days... Hmmmm...

Dave

I made some changes to the shader that helped considerably and then accidently overwrote them (sigh). The point being that I've noticed it as well.
I'll get back on it as soon as I figure out what's wrong with bump mapping, it's been bugging me since it was first released. I've got it isolated down to a possible error in the model matrix that causes the light source to flip as it's rotated. This causes error in the shadow mapping as well as
the strange "chromelike" effect seen on semiglossy bumpy objects like vinyl tops and such.

Alex Forbin
 
I'll get back on it as soon as I figure out what's wrong with bump mapping, it's been bugging me since it was first released. I've got it isolated down to a possible error in the model matrix that causes the light source to flip as it's rotated. This causes error in the shadow mapping as well as
the strange "chromelike" effect seen on semiglossy bumpy objects like vinyl tops and such.
Yeah, it's strange specular-like light. If I understand normalmapping correctly, the 3 color channels correspond to the du, dv, and normal vectors - texture mapping coordinate system is important to getting it right. It's tricky math to keep in my head, and I forget how Racer does all the rotations.
f26vU0p.jpg

Shadows are enabled and it's in shadow, so it shouldn't be getting lit up that way. I haven't tested if it's actually coming from the specular term or somewhere else. It's at least relative to the right light source.

I believe the non-blurred area behind the car is 'cause it stops when it finds a 'non-moving' pixel (which is good, otherwise it would blur the car outward), it's just that the ground's moving so fast that it hits those from quite a distance away from the body. It might also be discarding too much of the blur - been a while since I looked at the details.

As far as I can tell, the modifications I made in RC3 did get passed along to RC5, with one exception...
Line 171 of motion_blur.cg was added.
Code:
color=i*tex2D(sceneMap,tc0).rgb;
It addresses a real problem with my code but is the source of the non-blurred area. When you comment it out, you get this.
XZfP274.jpg

The velocity map isn't quite hitting the edge of the car, so it gets this 'ringing' every so many pixels. I believe it's cause it gets partway between the pixels, which averages out the speeds - one's not moving, one's at 100km/h, so it doesn't think the pixel's slow enough to stop the blur. It does need a more aggressive method but the code above is obviously not perfect either, since it's saying "object is near something stationary; do no blurring at all".

Dropping the last 2 pixels when it hits an edge would be smarter but I'll have to think harder cause my naive attempt at doing that resulted in it dropping the original pixel sometimes, too (resulting in an output of no pixels)
 
Thanks for the input Stereo, I think with a little work we can vet the small problems out and have
a noticeable improvement in the graphics.

Try replacing line 120 in lighting.cg with this line....
float3 V=normalize(P-eyePosW);
This should fix the specular transposition. The diffuse seems to be the problem, I can set both other parameters to zero and it still shows up in shadow. I still think there is another transposition error in diffuse but have had no luck finding it so far.

I wish I could remember what I changed in the motion blur, it was something minor and allowed the motion to smoothly blend without any discernible frames showing. The effect was really nice and added a great deal of apparent smoothness to the motion without making you feel like you were on serious drugs.

Alex Forbin
 
Hi guys,

Hmmm, all my normal maps here seems to respond as I expect them to respond.

I was pulling my hair out the other day with normal maps (dyn_standard_bump_reflect) for my alloy wheel blur models, the normal map was spinning.
But then I realised at the last minute that I was using the wrong vertex shader... I think I was using dyn_standard_reflect vert shader because at first I was trying without a normal map.

So just for double checking I assume that both vert/frag shaders are set right?

Blurry normal mapped spinning wheels:

wheels.JPG

Code:
vf_wheel
{
  vertex_shader
  {
    file=dyn_standard_bump_reflect_v.cg
  }
  fragment_shader
  {
    file=dyn_standard_bump_reflect_f.cg
  }
}
 
shader_rim_rot~vf_wheel
{
  sort_offset=0
  cast_shadow=1
  motion_blur=0
  compression=0
  reflect=1
  ambient=1 1 1 1
  diffuse=1 1 1 1
  specular=1 1 1 1
  shininess=24
  mipmap_bias=1
  tangents=1
  fresnel
  {
    bias=0.08
    scale=0.92
    power=2
  }
  layer0
  {
    map=texture\rim_gr_rot.tga
    blendfunc=blend
  }
  layer1
  {
    map=texture\rim_gr_rot_nrm.tga
    mode=linear
  }
  layer2
  {
    map=$trackenvmap
  }
}

Tyre with normal map hidden under a bit of car and being lit nicely:

tyre.jpg

Code:
vf_bump
{
  cast_shadow=1
  vertex_shader
  {
    file=dyn_standard_bump_v.cg
  }
  fragment_shader
  {
    file=dyn_standard_bump_f.cg
  }
}
 
shader_tyre2~vf_bump
{
  motion_blur=0
  specular=0.2 0.2 0.25
  shininess=8
  tangents=1
  layer0
  {
    map=texture\eagle_f1_asym.tga
  }
  layer1
  {
    map=texture\eagle_f1_asym_norm.dds
    mode=linear
    mipmap_lod_bias=0
  }
}


I'm running energy conservation here because it's essential for a material using gloss maps to respond correctly. And since gloss maps are the key to realistic looking materials then I'm trying to get them working.
Issue is that I can't get the specular to respond to fresnel too, so that is hurting realism again haha.

The sooner we dump the sun-spot from the envmaps and can use specular again the better in my view. But it needs a slight over-haul. Fresnel ability and also the ability to have a few speculars on a material (mainly paints where you get a base coat specular and then a sharp sun spot specular off the lacquer!)


PS, Lambo is on it's way. It's not a huge update but it's an update non the less!

Hmmm

Dave
 
Hmmm...

Just to clarify on my mini-points at the bottom there.

Basically I'm trying to get a shader working that works thus:

1-kd for specular colour.
specular value in shader is then an exponent/tinting variable (probably best to set outColour = specular end result to tune the look of the map)

layer0.rgb = diffuse
layer0.a = transparency if you want it
layer1.rgb = normals
layer1.a = glossiness map

Shader values all still work as expected. Glossiness is set for the white point in the map, then black obviously always moves back to zero glossiness.
Issues here so far are that 0 gloss areas look a bit weird, technically they move back into diffuse, so energy conservation is essential to be used.
Also it's important for the speculars to scale up and get bright on the shiny areas properly! Energy conservation makes sense when you want to use gloss maps!

I've got it all working, but the big problem is fresnel on the specular.

If you tune the specular etc to look good at sunset with the sun bouncing off the asphalt, at midday from helicopter view the tarmac is blindingly bright! Basically, specular would die down just like reflections do in the same conditions.


It may be prudent to just get this shader working for now, if we can turn on energy conservation and fresnel specular *just* for this shader then that might be useful...

Transparency is useful in this case so we can just decal things on the ground. Ie, a man-hole cover using this technique will look amazingly nice! White lines at the sides of tracks or down the road centre line will look equally realistic. Trimming excess pixel space for the transparency pass is also easy just by tightening in the polygon edges.

Without alpha transparency the speed cost of this shader seems negligible too.

Generally really nice for track stuff without reflections (well, envmap ones) any way!

Hmmm

Dave
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top