[Bf-committers] General thoughts on * mapping (Re: Re: parallaxmap error)

GSR - FR famrom at infernal-iceberg.com
Sat Dec 18 02:06:55 CET 2004


matt at mke3.net (2004-12-18 at 1016.55 +1100):
> Actually, while this is not parallax mapping, there are ways of faking 
> self-shadowing with bump maps (not that I know how), with a technique 
> called horizon mapping. Here are some links:
> http://www.balmelli.net/download/eg01.pdf
> http://research.microsoft.com/~ppsloan/bs.pdf
> http://www.humus.ca/index.php?page=3D&ID=38

Also interesting is relief texture mapping (solves the edge problem
that otherwise would require the expensive true displacement approach)
http://www.inf.ufrgs.br/%7Eoliveira/pubs_files/RTM.pdf

> > Am Freitag, 17. Dezember 2004 21:51 schrieb Chris Burt:
> >> Also, your comments about normal maps being like bump mapping don't 
> >> seem
> >> to be accurate from my tests... They look totally different.
> >
> > Haven't yet tested the CVS and normal maps, but in *theory* normal 
> > maps and
> > bump maps should lead to equivalent results...
> I don't know the theory, but at least in *practice* they're very 
> different ;) I presume a lot it is to do with how the map is generated 
> - normal maps aren't something you easily paint by hand.

Well, I can see some method to do it. If you consider bumpmap a
heightfield, you can compute the normals by examining the faces (iow,
the pixel data), just think three pixels compose a triangle or four a
quad (with high probability of non flatness, for sure). In top view:

A-B-C-D
|\|\|\|
E-F-G-H
|\|\|\|
I-J-K-L

or

A-B-C-D
| | | |
E-F-G-H
| | | |
I-J-K-L

Another explanation is looking at Fig6 of one of the links posted before
http://www.delphi3d.net/articles/viewarticle.php?article=bumpmapping.htm
if the black line is a (high resolution) bumpmap used as heightmap and
viewed from the side, the normal are there too. In any case, all this
assumes the subject is "flat" (normal maps I have seen of heads were
performed in the unwrapped / flattened head, anyway).

Side note about normal maps, I think I figured why some apps use .5
.. 1 for Z, to keep same sampling rate than for X and Y (which means
Blender is having double sampling rate for Z than for X or Y, dunno if
good or bad, it can always be converted with a simple script, anyway).

And now that I think about it, why do normal maps have Z? If you have
X and Y, and know the vectors are always size 1, Z can be inferred,
right? Speed, I guess. But why the flattening I mentioned above? Maybe
sleep helps. ;]

GSR
 


More information about the Bf-committers mailing list