Racer v0.9.0 RC4 released

Ruud

RACER Developer
Another version... get it at http://www.mediafire.com/file/p79inu8n3mhani8/racer0.9.0_rc4.7z

The changes:
- Passing of scale and dt in motion blur done directly to motion_blur_f.cg
- 'graph delta ...' command did not seem to work. Fixed.
- 'show carpoints' now also paints the warp matrix (initial position/rotation)
- Task priority not set higher anymore; it can conflict with ethernet drivers apparently
- 'reset car' (or Shift-F/Shift-R) now also takes into account the initial roll angle (banking of the surface)
- lighting.cg could generate NaN when shininess was 0 (specular maps can do that)
- Onyx execution speedup by around 50% with function tables.
- Modeler now has a 'Unify materials' button to let the model use only the first material.
- Automatic transmission now accepts curves for better shifting; see http://www.racer.nl/index.php?jump=tutorial/gearbox.htm#automatic_transmission
- Onyx now supports equalities between ints (int i,j; if(i>j)...)
 
Does that mean that every car made must use "head physics" cameras? The same car in ver 090_rc3 worked with out the error and not all cars have the problem and it's not with all cameras, just a few. Two cars with the problem are the Porsche 916 and the Simca Aronde. Try them and see if you have the problem also.

Besides, I don't like the "head physics" cameras as the fixed camera works very nicely for me! It's fine if you want to use them.

Another irritant is the new BLACK font, it's the same old font reversed. Can't Ruud leave things that work alone? The old font had white with black edging which worked unlike these that are INVISIBLE when the trees on carlswood are behind them!

Boomer,
I wouldn't say it was a must, but using the head physics gives you a lot of latitude as to how the camera works and it's a great way to convey the forces the car is experiencing.
I prefer to keep it subtle, a barely noticeable tilt, some forward movement, more rearward movement and a bit of side to side works great and really aids in "feeling" the track surface.

I agree on the black font, it was driving me crazy until someone posted. I've been going through the lighting and HDRI shaders and thought that I had messed something up. lol.

Alex Forbin
 
Agreed on the debug menu font colour - didn't we have this experiment before once already? It's a bad choice considering most of the time the background is dark grey/green.

There's a typo in the Ctrl+9 menu for "Theor. static weight% distributun (sprung mass)".

Shift curves are a convenient addition, makes it a quicker job to set up the behavior without trigonometric functions in scripts like I did so far. The fact that it uses world coordinate based velocity is actually positive, too, since from what I gather on a number of automatic transmission logics, in real life they do compare apparent vehicle speed (wheel rotational velocity) and engine rpm, engaging the shift only if the two parameters are reasonably well matching up.

I agree, the shift curves seem to work fine. Now we should think about torque multiplication and stall since they are very important as well. I would think that curves might be the way to go for them as well.

Alex Forbin
 
Thanks for the reply Cosmo and Alex,
The problem is with fixed cameras that don't have to/from variables which doesn't make a lot of sense for a Qlog error. Also there are cars made with out a driver so I guess that "head" cams will still work. They just take a lot of tweaking to get right. Did you try the two cars that I mentioned?
Ruud needs to fix both problems imho.
 
Will there be/is there anything like "look-to-apex" in Racer?
Have been using it with GTR2 for a while now (at 60%) and
it really is a cool feature. (GTR2 tuning is also why I have
delayed my tracks.. sorry :p)
 
There already is a look to apex in Racer, check in the racer.ini...

Perhaps something worth adding in under the driver head camera type, so you can basically scale the look to apex amount from 0 > 100%

Hmmm

Dave
 
Not sure on POV follow and support with the newer cameras for the driver head then. Hmmm, have you checked the documentation on racer.nl (if present?)


Generally rc4 seems pretty nice but I'm having issues with a surging of FPS here, seems to be maybe 1.2 seconds of ok running then a sudden pause and fps dip then back to speed again, constantly.

Not really sure what might be causing it as the last version was fine.

Hmmmm

Dave
 
Hmm

I've set racer.ini process.cpu_affinity_mask=1 and it's made things a lot nicer now. FPS seems higher and the surging has gone.
CPU0 is solid in task manager wheras before all four cores were up/down near 25%...

However I do generally get a 1hz or so surge in the FPS readout display all the time in Racer these days, like the FPS is spiking to say 75% of peak fps for a few ms then steady for a second, then spiking for a few ms, then steady for a second, then a spike for a few ms again.

Weird... do other people have rock solid FPS when sat still in Racer, or have this weird pulsing FPS readout?


At least the surging/pause has gone now, it's only noticeable by an FPS readout fluctuation now.


Cheers

Dave
 
Mr Whippy said:
As per the current auto-exposure, try turning the update from whatever it is to about 1500 or something.
Generally rc4 seems pretty nice but I'm having issues with a surging of FPS here, seems to be maybe 1.2 seconds of ok running then a sudden pause and fps dip then back to speed again, constantly.

Not really sure what might be causing it as the last version was fine.

Hmmmm

Dave
Auto-exposure does cause a bit of a dip, I imagine it's more noticeable the lower the framerate. I have it set to 5000 (5sec) on my laptop and that smooths it out enough.
 
Hmmm, that is weird...

I wonder if a better algorithm might be possible. Ie, the metering on an SLR camera looks at the scene and has a grid of points on it and uses a LUT of grids to get the right exposure... they don't for instance do what we do and render the scene, then mip it down, then take the brightness... hmmm, who knows.




I've also noticed that my ambient specular is in this version. I'm not sold on the implement you've made here Ruud since it's just Ks * Ka globally which is just not nice.

It works nicely when you can scale the Ks (scale per shader), or better yet when you scale against a decent specular control map (like we see on most track surface materials)... but applying it globally at full strength to EVERY material is really not a good implement.

What it ends up doing is essentially making elements glow if they have a specular amount which is technically correct for stuff more towards lambertian surfaces, but as we approach totally shiny surfaces we actually get less ambient response, and it's often those materials where specular values are higher too.


We should go back to the old implement for ambient imo. It's well worth adding specular ambient but I think we should just make specific shaders where we want it.
Perhaps make a few of the key shaders for track materials with an _ambspec suffix with the scale adjustment too, so we can implement the effect with some control.


Cheers

Dave
 
tested this version today, well it worked with my old Microsoft sidewinder, very very fun game:D although i didn't tested everything, the game as some strange reflections on some cars and you have to put the monitor in HD resolutions in order to see and select everything. i don't know if this is a issue but im just reporting my experience.
 
Which part of the automatic transmission curve setup are you guys having trouble with? The car.ini code is straight forward, looks like this:

Code:
engine
{
...
    shift_curves
    {
      gear1_2=crv/transmission_automatic_1_2.crv
      gear2_3=crv/transmission_automatic_2_3.crv
      gear3_4=crv/transmission_automatic_3_4.crv
      gear4_5=crv/transmission_automatic_4_5.crv
      gear5_6=crv/transmission_automatic_5_6.crv
      gear6_5=crv/transmission_automatic_6_5.crv
      gear5_4=crv/transmission_automatic_5_4.crv
      gear4_3=crv/transmission_automatic_4_3.crv
      gear3_2=crv/transmission_automatic_3_2.crv
      gear2_1=crv/transmission_automatic_2_1.crv
    }
...
}

You can name the .crv files whatever you want and as you can see here, I also put them in a subfolder of the car's directory together with the rest of the engine, suspension and views.ini .crv files to keep things neater. The call on the left side of the equal sign is obvious, whichever shift maneuver you want to define with the .crv given on the right side has to be defined like this (ie, gear[from]_[to]).

The curves themselves should be clear, too. The example given on the documentation page shows the vehicle speed over throttle position relation that tells Racer when a shift is supposed to happen. If you search for transmission shift tables or similar terms, you can actually find a lot of examples from service manuals and such online, most of them using vehicle speed vs throttle position as well. So, you only need to convert units from mph or km/h to m/s and you're good to go.

In case you have no actual data at hand, a spreadsheet that links engine speed and vehicle speed might be useful - this way you can find the right speed numbers quite easily if you feel it's more convenient to think of shift rpm vs throttle position.
 
You still need the regular shifting section since it contains the info on throttle and clutch behavior, as well as automatic=1 telling Racer that it has to do the shifting for you in the first place. Even if shift_up_rpm/shift_down_rpm are kind of obsolete, in typical Racer fashion QLOG will complain about them missing if you leave them out, although the curves work fine without those two entries. So, the long version of the previous code looks like this for example:

Code:
engine
{
...
  shifting
  {
    automatic=1
    blip_throttle=0.25
    cut_throttle=0
    fast=1
    shift_up_rpm=6500
    shift_down_rpm=1500
    time_to_declutch=0
    time_in_neutral=0
    time_to_clutch=100
    time_to_declutch_down=0
    time_in_neutral_down=0
    time_to_clutch_down=100
    shift_curves
    {
      gear1_2=crv/transmission_automatic_1_2.crv
      gear2_3=crv/transmission_automatic_2_3.crv
      gear3_4=crv/transmission_automatic_3_4.crv
      gear4_5=crv/transmission_automatic_4_5.crv
      gear5_6=crv/transmission_automatic_5_6.crv
      gear6_5=crv/transmission_automatic_6_5.crv
      gear5_4=crv/transmission_automatic_5_4.crv
      gear4_3=crv/transmission_automatic_4_3.crv
      gear3_2=crv/transmission_automatic_3_2.crv
      gear2_1=crv/transmission_automatic_2_1.crv
    }
  }
}

The gearbox.gear sections remain as before - the shift curves feature only added another way to have throttle dependent automated shifting behavior, which we have otherwise done via scripting so far.
 
In theory you can now combine this auto script behaviour quite nicely with setting automatic gearbox on/off via scripting.

The only side issue is that when setting auto/manual you need to have car.ini auto=0 and then set automatic ON, if you do car.ini auto=1 and try turning it off it doesn't work... or is it the other way around.
Also the console pops up when the change is made which is weird.

But yes, we can then do things like hold a gear for example if rpm is over 3000rpm and brake is over say 50%, ie we are in a braking zone and don't want the car to change UP a gear, so we set it to manual so it'll always keep over 3000rpm for instance.

So loads of reasons maybe to still script, but these curves do help us get a much better automatic style gearbox behaviour straight off in my view :D

Dave
 
Hello fellow Racers! Since I got a new computer (Intel i7, nVidia GeForce GT 630M 2GB), I decided to give Racer another go, but everytime I go to quick race or car seleccion, I get this, any thoughts?

Fri Aug 31 15:50:09 (INFO ): [racer] --- application start ---
Fri Aug 31 15:50:09 (INFO ): [racer] Racer version: 0.9.0 RC4 (Aug 9 2012/14:30:13) - customer: Internet [main.cpp:186 / main]
Fri Aug 31 15:50:09 (ERR ): [racer] wglGetProcAddress(glProgramVertexLimitNV) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Fri Aug 31 15:50:09 (ERR ): [racer] wglGetProcAddress(glFramebufferTextureEXT) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Fri Aug 31 15:50:09 (ERR ): [racer] wglGetProcAddress(glFramebufferTextureFaceEXT) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Fri Aug 31 15:50:09 (ERR ): [racer] wglGetProcAddress(glMultiTexCoordPointerEXT) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Fri Aug 31 15:50:09 (INFO ): [racer] render engine using Cg (3.30 - Intel Build 8.15.10.2653) [dgpushader.cpp:47 / DGPUShaderManager::DGPUShaderManager]
Fri Aug 31 15:50:09 (INFO ): [racer] DGPUShaderManager::Init() Geometry shading is not supported on this card (ATI?). [dgpushader.cpp:139 / DGPUShaderManager::Init]
Fri Aug 31 15:50:09 (WARN ): [racer] DGPUShader:Load(data/renderer/shaders/empty_f.cg): The profile is not supported. [qerror.cpp:41 / QShowCGErrors]
Fri Aug 31 15:50:09 (ERR ): [racer] DFBOTexture; frameBuffer status not complete (Framebuffer incomplete, missing read buffer) [dfbo.cpp:549 / DFBOTexture::Create]
Fri Aug 31 15:50:09 (ERR ): [racer] DFBOTexture ctor: OpenGL error (1286): (null) [qerror.cpp:68 / QShowGLErrors]
Fri Aug 31 15:50:09 (ERR ): [racer] DFBOTexture; frameBuffer status not complete (Framebuffer incomplete, missing read buffer) [dfbo.cpp:549 / DFBOTexture::Create]
Fri Aug 31 15:50:09 (ERR ): [racer] DFBOTexture ctor: OpenGL error (1286): (null) [qerror.cpp:68 / QShowGLErrors]
Fri Aug 31 15:50:09 (INFO ): [racer] DFrameLock::SetVSync: set vsync to 0 (verify that it now is 0) [dframelock.cpp:160 / DFrameLock::SetVSync]
Fri Aug 31 15:50:09 (WARN ): [racer] racer.ini:renderer.shadowmapping.enable is not 0 but shadow.project_shadows=1 [rmanager.cpp:1253 / RManager::Create]
Fri Aug 31 15:50:09 (WARN ): [racer] That would give double shadows; ignoring shadow.project_shadows (set it to 0) [rmanager.cpp:1254 / RManager::Create]
Fri Aug 31 15:50:09 (INFO ): [racer] Physics engine: NEWTON v2.34, architecture 0 [rmanager.cpp:1417 / RManager::Create]
Fri Aug 31 15:50:10 (INFO ): [racer] FMOD: software format default is rate 48000, fmt 2, outChannels 2, inChannels 6, resampler 1, bits 16 [qsample.cpp:1395 / QSampleSetup]
Fri Aug 31 15:50:10 (INFO ): [racer] FMOD: attempted software format is rate 44100, fmt 2, outChannels 2, inChannels 6, resampler 3, bits 16 [qsample.cpp:1411 / QSampleSetup]
Fri Aug 31 15:50:10 (INFO ): [racer] FMOD: modified software format is rate 44100, fmt 2, outChannels 2, inChannels 6, resampler 3, bits 16 [qsample.cpp:1415 / QSampleSetup]
Fri Aug 31 15:50:10 (INFO ): [racer] Controls: main control file is 'profile1.ini' [rcontrolengine.cpp:814 / RControllerEngine::OpenConfig]
Fri Aug 31 15:50:10 (INFO ): [racer] Safety changed to: SAFE [rcontrolengine.cpp:460 / RControllerEngine::StepInput]
Fri Aug 31 15:50:12 (INFO ): [racer] Loading track 'carlswood_nt' [rtrack.cpp:1253 / RTrack::Load]
Fri Aug 31 15:50:12 (WARN ): [racer] DGPUShaderManager:MakeObject(standard_detail_burn_a_f.cg): can't create CG fragment shader program [dgpushader.cpp:888 / DGPUShader::LoadAndCreateFromFile]
Fri Aug 31 15:50:12 (WARN ): [racer] DGPUShader::LoadAndCreateFromFile[data/renderer/shaders/standard_detail_burn_a_f.cg]: The compile returned an error. [qerror.cpp:41 / QShowCGErrors]
Fri Aug 31 15:50:12 (WARN ): [racer] data/renderer/shaders/shadowmapping.cg(169) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(215) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(262) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(270) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(278) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(334) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(342) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(350) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(358) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/standard_detail_burn_a_f.cg(63) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/shaders/standard_detail_burn_a_f.cg(88) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/shaders/standard_detail_burn_a_f.cg(89) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/shaders/shadowmapping.cg(104) : warning C7011: implicit cast from "float4" to "float"
data/renderer/shaders/shadowmapping.cg(104) : warning C7011: implicit cast from "float4" to "float"
data/renderer/shaders/shadowmapping.cg(88) : warning C7050: "iSqrtSamples" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(88) : warning C7050: "iSqrtSamples" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(88) : warning C7050: "iSqrtSamples" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(90) : error C5508: the operator "&" is not supported by this profile
data/renderer/shaders/shadowmapping.cg(90) : error C5508: the operator "&" is not supported by this profile
data/renderer/shaders/shadowmapping.cg(90) : error C5508: the operator "&" is not supported by this profile
data/renderer/shaders/shadowmapping.cg(98) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(101) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(98) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(101) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(98) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(101) : error C5013: profile does not support "for" statements and "for" could not be unrolled. [qerror.cpp:46 / QShowCGErrors]
Fri Aug 31 15:50:14 (FATAL): [racer] DGPUShaderManager:MakeObject(standard_detail_burn_a_f.cg): can't create CG fragment shader program
The compile returned an error.
data/renderer/shaders/shadowmapping.cg(169) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(215) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(262) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(270) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(278) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(334) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(342) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(350) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/shadowmapping.cg(358) : warning C7011: implicit cast from "float4" to "float2"
data/renderer/shaders/standard_detail_burn_a_f.cg(63) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/shaders/standard_detail_burn_a_f.cg(88) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/shaders/standard_detail_burn_a_f.cg(89) : warning C7011: implicit cast from "float4" to "float3"
data/renderer/shaders/shadowmapping.cg(104) : warning C7011: implicit cast from "float4" to "float"
data/renderer/shaders/shadowmapping.cg(104) : warning C7011: implicit cast from "float4" to "float"
data/renderer/shaders/shadowmapping.cg(88) : warning C7050: "iSqrtSamples" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(88) : warning C7050: "iSqrtSamples" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(88) : warning C7050: "iSqrtSamples" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(163) : warning C7050: "shadowTerm" might be used before being initialized
data/renderer/shaders/shadowmapping.cg(90) : error C5508: the operator "&" is not supported by this profile
data/renderer/shaders/shadowmapping.cg(90) : error C5508: the operator "&" is not supported by this profile
data/renderer/shaders/shadowmapping.cg(90) : error C5508: the operator "&" is not supported by this profile
data/renderer/shaders/shadowmapping.cg(98) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(101) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(98) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(101) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(98) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
data/renderer/shaders/shadowmapping.cg(101) : error C5013: profile does not support "for" statements and "for" could not be unrolled. [%s]
 

Latest News

How long have you been simracing

  • < 1 year

    Votes: 340 15.5%
  • < 2 years

    Votes: 229 10.5%
  • < 3 years

    Votes: 229 10.5%
  • < 4 years

    Votes: 174 8.0%
  • < 5 years

    Votes: 293 13.4%
  • < 10 years

    Votes: 255 11.7%
  • < 15 years

    Votes: 163 7.5%
  • < 20 years

    Votes: 123 5.6%
  • < 25 years

    Votes: 99 4.5%
  • Ok, I am a dinosaur

    Votes: 282 12.9%
Back
Top