Well I was having a think in the bath, where all my crazy ideas happen hehe.
Right now Racer renders the sky dome to the live env map, but the problem is the live env map is car centric and so if the car is in the sunlight we get the sun spot on the car. Then if the car is in the shade we lose the sun spot.
Since the envmap can be used in places where the car might not be, or even places on the car that are in shadow (bumper ducts, interiors etc) then it seems bad to burn the sun spot into the envmap.
Since the sun spot is a really simple element, a blob, it can really easily be represented with a specular splodge.
If we do that, then suddenly we can take our mip-mapped envmap, apply it to a chrome steering wheel feature, and when it goes into shadow the brightness disappears, and when it gets into the light we can have the specular effect represent the sun!
I was a firm believer in letting the envmap sun spot do sharp specular, and then blur it to get soft reflections. Maybe render a few live maps for different materials etc.
But in the end without moving the entire rendering/material system to something BRDF based with lookup cube maps scattered around (like CryEngine 3), which isn't going to happen soon, this approach seems to offer more realism and ability within the constraints of the current renderer.
Technically all we are doing is removing the sun spot from the live env-map rendering.
This means we can then mix in specular appropriate for the material and the environment.
Ie, we can blend a mipmapped live envmap with a specular to get a chrome that works well on a car interior, so when the chrome is in the shadow it doesn't still have a bright spot on it.
If you take a look at games like the new one from the Netkar team, they clearly are running a HDR envmap but it looks like they are running specular overlay for the sun spot.
This is evident even in GT5 after playing more recently and watching the specular/sun behaviour on chromes/glass etc.
It even looks like the sun in many of these rendering engines isn't really there, just a flare is drawn where it *should* be... ie, it's not present in the envmap to start with because it's not really ever rendered.
So I'm not sure what people think to this approach.
My only concern is that right now we use specular WITH the envmap sun spot on some car paints to give them a metallic feel. Ideally for car paints we could do with a system where we have multiple specular definitions etc...
I'm gonna try alter the shaders to achieve this as in theory it's all shader based I think...
Just wondering what other people think?
Technically it's less right, but it offers us more ability to make nice materials within the constraints and limits of the system as it stands.
Basically the envmap gets loads more powerful for any/all materials, if we define the fresnel with it we can apply it to the specular response too (so that looks correct!), AND we get shadows impacting the sun spot/specular splodge.
Hmmmm
Dave
Right now Racer renders the sky dome to the live env map, but the problem is the live env map is car centric and so if the car is in the sunlight we get the sun spot on the car. Then if the car is in the shade we lose the sun spot.
Since the envmap can be used in places where the car might not be, or even places on the car that are in shadow (bumper ducts, interiors etc) then it seems bad to burn the sun spot into the envmap.
Since the sun spot is a really simple element, a blob, it can really easily be represented with a specular splodge.
If we do that, then suddenly we can take our mip-mapped envmap, apply it to a chrome steering wheel feature, and when it goes into shadow the brightness disappears, and when it gets into the light we can have the specular effect represent the sun!
I was a firm believer in letting the envmap sun spot do sharp specular, and then blur it to get soft reflections. Maybe render a few live maps for different materials etc.
But in the end without moving the entire rendering/material system to something BRDF based with lookup cube maps scattered around (like CryEngine 3), which isn't going to happen soon, this approach seems to offer more realism and ability within the constraints of the current renderer.
Technically all we are doing is removing the sun spot from the live env-map rendering.
This means we can then mix in specular appropriate for the material and the environment.
Ie, we can blend a mipmapped live envmap with a specular to get a chrome that works well on a car interior, so when the chrome is in the shadow it doesn't still have a bright spot on it.
If you take a look at games like the new one from the Netkar team, they clearly are running a HDR envmap but it looks like they are running specular overlay for the sun spot.
This is evident even in GT5 after playing more recently and watching the specular/sun behaviour on chromes/glass etc.
It even looks like the sun in many of these rendering engines isn't really there, just a flare is drawn where it *should* be... ie, it's not present in the envmap to start with because it's not really ever rendered.
So I'm not sure what people think to this approach.
My only concern is that right now we use specular WITH the envmap sun spot on some car paints to give them a metallic feel. Ideally for car paints we could do with a system where we have multiple specular definitions etc...
I'm gonna try alter the shaders to achieve this as in theory it's all shader based I think...
Just wondering what other people think?
Technically it's less right, but it offers us more ability to make nice materials within the constraints and limits of the system as it stands.
Basically the envmap gets loads more powerful for any/all materials, if we define the fresnel with it we can apply it to the specular response too (so that looks correct!), AND we get shadows impacting the sun spot/specular splodge.
Hmmmm
Dave