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)...)
 
Anyone else looking at Onyx scripts?
There is a bug, the script doesn't unload when using Esc-key to return to the menu and after selecting another car racer will crash. This was using the script on racer.nl to open car trunk/doors
I started a thread for people to post problems and scripts but so far no takers.
 
I've still got a gripe with shadows. On track objects like fences, tree-lines etc, the shadow is blurred around its edges, which is good; except for where the wall or tree-line object intersects the road or grass where the shadow falls. The shadow blur adds an unshadowed line at the intersection point which just looks odd. I've commented on this before.
This time though, I've thought of a possible solution.
What if the shadow was offset towards the sun by the same amount as the blurred border? maybe the shadow could also be enlarged in the opposite direction by the same amount.
The idea being to move the blurred shadow edge at the intersection point so it's hidden by the object that creates it, but then stretch it back so it's the same size it was before the offset. If stretching it in one directions too hard, then just scaling the whole thing would suffice.
Thoughts anyone, particularly Ruud?
 
Up the geometry on intersecting elements (ie, make it more than 0 thickness)

That should then cast a shadow into the area where you are seeing light leak through.


I guess there are no easy solutions to this. Back a decade ago when you'd use shadow maps a lot in 3D rendering apps for pre-rendered video/stills this was an issue. The bias/filtering were always a compromise and you'd never get it perfect.
I forget now what all the pros and cons are but basically for every improvement in one apparent situation they look worse in another.

The only solution is to add a back-face (ie volume) to your geometry so the casting of the shadow is better.
Ie, the inside of a room needed walls with actual 'thickness' otherwise you'd get glowing strips down the edge of each wall/ceiling/floor interface :D


Cheers

Dave
 
I updated the drivers again, still the same. Grrrr... I want to finish the god damn GT86!

Code:
Tue Oct 16 11:56:47 (INFO ): [racer] --- application start ---
Tue Oct 16 11:56:47 (INFO ): [racer] Racer version: 0.9.0 RC4 (Aug  9 2012/14:30:13) - customer: Internet [main.cpp:186 / main]
Tue Oct 16 11:56:47 (ERR  ): [racer] wglGetProcAddress(glProgramVertexLimitNV) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Tue Oct 16 11:56:47 (ERR  ): [racer] wglGetProcAddress(glFramebufferTextureEXT) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Tue Oct 16 11:56:47 (ERR  ): [racer] wglGetProcAddress(glFramebufferTextureFaceEXT) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Tue Oct 16 11:56:47 (ERR  ): [racer] wglGetProcAddress(glMultiTexCoordPointerEXT) failed [gllextmgr.cpp:138 / check_wglGetProcAddress]
Tue Oct 16 11:56:47 (INFO ): [racer] render engine using Cg (3.30 - Intel Build 8.15.10.2653) [dgpushader.cpp:47 / DGPUShaderManager::DGPUShaderManager]
Tue Oct 16 11:56:47 (INFO ): [racer] DGPUShaderManager::Init() Geometry shading is not supported on this card (ATI?). [dgpushader.cpp:139 / DGPUShaderManager::Init]
Tue Oct 16 11:56:47 (WARN ): [racer] DGPUShader:Load(data/renderer/fullscreen_shaders_hdr/bloom_shadows_blur_f.cg): The profile is not supported. [qerror.cpp:41 / QShowCGErrors]
Tue Oct 16 11:56:47 (ERR  ): [racer] DFBOTexture; frameBuffer status not complete (Framebuffer incomplete, missing read buffer) [dfbo.cpp:549 / DFBOTexture::Create]
Tue Oct 16 11:56:47 (ERR  ): [racer] DFBOTexture ctor: OpenGL error (1286): (null) [qerror.cpp:68 / QShowGLErrors]
Tue Oct 16 11:56:47 (ERR  ): [racer] DFBOTexture; frameBuffer status not complete (Framebuffer incomplete, missing read buffer) [dfbo.cpp:549 / DFBOTexture::Create]
Tue Oct 16 11:56:47 (ERR  ): [racer] DFBOTexture ctor: OpenGL error (1286): (null) [qerror.cpp:68 / QShowGLErrors]
Tue Oct 16 11:56:47 (INFO ): [racer] DFrameLock::SetVSync: set vsync to 0 (verify that it now is 0) [dframelock.cpp:160 / DFrameLock::SetVSync]
Tue Oct 16 11:56:47 (INFO ): [racer] Physics engine: NEWTON v2.34, architecture 0 [rmanager.cpp:1417 / RManager::Create]
Tue Oct 16 11:56:47 (INFO ): [racer] FMOD: software format default is rate 48000, fmt 2, outChannels 2, inChannels 6, resampler 1, bits 16 [qsample.cpp:1395 / QSampleSetup]
Tue Oct 16 11:56:47 (INFO ): [racer] FMOD: attempted software format is rate 44100, fmt 2, outChannels 2, inChannels 6, resampler 3, bits 16 [qsample.cpp:1411 / QSampleSetup]
Tue Oct 16 11:56:47 (INFO ): [racer] FMOD: modified software format is rate 44100, fmt 2, outChannels 2, inChannels 6, resampler 3, bits 16 [qsample.cpp:1415 / QSampleSetup]
Tue Oct 16 11:56:48 (INFO ): [racer] Controls: main control file is 'profile1.ini' [rcontrolengine.cpp:814 / RControllerEngine::OpenConfig]
Tue Oct 16 11:56:48 (INFO ): [racer] Safety changed to: SAFE [rcontrolengine.cpp:460 / RControllerEngine::StepInput]
Tue Oct 16 11:56:50 (INFO ): [racer] Loading track 'carlswood_nt' [rtrack.cpp:1253 / RTrack::Load]
Tue Oct 16 11:56:51 (WARN ): [racer] DGPUShaderManager:MakeObject(standard_detail_burn_a_f.cg): can't create CG fragment shader program [dgpushader.cpp:888 / DGPUShader::LoadAndCreateFromFile]
Tue Oct 16 11:56:51 (WARN ): [racer] DGPUShader::LoadAndCreateFromFile[data/renderer/shaders/standard_detail_burn_a_f.cg]: The compile returned an error. [qerror.cpp:41 / QShowCGErrors]
Tue Oct 16 11:56:51 (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]
Tue Oct 16 11:56:54 (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]

If I turn off shadowmapping Racer won't even start!
 
I don't know how doable this is, but as a feature request:

.dof-specific shd files that override the car/track.shd just for that dof type, similar to how surfaces match texture names.
eg.
trafficcone_01.dof
trafficcone_02.dof
trafficcone.shd
For one thing it would make tracks shd files less intimidatingly huge if objects could be broken out by type. For another, it makes dofs more portable - moving wheels one car to another can be entirely a matter of copying a few files and changing car.ini, not of adding in new shader definitions.
 
I'm open to flexibility in that regard.

I mentioned to Ruud that system whereby anything with the geometry*.ini is simply appended to the end of geometry.ini at track load.

Ergo you can just split stuff up but have them combined at load time.

So we can then split track geometry, track shaders, whatever else, which would make life really easy.

Doing it for cars could be done too, so wheels.shd, interior.shd, exterior.shd, whatever... but they all just get stuck to the main car.shd or track.shd at load time.


Hmmm

Dave
 
I guess that's where the global material/shader definitions would come in handy - like Some1's been requesting for ages.
That way rather than having the vertex and fragment shaders defined at the top of every file (and possibly conflicting between cars if you're swapping wheels etc.) they're inside the data/renderer/ folder.

I haven't been on the forums in quite some time but it doesn't look like much has happened lately...
 
Not much has happened lately.

I think Ruud has been moving house which is always a busy and stressful time, and he has real life and real work to live too!


BUT, there is always the "us" element too. We could be making content till it comes out of our ears but we don't.
No it doesn't help that shaders change often and there are some bugs, but still, we could be doing a heck of a lot more as a community to help Racer along!


I've been having a play with the F458 again Cam, and it's a great car, it just needs finishing up, re-optimising and releasing for us all to enjoy.
Good sounds, nice to drive, looks good (put in 180deg steering and those hands you did!)... perfect!

Maybe a chunk of work, maybe 15hrs to put in, but well worth it in my view. It's so close to finished really. A decent config tool that works and you have made a really nice product there!





As per the shader stuff, I think the problem is that shader definitions will need to be loaded at run-time and stored somewhere so car shaders can use them if they call them, and that might mean loads of them eventually...

I think it's still too early to lean out the rendering stuff, it's good to keep it flexible right now.

When we have say 20 really good cars that all run fast and we can see a common set of shaders that they all use and use them in kinda the same ways, then fine, use those as defaults, but right now there isn't even any good content that is finished and released that uses sensible shader standards to use as a base for future content.

Same with tracks, right now there isn't anything that truly looks/feels realistic and uses sensible texture sizes, optimisations and shaders.

Not putting any content down, just I think to try define a set of defaults now when no one can even make one optimised piece of content would be foolhardy... and I'm included in that haha!


But, I think things like additional shader files makes sense.

Have the default track/car.shd files, but then have wildcard *.shd files appended to the ends, using their OWN shader definitions where needed (so they can be transported)... that way we can simply pick up a community set of cones we like, drop them (dof/texture) in our track, and drop in the kenneth_cones.shd file and it just works!


Same goes for geometry.ini too I think. I'd like to be able to have different layouts and models put in different files. That way you can run a batch file to move them into and out of folders to reconfigure a track really nicely.
The skins feature is a possibility but not even sure how well that is supported right now, or if it even works.

Stacking ini files makes a LOT of sense for the content we like to be making, from shd to special.ini to car.ini etc etc!


Dave
 
Stacking ini files makes a LOT of sense for the content we like to be making, from shd to special.ini to car.ini etc etc!


Dave
Yeah, I hadn't thought about it outside of shd file context, but other inis, if they don't have a strict numbering system for variable length sections (which views.ini and car.ini do) could easily just look at all matching files one after the other.

Extra swappable inis could also be used to improve performance. If eg. geometry.ini contains only the track and immediate surroundings, with details constructed incrementally (buildings, modeled grass, detailed trees, etc.) it's easier to find and remove what you can do without.


The other thing I wanted to comment on as I've been working on cars recently is the generic model section. Scripted models can have an offset that's not based on from/to, but I can't find any syntax that does the same offset without having to run a script with the car. Is there syntax to move/rotate a generic model from car.ini? It's a little awkward to have a script move them around compared to being directly set up.


WRT 090 content, graphically the RX7 just needs a once-over to confirm everything works in a vanilla installation, clean up the folder, and some tuning of the textures to better match current graphics. Might be nice to have someone experienced run through the .ini again, but it throws no QLOG messages. It does need a couple cameras fixed, the new SMD made the in-car ones shaky.
 
Racer is dead, long live Racer!

I guess I'm a bit of a traitor for saying this, but lately many other racing sims have been getting my attention. rFactor2 has great potential, and while the beta still contains some annoying bugs, I think the final version will be awesome.

Then there is pCARS (just recently I upgraded to Team Member), which IMHO has one of the most realistic (or best?) graphics I have seen lately. While pCARS is not moddable, nor a pure sim, it is still very interesting project.

Next, I have my eyes on Assetto Corsa, which is advertised to have DX11 graphics and will be modder friendly racgin sim.

Finally there is also Simbin's RaceRoom Racing Experience, also nics graphics and great physics.

So, I'm afraid, Racer currently doesn't really have anything to offer me. I think this project has lived for too long and mutated too much over the course of its long history. Being also a programmer, I can only imagine the horrors that could be found in the 12+ years old codebase. :) Perhaps it's time to start over?
 
Unfortunately some1 is right. Over the last two years I have been driving other
sims, improving textures, porting between them and tweaking ini's and .trk's.
Racer has become the platform where I test my models, but I don't really use
it for driving anymore. It is merely a modeling platform, and as such, great,
but the overall value is void. I'll still drop in with a track or two, but it is no
longer on my prio's. Sorry.

PS: RR2 & RRE are awesome! With modding ability they would be my preferred :D
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top