Released SchottenRing_67, GTL Conversion...

I think pure random noise is better than trying to put any 'texture' in the road's specular/bump map, the limit of how much I'd tweak it is to maybe lower the amount of noise along the middle of the lane where tires wear it smooth.

rEL1u.png

Something like this, but with more effort put into making it tile properly.
 
Noted with tracked that the pines_neu was flashing a green shrub with a yellow one, looks like two objects want to be in the same location so the graphics card alternates between the two.

There are a few other places that appear to have the same problem.
 
You can use a 'scale' in the road texture...

Then use your usual rgb for diffuse

Then use a scale=4 for example...

and have the bump(rgb),spec(a) map a 512x512 with quite high detail then you can start to zoom in and not have the road surface looking like jelly but actually having a nice sharp edged asphalt look to it.

Half the issue with normal maps is that the mips which are automatically generated as TGA are not correct. You need to rescale the height map THEN normal map it, then save that to the appropriate mip location.


If you simply allow rescaling of a normal map then they go soggy looking, and that is exactly why they usually look horrible...

With 3DS Max procedural tools you can make a pretty nice height map bump texture, then make height maps at a range of sizes, then normal map each one, then save em to mip slots.



Here is a quick one where tex0 rgb.a is diffuse/spec, and then the tex1 rgb is normals

Try:

Code:
vf_bump
{
    vertex_shader
    {
        file=standard_bump_v.cg
    }
    fragment_shader
    {
        file=standard_bump_speca_f.cg
    }
}

Code:
shader_road~vf_bump
{
    specular=1 1 1 1
    shininess=8
    cast_shadow=0
    tangents=1
    layer0
    {
        map=road.tga
    }
    layer1
    {
        compression=0
        mode=linear
        map=road_nrm.dds
 
    }
    scale=3
}

And these files:
gowhippy.com/racer/road_nrm.zip

gowhippy.com/racer/standard_bump_speca_f.cg

Obviously provide your own diffuse/spec map road.tga file.





If you want to use the alpha in the normal map file to do specular with scale, then just change:

Code:
file=standard_bump_speca_f.cg

to:

Code:
file=standard_bump_f.cg


Cheers

Dave
 
Pants, I get 15fps here give or take.


You could atlas up 90% of the track and geometry and probably get about 4x more speed.

Then just chop the track up at say 750m intervals and you'd be doing ok.



Just need to get it all into Max and then spend a day going through it all optimising it for modern GPU needs (ie, low batches, atlases, few shaders etc)

May as well get a load more GPU speed free'd up then you can go back in and improve textures/shaders (ie, draw spec maps for everything etc)


Hmmm

Dave
 
The shaders still need quite some work. Compare the two screenshots.
The first is from Race07 and the second from Racer. They use the same
textures, but as you see, the shaders are very different. Other than that,
the track is very good :D

Below: Race07
capture_race07.jpg


Below: Racer09
capture_racer.jpg
 
Race07 is using LDR rendering from what I can tell, so the textures are 'tweaked' to look balanced for that rendering environment.

Racer uses HDR and a realistic tone mapping so the texture needs might be fairly different.


In my view the shaders need more 'spark' but the textures probably work ok.

With tweaks the Racer version should look better than the Race07 version which even at it's best looks flat and washed out... it looks good of course, but no realistic.

Racer can look both realistic AND good with the right tweaks to those Race07 assets.


Imo Racer needs another re-work (subtle) to the GFX/shader concept. Mainly around how we deal with specular... but it'd make life easier for artists and stuff look even better, and in theory it'd be simple to achieve too hehe.


All good stuff.

Dave
 
.. the Race07 version which even at it's best looks flat and washed out...
Dave

I disagree. Using enbseries you can add post-prosessing which *can* improve
Race07 a great deal. With lowered saturation, a minimum of bloom, light and
shadow adjustments in enbseries.ini you can get a pretty good and even
semi-realistic impression. That is my experience anyway. It is of course not
native to Race07, but it does say a great deal about how important the shaders,
here in the form of post-prosessing functions, are.

But to stay on-topic, textures are just "holders", they need to be lit, shadowed,
bumped, reflected, whatever is needed to make the environment "visible". In the
"old" days a texture was "it", it defined by being a "look-alike" of the real thing,
a symbol of reality. Today it is not as simple as that. The texture is the "atom"
that must be set in motion. That is what the shaders do, and that is what this
track needs.
 
Post-processing LDR generated images to 'appear' HDR, on an LDR monitor, isn't ideal. In my view they still look fake. They might look good, but still unreal.
GTR2 looked good, but it still doesn't look real. There is nothing wrong with looking unreal but what is our goal here? It'd be nice to do real because in the end it can be easier to achieve consistency which is a good thing considering how Racer works (ie, content from all over)


HDR processing tone-mapped to LDR for monitor is what we have and it works great.




Imo, realism often doesn't look how we expect it to look, and as we have said before just one weak link cascades down through the rendering. Ie, if the sky intensity is too bright then the exposure cranks down, and then stuff looks too dark, so we brighten textures or sun diffuse/ambient values, but it all gets unbalanced quickly.

In my view there is little to do to the second shot above except sense check all the values from top to bottom. Once they are right the shaders are the last thing.

Imo all they really need is specular response adding. That right now is a bit in limbo and is the biggest problem Racer has.
Ambient specular and diffuse specular responses need to be standardised somehow.

I've been looking for example at general specular response for dielectric and generally the colour seems to be inverse diffuse channel, and quite homogeneous. What makes most difference is the glossiness.

So perhaps we need to just say specular = 1/diff * scale (scale factor to add/reduce contrast of resulting output, probably a square curve function like 'curves' in photoshop), and then use the alpha channel to do glossiness maps instead?

Then we need to dump envmap sun spot and do ALL specular energies via other means to keep values in a consistent space between the two specular response types (currently massively unbalanced so authoring spec maps is impossible as you get one response right but the other is still miles out sometimes)


All relatively easy stuff in concept but unfortunately I'm not a pro shader writer like Ruud or Mitch... :D


The end result should be pretty much providing a nice texture, and then a glossiness map (hard to conceptualise what they might look like but generally shiny = white, matte = black) and then tweak the scale value to make it look right.

In theory getting materials right when the overall reaction to light and specular are all sensible becomes much easier.
Problem right now I think that puts people off is that the reaction to light and specular are broken because we have tended to a situation where diffuse/ambient are manually entered while the sky dome is procedurally generated, so we instantly have a mis-match of values/intensities that impact different materials different amounts.

Matching them is a task and a half before you go any further, and as soon as you do you hit the brick wall that is the envmap sun-spot being another intensity again vs the track crv/specular curve value (actually sun diffuse crv linked)... arghhhh :D

Then we hit the issue that specular vs envmap reflection are done differently (specular is just equal power across viewing angle while sun-spot power is adjusted across viewing angle with fresnel value)
Ideally we'd specify the bias/power/scale curve per material (or IOR) and have it impact the specular term too, both for specular ambient and specular diffuse.


Again, it's all kinda in there already, all the code/logic and hard work is done. It's just juggling it about in the background to do things a more sensible way so materials just react properly.

Right now we can make nice materials but we have to manage each one specifically with tweaks per shader, and that is just not ideal really. Racer should just make sense for authors out of the box. Diffuse/gloss map, a scale value, and an IOR or fresnel set, and then literally let the shader do the rest around that basic functionality for track materials.

For me right now I just can't seem to get the same look as I get when I drive around in my car and look at real materials. Ambient specular is half the fix, but without changing everything else around as above, then it's just a massive task of per-material tweaking/checking rather than it being all automatic because of balancing the methods of dealing with each element of reflection from 'diffuse' through to 'ambient' energy driven ones.

Hmmm

Dave
 
Ideally we'd specify the bias/power/scale curve per material (or IOR) and have it impact the specular term too, both for specular ambient and specular diffuse.
This interests me in particular - what does the fresnel curve look like for specular spots of various sizes? It makes sense that it would match up with the reflection curve, since specular light is just scattered reflections... but at the same time, the 'size' of the specular spot means it's receiving light from a range of angles. So maybe you need to convolute the specular's shape with the fresnel curve? (for non-mathematicians, that means the fresnel curve gets blurred). Which in turn means it can be modeled best by a slightly different curve from the original. I'd expect something like the largest specular spot (low sharpness values) to be higher bias, lower scale, and the small specular spot (basically a sunspot) to match with the original reflection's fresnel.

I don't recall spec. currently being affected by anything like a fresnel curve so that would explain part of why it's wrong. I took a quick look at my 'metallic silver' headphones in the sun and it's fairly obvious there's a curve going on, with maybe 5 times the brightness at steeper angles. My mouse has a sharper specular spot, and it looks more like the ~20 times brightness you see on completely reflective objects. (EDIT: I took this part to the Off-topic thread. It does indeed have a fresnel component if the right flags are set but I can't tell whether they are)

But then there's metallic paint and such where there are actual multiple layers of differently behaving materials, which have been 'faked' with spec. light. It's probably most realistic to be able to enter their info separately and mix them, but I'm not sure how to accomplish that in terms of material shaders. One way would be to assume the 'gloss' clearcoat on top behaves in a static fashion (maybe based on the gloss texture map) and just make the material entirely defined as the metallic undercoat, with the shader producing the glossy upper layer.
 
Dave.. you lost me at hello..

Edit: I did some research and have a somewhat better understanding of what you are
trying to say. And even noticed *what* the difference means. That is good.
Thank you for taking the time to explain these complex issues :)
 
This interests me in particular - what does the fresnel curve look like for specular spots of various sizes? It makes sense that it would match up with the reflection curve, since specular light is just scattered reflections... but at the same time, the 'size' of the specular spot means it's receiving light from a range of angles. So maybe you need to convolute the specular's shape with the fresnel curve? (for non-mathematicians, that means the fresnel curve gets blurred). Which in turn means it can be modeled best by a slightly different curve from the original. I'd expect something like the largest specular spot (low sharpness values) to be higher bias, lower scale, and the small specular spot (basically a sunspot) to match with the original reflection's fresnel.

I don't recall spec. currently being affected by anything like a fresnel curve so that would explain part of why it's wrong. I took a quick look at my 'metallic silver' headphones in the sun and it's fairly obvious there's a curve going on, with maybe 5 times the brightness at steeper angles. My mouse has a sharper specular spot, and it looks more like the ~20 times brightness you see on completely reflective objects. (EDIT: I took this part to the Off-topic thread. It does indeed have a fresnel component if the right flags are set but I can't tell whether they are)

But then there's metallic paint and such where there are actual multiple layers of differently behaving materials, which have been 'faked' with spec. light. It's probably most realistic to be able to enter their info separately and mix them, but I'm not sure how to accomplish that in terms of material shaders. One way would be to assume the 'gloss' clearcoat on top behaves in a static fashion (maybe based on the gloss texture map) and just make the material entirely defined as the metallic undercoat, with the shader producing the glossy upper layer.

Yes, it gets pretty complex, and I have no idea on the exact answers.

However, in Maxwell render with which I am familiar then we don't deal with materials that tend towards lambertian with a different IOR value.

Indeed if we add a control map that impacts glossiness then it doesn't do anything special either.

So perhaps the IOR/fresnel properties remain the same, and the scattering of the specular alone is what gives us an apparent different fresnel response?
I guess this is where Ruuds mentioned "energy conservation" stuff comes in, so if we have a given specular response and IOR/fresnel response, then our gloss map correctly scatters the 'spot' of light from super sharp shiny through to totally diffuse lambertian reflection (ie, the specular tends towards 0 power as diffuse takes over at lambertian surface (super rough))


I think all this stuff would just drop into place if we start to deal with light consistently, but right now our envmap has values that don't match our sun diffuse/ambient values, which causes issues, and then the sun spot reflected in car bodywork doesn't match the specular spot on our glossy plastics...


Not a problem per se, it's not wrong per se, we just need to evolve the system to something sensible so we get better visuals more easily as well :D


I'm far from an expert when it comes to applying it, but I know how it should work hehe... I've been doing renderings in 3D for well over a decade, but it's easy in 3DS Max/Maxwell vs realtime shaders haha :D

Dave
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top