What are they?
What is the relationship between Normal maps & displacement?
How they can be useful to my games?
Thanks!
Normal maps are used to give the illusion of polygon surface detail on a mesh. They can be very useful at adding detail, or look cheap and nasty.
They are usually generated from a very high polygon version of the mesh. The light source(s) of the normal map can be altered to give the sense of real polygons being effected, giving per pixel shading.
The light angle/position is determined from the RGB (and alpha?) components of an additional texture map/vertex normal/vertex light, with,
RED being the X axis,
GREEN being the Y axis,
BLUE being the Z axis.
If you can imagine a cube. r = 128, g = 128 and b = 128. This would put the light in the very centre of the cube.
r = 255, g = 128, b = 128, would put the light at the left centre of the mesh. etc etc
so 0 - 128 - 255
would be LEFT - CENTRE - RIGHT and anywhere inbetween these numbers, being inbetween those positions.
In blitz, it is very hard to get normal maps to respond to light sources effectively. The most effective way, has been to use a specially coloured cubemap, which applies the correct vector colour depending on the normals of the mesh, and works with animated meshes.
Problem is, to rotate the light source, you must rotate the cubemap, which is a fairly slow procedure, involving rendering 6 viewports (maybe less if optimised)
And if you're wondering where Ross C's heightmap to normalmap convertor is, I have mirrored it as heighttonormap.zip here.
http://blitzmirror.angelfire.com/
That's a nice site man :o) Apart from the tons of ads.
ty, at least it's better than Fortunecity.
Thank you all,
What are the Blitz3D command(s) I can use to get more detailed surfaces?
How do you mean? To use normal maps, you use the texture blend mode 4 i believe.
Having a normal map (an image) you can apply it in a mesh with a specific blend mode?
you can have displacement in a normal map too, stored in the alpha channel. Which enhances the normal map further. Offset normal mapping.
Well, but Offset Normal Mapping or as it's more often called Parallax Mapping doesn't generate geometry like real Displacement Mapping does, which is a big difference.
Parallax Mapping is awesome. It can be seen in use in F.E.A.R as the bullet holes, and it does the job perfectly. In case you want to see it in use, check out a demo of the Irrlicht engine - which, by the way, is parallax able to work on Blitz3D, through userlibs and wrappers if needed?