normal maps
category: general [glöplog]
The term "normal maps" seems to be the new buzzword in 3D graphics technology. Not knowing what it meant, I did a little googling to discover it's some fancy-ass new-style bump-mapping that uses X,Y, and Z information. Sounds cool to me!
So now the obligatory question: Do any existing demoscene prods use "normal maps," either software or hardware rendered??
So now the obligatory question: Do any existing demoscene prods use "normal maps," either software or hardware rendered??
yes
...
And those products would be....?
And those products would be....?
http://www.pouet.net/prod.php?which=9458 does.
"to discover it's some fancy-ass new-style bump-mapping that uses X,Y, and Z information" - it ain't. A normal map is just a texture map containing not RGB pixels, but XYZ normal vectors (a normal vector, grossly simplified, specifies the "up" vector on a specific point on a surface).
As it happens, having normals at higher resolution than one per vertex is a convenient way of getting bump mapping, if you compute the lighting term per-pixel.
The technique of using normal maps to get bump mapping is neither very new - it's been supported in hardware since 1999! (with the original GeForce), and has been in professional rendering packages for ages - nor novel to demoscene productions: it's been used in orbitalism by haujobb (2002), mdma by threepixels (2002), timeframe by fairlight (2002), raw confessions by cocoon (2002), 00101010 by fan (2003, not 100% sure), relais by kolor (2003), zoom3 by and (2003), coma by cocoon (2004), fr-035: deleted scenes by farbrausch (2004), and kkrieger by theprodukkt (2004) to mention just a few (i know for sure there are more, but these are the results of quickly browsing through my demo dir :)
the reason normal maps are so popular at the moment is that by now, hardware that can do it at acceptable performance with reasonable postprocessing options (i.e. applying a texture afterwards without having to render a second pass :), in other words, pixelshader hardware, is widespread enough now to be worth supporting even in games not only meant for an hardcore audience.
As it happens, having normals at higher resolution than one per vertex is a convenient way of getting bump mapping, if you compute the lighting term per-pixel.
The technique of using normal maps to get bump mapping is neither very new - it's been supported in hardware since 1999! (with the original GeForce), and has been in professional rendering packages for ages - nor novel to demoscene productions: it's been used in orbitalism by haujobb (2002), mdma by threepixels (2002), timeframe by fairlight (2002), raw confessions by cocoon (2002), 00101010 by fan (2003, not 100% sure), relais by kolor (2003), zoom3 by and (2003), coma by cocoon (2004), fr-035: deleted scenes by farbrausch (2004), and kkrieger by theprodukkt (2004) to mention just a few (i know for sure there are more, but these are the results of quickly browsing through my demo dir :)
the reason normal maps are so popular at the moment is that by now, hardware that can do it at acceptable performance with reasonable postprocessing options (i.e. applying a texture afterwards without having to render a second pass :), in other words, pixelshader hardware, is widespread enough now to be worth supporting even in games not only meant for an hardcore audience.
Nesnausk! - The Fly uses it too ... welcome to what's happening now :)
hmm, which scenes of zoom3 use normal maps?
i really liked the intro and watched it many times, but somehow i cant imagine a scene where i would guess them. maybe its just because its blurred like hell.
i really liked the intro and watched it many times, but somehow i cant imagine a scene where i would guess them. maybe its just because its blurred like hell.
FarCry also makes good use of bump mapping:
http://www.crytek.com/screenshots/index.php?sx=polybump&px=poly_04.jpg
But it is not just good for faking lots of polygons, but also for drawing an uneven pavement, for example
And btw, as far as I know there was a bump-mapping benchmark in PCMark2000 already. And in 3DMark2001 as well, of course.
http://www.crytek.com/screenshots/index.php?sx=polybump&px=poly_04.jpg
But it is not just good for faking lots of polygons, but also for drawing an uneven pavement, for example
And btw, as far as I know there was a bump-mapping benchmark in PCMark2000 already. And in 3DMark2001 as well, of course.
Actuall nowadays if you hear "bump mapping", it's 99% of the cases actually "normal mapping". Current 3D HW is just more effective at it - with normal maps you just fetch normal from the texture; where "classic" bump-maps would require fetching multiple texels and doing Sobels on them to find the normal.
I guess quite many demos nowadays use normal mapping (maybe some call it "bump mapping"). Ours http://www.pouet.net/prod.php?which=12271 also does...
I guess quite many demos nowadays use normal mapping (maybe some call it "bump mapping"). Ours http://www.pouet.net/prod.php?which=12271 also does...
i think zoom3 doesn't use normal maps, it just uses camspacenormals to achieve perpixel lighting.
"normal maps" are just textures, you can either choose to use it for dot3 (gf1-level, see 3dmark's "rotating turd" test :) or envbumpmap (gf3-level, see orbitalism) or with shaders, basically for anything you want. still they're a bit underused so i think people should get used to them more :D
*waits for something that uses per-texel displacement*
"normal maps" are just textures, you can either choose to use it for dot3 (gf1-level, see 3dmark's "rotating turd" test :) or envbumpmap (gf3-level, see orbitalism) or with shaders, basically for anything you want. still they're a bit underused so i think people should get used to them more :D
*waits for something that uses per-texel displacement*
Quote:
*waits for something that uses per-texel displacement*
As in a scene-demo that uses it, or did you miss the buzz about offset mapping aka parallax mapping aka virtual displacement mapping? :)
naah, offsetmapping is cheap :D
i want actual per-texel Z-displacement :D
i want actual per-texel Z-displacement :D
I guess that won't happen soon... But you can always tesselate your geometry to the insane levels; vertices are cheap nowadays :)
You will be able to do readbacks from texturememory anyhow you like in PS/VS3.0 iirc... Hmm, and yeah, Parhelia claims to have HWDM with adapted tesselation... But only been able to check their own demos since they refused to release the HWDM SDK and never made any dx9 drivers... :(
Oh, and yes, DXM prods have been using normalmaps the last decade or so.
Oh, and yes, DXM prods have been using normalmaps the last decade or so.
But tesselation+displacement isn't exactly "pixel displacement" that Gargaj is waiting for! :)
And while vs3.0 has nice vertex texturing; one really needs (adaptive) tesselator ala Parhelia... Alas, no cards seem to support or even plan it...
And while vs3.0 has nice vertex texturing; one really needs (adaptive) tesselator ala Parhelia... Alas, no cards seem to support or even plan it...
Quote:
Parhelia claims to have HWDM with adapted tesselation
Matrox claimed a lot of things.
Prove it, swede-boy :)
Does PS2 support this? I'd swear that Tekken 4 uses this for a static object in a background scene (the polygon count always seemed to me to be much too high....)
PS2 supports nothing but polygons :)
Seriously, on consoles there are lots of more tricks you can do with the HW (like messing with framebufer directly; giving one resouce type as the other, etc.). So while PS2 certainly doesn't have "per pixel displacement", you can fake pretty much.
Seriously, on consoles there are lots of more tricks you can do with the HW (like messing with framebufer directly; giving one resouce type as the other, etc.). So while PS2 certainly doesn't have "per pixel displacement", you can fake pretty much.
note that i said per-texel :D
Quote:
Matrox claimed a lot of things.
Prove it, swede-boy :)
Read my entire post or just dont comment, please.
PS2 can also do a huge polycount much easier than textures - as long as either the polygons fit in memory. It has even been investigated that VQ compression (with real-time decompression) on meshes would increase display performance!
I heard thar 30-60 Mio Polys per second are OK on PS2, while my GFFX5200 has a hard limit at 17 Mio, which is even hard to reach!
However, just looking at some of the PS2 hardware pecularities, makes me think that though it can deliver monsterous performance, i really really don't want to be the one to code on it and be expected to get this perormance. :/
I heard thar 30-60 Mio Polys per second are OK on PS2, while my GFFX5200 has a hard limit at 17 Mio, which is even hard to reach!
However, just looking at some of the PS2 hardware pecularities, makes me think that though it can deliver monsterous performance, i really really don't want to be the one to code on it and be expected to get this perormance. :/
Quote:
Read my entire post or just dont comment, please.
where's the fun in that?
Have you lost sense? Read up on the PS2 manuals and reconsider your rant. Sure, it beats the crap out of an FX5200 at most things. But it doesn't deserve that kind of credit. It's a fully different thing..
It's idiotic in any case because, after all, a FX5200 is among the slowest graphics cards one can buy for PCs. Hey, a Geforce2GTS beats the shit out of a FX5200 performancewise, and that's a 4 year old card! (And not even a top-of-the-line one).
plek: are you referring to *me*? i don't have a PS2 and frankly don't want to hear anything about it. Watch out or i might become jealous.
BTW, i have a birthday today, so if you make me a generous gift (i mean a PS2), i promise to read the manuals, and reconsider something.
Googling a bit i find a hard limit at 66 Mio Polys per second on PS2. Or do you want me to say that i'm not the most lame coder any longer?
ryg: perhaps you have the possibility to ignore people who are not ready to spend much money on the 3D accelerator (note: the rest of my PC is top notch), but i belong to these people and thus i can't. I'd just be throwing money out a bit too often. I intend to keep the FX52000 for at least 3 years now, like i did with my previous cheap card. I also have thermal and noise considerations on my PC, so better stuff is mostly out of question.
BTW, i have a birthday today, so if you make me a generous gift (i mean a PS2), i promise to read the manuals, and reconsider something.
Googling a bit i find a hard limit at 66 Mio Polys per second on PS2. Or do you want me to say that i'm not the most lame coder any longer?
ryg: perhaps you have the possibility to ignore people who are not ready to spend much money on the 3D accelerator (note: the rest of my PC is top notch), but i belong to these people and thus i can't. I'd just be throwing money out a bit too often. I intend to keep the FX52000 for at least 3 years now, like i did with my previous cheap card. I also have thermal and noise considerations on my PC, so better stuff is mostly out of question.