Tachikoma said:
[...]
I am essentially writing a new normal mapping shader that allows multi stage normal map passes that interact with each other, nornally the normal map tells the render pipeline how to light a material based on the material normal map definition alone, the problem with this is, while it delivers a nice uniform bumpy surface, the surface itself looks flat overall, the only CURRENT workaround to this is to physically model deformities into the surface.
What I'm doing however is taking a low level normal map, and passing its light calculations on to a second normal map, which effect the base calculations of this second map, the result is that the flat surface responds in a much more organic manner to light.
[...]
The advantages of this are signficantly reduced resource requirements over actually modelling uneven surfaces, and full control over deformation of flat surfaces through shader control of the two stages of normal mapping, a hide defined process can also be added to make the applied texture change depending on the calculated high of the bump math, making it possible for dynamic weather effects to weather the mapped area realitically to the perceived geometrical structures.
To explain this roughly.
The first line is a standard normal map, light is calculated and bounced based off of this normal map, but light hits the entire surface and thus is calculated based on this coverage.
Second line shows combining large normals shapes with the detail map, you end up with a bumpier more varied map, but light coverage is still uniform across the whole texture, detracting from the effect.
Third shows my process, the red line represends the initial normal map pass, which passes its calculations on to the black line which is the detail normal, this allows light computation from the lower map to effect how the next map is lit, in effect giving you the ability to have calculated light effect bumps that cast shadow on surrounding texture themselves, creating a much richer and organic light coverage.
|