Hey all,
Just thought I'd let you know. I've posted up a tut on normal mapping. Might be useful to those new to it.
Cheers, thanks guys for your comments :)
JI: Yeah, there a few other things I could have put in. I actually don't do that much with combo bump maps (I think thats what your talking about). The results I've gotten with this method from the ATI mapper arn't that great to be honest. I suppose it's something I should mess around with more. And yes, the different settings for determining ray depth are another thing that deserves some explanation. Great suggestions anyway, maybe I'll do a part 2 at some point. Thanks!
Good tut. Entertaining read.
I wonder how hard it would be to hand paint some of this stuff... I can see how this is brilliant for high -> low poly stuff, but i just find it difficult to comprehend building high poly models simply to make great looking low poly ones. (id software do that don't they?)
If you've got the resources i suppose. (you'd alos end up with a whole bunch of really good high poly models for promotional stuff =D)
cheers
Smeg: I have a feeling ID just build the high poly and Carmacks uber code optimses them to low poly. Correct me if I'm wrong, sounds wrong lol. [:P]
Also Doord said that Irrational paint thier maps by hand for Tribes: Vengeance.
There are quite a few ways of creating the 2 meshes though, make the low then expand on it for the high or make each seperately or even optimse the high one.
Its the new FPS craze though check out some of the games that use it, T:V, Doom 3, Halflife 2, Deus Ex 2, Farcry and Stalker.
The silhouettes just show that there are low poly meshes, how can you tell how they were created from them? I just meant I heard that the code generates the low poly mesh as well as the normal map not hand made.
So T:V isn't using actual per pixel lit RGB/XYZ normal maps? Doesn't that then make them bump maps not normal maps?
There's 2 methods that apply here:
hand painting emboss pass, or a normalised height pass - height/bump/emboss maps deal with the depth or height. Normal maps deal with angular differences on xyz - a normal map has a few advantages both in visual and code areas, so normalising a height map at runtime is something a few titles have used in the past - so you pretty much have decals and details like you would in an emboss but it's not a complete normals replacement for your lowpoly mesh - it's accentuating either a pp lighting or vertex lighting system.
I think it would be next to impossible to hand paint a normal map. The human brain just doesn't work that way!
One way to convert a greyscale height map to a normal map would be to copy your low poly mesh. Add your greyscale bump map as a displacement modifier to it in your 3D app and bake that data out to a solid mesh. Then run a normal mapper process over it. Wha-la... no need to model the high poly.
Hmmm. Checked again. I don't think that my LCD is that messed up after a year :p
[img]http://home.netspeed.com.au/mlanham/ionization_colours.jpg[/img]
Screen Cap. All your other pages have white text, and they are easy to read. The Normal Mapping tute though... All the pages of the tute have purple text as well.
Using IE 6 (w/ latest updates). How odd.
The text that appears between the paragraph
tags don't have a font colour assigned to them. I think IE defaults to black if it doesn't find any, so most people will see that text as black. It's strange that yours shows up with that colour though. Anyway, Ionization can fix it up if he puts something like this on all his pages:
p {color: #000000}
There are other places where tags don't indicate a colour either, so same problem as above. Should indicate colour in the font tags, or better yet use style sheets.
Thanks muchly for bringing that to my attention Aven. Damn, thats wierd. I can see now why it would be hard to read ;)
Thanks for the tag Souri. Now that I look at it, it's kind of wierd that the colour of the text on the front page is white, while the tutorial text is in black. I think I might just change all the text to white and be done with it.
Very nice and concise - good job translating into lamens terms and defining terminology.
One thing I think is missing you may consider doing is explaining how to use the seperate channels to manually refine and detail areas that are overkill to model (veins, perturbed areas, etc). I love using this technique to manage low range details. Also perhaps noting about modelling concave/convex and an overview on modelling relations with the normal rules when ripping (standard normal rules such as neighbour>neighbour, nearest/furthest, etc to keep it generalised and open?)
Anyways, just a few suggestions, great job Ionized.