Normal mapping - is it worth it?

Miscellaneous Forums/General Discussion/Normal mapping - is it worth it?

Standard wall:




Normal mapped wall:




As you can see I applied the Oblivion stonewall normal maps.

The first thing I noticed when I ran it, was that the walls were blatantly brighter than before (you cannot really see that in these shots) - I left some walls standard and some normal mapped. The normal mapped ones looked a bit out of place - too bright.

I'm no graphics expert, but the normal mapped stuff just seems brighter and more plastic-looking. Is this basically a downside of normal mapping? Is it really worth bothering with?


I normal mapped the horse too - guess what, the horse basically looked brighter and, again, sort of out of place.

Technically, I'd have to normal map everthing so that everything looks 'normal' compared to everything that is not normal mapped - they just look stupid together.


Some of you are graphically-minded. Do you think the normal mapped wall looks a lot better - do you prefer it?

I'm sort of thinking I'd save myself a lot of extra work by not normal mapping. Or does it all come down to lighting? Is lighting the key to making it look good?

not that normal mapped wall... i really don't see much normal mapping applied at all...

--Mike

It looks sort of shinier and plasticky.

Maybe I am doing it wrong. Sniff.

Most normal mapping in most games is overdone and looks crap. Emperors clothes in my opinion...unless you actually want everything to look like it's been shoved through a shrink-wrap machine!

I dislike photo-realistic graphics in videogames. Period. Looks really cheap, IMO.

Normal-mapping is a great idea in theory, but in practice it just makes everything look like it came from Rubbermaid. I think parallax mapping will become the norm, and hopefully it will be implemented better.

Well said "halo".

In fact, I have some parallex maps for Oblivion - not mine though, some modders made them. I'll take a snifter at them.

Having said that - can we do parallex mapping in B3D?

Having said that - can we do parallex mapping in B3D?


No. And normal mapping isn't very good in Blitz either. That's probably half of the reason you don't like how it looks.

Still, we'll get that "Tom Speed" boy to add the parallex mapping in after he has finished my DDS thing.

normal mapping can look good on scenery but a lot depends on the shader and what feature are supported. Paralax mapping does look the best. I have a shader for that un SOW which uses a greyscale bump map in the normal maps alpha channel.

You need to be able to control the specular properties of your normal map shader to get a good look, and also have to watch the orientation since ATI and Nvidia have opposite settings, so your shadows can be inverted.

I'm using the monster shader off of the ogre forums. The Monster 2 is being released in the next couple of days.

Some features: all from monster 1.0 plus , clearer syntax with inlined functions, hemisphere lighting for outdoor scenes, ambient occlusion and gloss map support, further optimizations,





now that's a good example... and a good explanation of the factors involved...

lets see a plain diffuse and spec mapped scene look as realistic... or as nice...

so, yes... i think it's worth it.

--Mike

Yes, but look at your lighting.

Every Blitz demo I have seen of normal mapping has had some maggoty little light travelling around it.

It all seems to come down to lighting. I am jolly-well not sticking loads of werelights in anything I do.

I'm too hard-core for normal mapping.

oblivions Parallax still looks pretty plastic much of the time.


How are you updateing the normals Puki? or generating them (if static)
it doesnt look normalmapped at all really.

With the triangle count of oblivions models I dont think looping through ever vertex will be viable.

Sam

heh I should mention thats not my work, (wasn't obvious in my above post) and done with the Monster 2 shader. The ambient occlusion is a nice effect that gives the impression of global illumination.

BTW heres some more info on the effect

http://www.gamasutra.com/features/20040319/hill_pfv.htm

http://download.nvidia.com/developer/presentations/GDC_2004/GDC_2004_Ambient_Occlusion.pdf

from http://www.ogre3d.org/phpBB2/viewtopic.php?t=6859&highlight=ambient+occlusion

Maybe my normal-mapping is so good, it actually loops of the end of the scale and doesn't look normal-mapped.

It was my first attempt though and I have no idea what I am doing. I'm still suspicious that it is all down to lighting - why else would every normal-map demo have some rodent light drifting about like a lost maggot.

I just made it shade the unlit faces of the wall - looks quite cool - like the light is hitting one side of the wall and the other side is dark.

I'm now wondering what will happen if I put light on the dark side. Maybe it will be exciting?

actually, i think that you'll just see a darkened, almost black area with lil or no textures showing...

anyways, take a look at a simple normal map using your texture, done in 3Impact, which has no shaders, just perpixel bumpmapping... using your texture...



plain diffuse textured flat cube on the left... bumpmapped one on the right... no spec map...

not that much of a difference i can see... i guess your bumpmap wasn't that bad...

--Mike

You stole my wall.

Mother.

same thing the Oblivion guys said to you... eh...

:)

--Mike

possesions 9 tenths of the law... unless you created it in the first instance - different ball game that.

(:->

You have to do your own lighting with normal mapping Puki,
In blitz it will still be per vertex and not perpixel.
(its not not gonna look all that great)

You could also use some of the Dot3 light code add a bunch off lights and just call it once, with the nicely triangulated oblivion models it might looke pretty good...although static.

Sam

Ps.
Titan Quest is out , and looks very editable, Least until NWN2 come along.

Normal mapping is great in my opinion as it's done fast by most gpus and you can use it quite easily to add more detail where it makes sense. Thumbs up!

When you just have the one wall like that sitting in a room all by itself, it doesn't really tell you which looks better.

But I think you will find that if you do the same thing with an entire scene, then having the correct lighting on everything will make the scene much more convincing than a scene where the lighting on a wall texture comes from the top even though the light is illuminating it from the side.

That said, its a lot of work to make normal maps for everything! Did HL2 have normal maps on everything? I'm not sure. If it did, I couldn't tell. Unless your art guy is a genius capable of making something as great looking as HL2 are you sure all that extra effort isn't just gonna be wasted? Personally, I wouldn't bother with normal mapping unless I was making a commercial game on a big budget. It's just silly to do stuff of that complexity for a value priced game or a shareware game being done on a small budget. Especially if the art quality isn't there to take real advantage of it.

There are several ways to produce normal maps.

The easiest way is just to provide the same texture as the diffuse one and render a normal map out of this. There are several free tools around for this or unity for instance does this automatically by tagging a texture like this. You can also alter the horizontal displacement there. So it's really easy and useful for a lot of stuff. Obviously you could also use textures like slight scratches or stuff like that on any surface where it fits.

The harder way for most poeple would probably be to render out the normal map out of a high and a low poly object. Also free tools available if your 3d app isn't able to.

In the end normal mapping is adding detail really easily in a lot of cases. You get the best results when the light is moving relativ to the object or if you/light look at the object at a proper angle.

There do exist several more advanced mapping techniques which try to eliminate the downsides of normal/parallax mapping like relief mapping and others but they are quite performance eater and/or do require ps3 support.


Normal mapping - is it worth it?



Yes - if done properly. But because Blitz3D's support for normal maps is limited and hard to use, most users don't get very good results. Unless Blitz3D gets tangent space normal maps someday I wouldn't bother... object / world space normal maps are good for static stuff only.

I could show you how I used 1.4 million polygon model made by me for generating / baking normal maps to a 6000 triangle model - the results were amazing, partly because our (metallic) shaders were good and whole thing was HDR. But since that's work stuff, I can't show that, sorry. But believe me: normal maps are good, Blitz3D just might not have the muscle to use them properly.

Normal mapping is worth it in other engines, but probably not in b3d.
Normal maps arent handled by the gpu in b3d, just the blending stage is (like Giants or..um..wait was there anymore that used dot3 in dx7??)

truth is we would have been better off with EMBM in b3d, all Radeons and geforce3+ will use it.(you dont have to use enviromant maps)
unless Dx7 was limited in use of it also"no mipmaps, no cubemaps support"?
Mustang can probably answer that? :) heh
even at that ...least we coulda made nice water..heh

Sam