How Bump Mapping Works
The Chef writes: "Tweak3D has a pretty good article explaining how bump mapping works with 3D accelerated video cards. They cover all the basics of bump mapping and the advantages and disadvantages of several methods. Now if someone asks me how per-pixel shading or environment mapped bump mapping works, I'll have an answer (but I'm not sure if that's a good thing)." With the introduction of the new graphics cards, this is some interesting reading.
Real "hard" core gamers turn off every special effect and level of detail to maximize frame rate, no matter how powerful the machine. All things being equal, the person with the higher frame rate (and ping) wins. I'm guessing that if the renderer actually allowed simple wire frames with basic z buffering, "hard" core gamers would set it that way.
It's often interesting to compare the effects of
various rendering models. Bump mapping,
combined with texture mapping, can indeed be
quite impressive (and also pretty efficient).
However, displacement mapping adds a further
refinement. This is when a physical (positional)
displacement is specified for the surface and
then rendered. It would often be used in
conjunction with texture- and bump-mapping.
If you look at a bump-mapped surface, you might
perceive apparent depth in the surface features.
But, without displacement mapping, those features
will have absolutely no effect on the silhouette,
since they don't affect the geometry.
I believe I saw this in some of the stills from
the BBC "Walking with Dinosaurs" video; a
dinosaur with a very wrinkled and bumpy skin had
a perfectly smooth silhouette. It still looked
stunning.
This can also be seen if the bump mapped surface
appears to have protrusions and the surface is lit
by a beam from near the tangent plane of the
surface. With displacement mapping, that bump
would be "real", and would therefore be able to
cast a shadow on the surrounding surface. With
just bump mapping, the "bump" doesn't protrude,
so it wouldn't cast that shadow.
Both of these examples are similar in character,
and both will not tend to jump out at you unless
you go looking for them.
Over time, more and more of these refinements
(generally developed for software by the early
1980s) are rolled into graphics cards as standard
features. I wonder how long it will be before
real-time radiosity rendering costs $150 for
your desktop.
You mean stuff like SurRender Umbra? Yes, research is being done. :) While this is something of a shameless plug, Umbra is not vaporware, and in fact the component was completed by the end of last week and is ready to ship. It took several man-years to build, so it's not exactly something you write out of a hobby. There's also a fairly in-depth technical overview on the site. From that document, I quote:
The library uses a number of techniques and data structure organizations that makes the visibility determination process output sensitive. Output sensitivity means that the time used to solve a problem, i.e. visibility evaluation, is dependent on the size of its output (number of visible objects) rather than its input (number of objects in the scene). "
Another company, Fluid Studios is also taking a shot at the same problem, although they go for eliminating individual triangles instead of models/components.
While this kind of dynamic methods are certainly more expensive to perform at run-time than pre-calculated visible sets, they are not mutually exclusive with those. You can still use portals and cell based visibility as well as static PVS if desired, but what's important that we're finally reaching a point where you don't need to.
It's all about freedom, in the end.
Jouni
--
Jouni Mannonen : 3D Evangelist @ SurRender3D.com
Jouni Mannonen | Game Designer, Consultant
The whole point of computer games is to lose yourself in the experience.
compare "I pressed this button, these pixels move up the screen and caused those pixels to move in various directions. My score increase by 1"
to
"I pulled the trigger and put a rocket launcher right in his back. Gibs _everywhere_. One more frag for me!"
If the game looks more like real life (or at least more like the Matrix), it's easier to get involved.
Of course, it helps if the gameplay rocks too, but graphics can add an awful lot.
My Journal
If voting were effective, it would be illegal by now.
:)
BilldaCat
Bitboys may be notorious for not shipping production boards, but they've been very productive for the past years.
I'm sure a product will ship when it's done. :)
Jouni
--
Jouni Mannonen : 3D Evangelist @ SurRender3D.com
Jouni Mannonen | Game Designer, Consultant
for all the hard core gamers out there... does this sort of technology really help make better games?
On one hand I really am impressed with the impressive graphics that are apparent in the majority of today's games, and perhaps this will allow game designers to think less about the technology (even "bad" code can hit 60fps with a smoking graphics card) and work on the game...
On the other hand, I think that technology shouldn't be the focus of a good game (aka who cares if the orange is triple pass bump mapped at 140 fps if the game isn't fun to play) while games like diablo (640x480 resolution) still get dusted off and played.... any thoughts?
(define the-question (or (* 2 b) (not (* 2 b))))
And there are better books :)
IMO time, but this was my major area in college.
The first Foley and Van Dam didn't deserve it's reputation. It was very basic and pretty empty. if you have studied Linear Algebra, you already knew most of what it had to offer. (And if you haven't you shouldn't be trying to write real 3D code.)
The new edition is much better but still hardly the best book around. I've always preferred the Rogers book Procedural Elements for Computer Graphics. His organization is a bit awkward but there are lost of good discussions of the pluses and minuses of various rendering techniques and how to implement them.
For specific algorithms, the Graphics Gems series is the BEST high-performance graphics reference around.
I recently saw another excellent hard cover text but I'm having trouble pulling the name to mind.
The moral is, go to the bookstore and read a good chunck of the boosk before you buy it. Don't just by VD because of its reputation.
"Per pixel shading" is getting there but still not a true Phong shade. Before lighting looka at all realistic the cards will have to reach the point of a real Phong shade.
That being said, it's a nice fast hack to get something LIKE bump-mapping. Downside : extreme color washout (over-burning or over-dodging for the photo-shop crowd,eh?) Funky lighting considerations need to be taken into account. Oh sure, doing it properly would take a few extra clock-cycles, god forbid anyone would make CUSTOM hardware to do this... oh, wait... the equations almost exactly match what the texturing units do, with a few extra steps... oh wait... there are loads of texturing units all in parallel in hardware now, oh maybe we could get them to run in parallel to do real bump-mapping... gah!
What patent ? I haven't heard about that. Bump mapping as a technique is old (way older than Bitboys). Foley et al. from 1991 (IIRC) has it, haven't checked the older book. When OpenGL is a question of getting a standardized bump-mapping extension. DirectX just adds new functions and changes the version number, whereas OpenGL evolves with cleanly bundled extensions that are separate from it.
I'm not sure about this, but wasn't the Pyramid3D supposed to be produced jointly with Alliance Semiconductor? That was (I think) the company that designed the 2D core for the 3dfx that was incorporated into the infamous Voodoo Rush (3dfx later went back and created their own core for the Banshee).
Then, after the Pyramid3D died, Alliance announced some sort of plan to develop their own graphics chipset, but nothing ever materialized.
My own opinion about bump-mapping and different APIs is that different hardware companies should stop creating different APIs for their different bump-mapping algorithms and instead converge on high-level interfaces + hinting.
"We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
Here is an interesting computer graphics technique using bump mapping for wrinkling developed in a japanese research center:
Facial Animation using Bump Mapping
The results are quite impressive with facial animation and garment wrinkling...
Zeb.
Research Guide to the Palestinian-Israeli Co
I recall long-ago, Brian Hook saying that Quake3 does 6 bump-map passes, so I wonder if they use this technique. There's a followup article on the OpenGL site using a 12(!) pass lighting method.
If voting were effective, it would be illegal by now.
What I would like to know if it is more efficient to do this in hardware or software compared to the cost(in terms of hardware chip area) Are there any benchmarks available? Maybe it would be better to use the chip area for things more commonly used
**Life is too short to be serious**
http://www.penny-arcade.com/dance.shtml .
The rest of the site is funny as well, if you're into that sort of thing.
This is a bit offtopic but are u aware that recently a lot of work has been done which has proved that net traffic is fractal in nature. Till now all modellings and simulation of networks while designinfg them was done using a Poisson distribution but these findings based on trace tapes may change all that.
**Life is too short to be serious**
I was in a hurry and my machine fell over as I was about to post this interesting link from the nVIDIA site. Lots to learn about therein. Sorry if I posted twice, give me a break.
I know many graphics coders who are depressed because all of their hard-won knowledge coding polygon fillers, environment map effects and realistic shading engines in software seem completely superceded by advances in hardware. They shouldn't be. There's still tons left to research and better algorithms to be found - even more so now that more powerful graphics cards are becoming cheaper.
There's zillions of good Web references on the subject - here is a place to start.
--- Hot Shot City is particularly good.
try readin :
.oO0Oo.
"Computer Graphics : Principles and Practice"
Foley, van Dam, feiner, Hughes
Mine is second edition 1993
everything from lines to fractal hairs
inc. anti aliasing & filtering etc.
A must read for anyone more than slightly interested
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Some years back, in the days of Pyramid 3D (yes, boards existed!) the pixel pipeline of the graphics chip was already programmable in microcode and EMBM was working perfectly in hardware. Slowly, maybe, by today's standards, but visually as attractive as ever. While it's a shame the boards never made it into the public, they still managed to make a significant contribution to PC graphics technology.
Bitboys licensed the EMBM solution to Microsoft to make it a part of the Direct3D standard. Once it was a part of the standard, other vendors such as Matrox were also free to make their implementations of the method.
It's a hack, but it's a good looking hack. Long live good looking hacks! :)
Jouni
--
Jouni Mannonen : 3D Evangelist @ SurRender3D.com
Jouni Mannonen | Game Designer, Consultant
Yeah, I came to that realization in a bit of a haze after watching the movie "Pi". :-)
Math - it's not just for Bible Scholars anymore!
The Divine Creatrix in a Mortal Shell that stays Crunchy in Milk
The House Between - Original Sci-Fi Series
I extrapolated from the interview by SharkyExtreme (SE )with Bitboys' CEO - Shane Long (SL):
;) ).
====================
SE: What is the difference between the 3DGlaze's environment bump mapping and Matrox's environment mapped bump mapping?
SL: Matrox has a good implementation of environmental bump mapping. They are closely following the Microsoft guidelines, which Bitboys licensed to Microsoft. Without going into detail on our own implementation we will have equal quality, but at a fairly significant performance increase.
====================
The phrase "licensed to Microsoft" indicates some kind of patent, at least to me.
BTW, the interview is very interesting for anyone interested in future 3D graphics (albeit vaporware
Sorry,
b itboys_interview/
here's the URL:
http://www.sharkyextreme.com/hardware/articles/
I hope they make a patch for DAIKATANA!
Fh
Some years back, in the days of Pyramid 3D (yes, boards existed!) the pixel pipeline of the graphics chip was already programmable in microcode and EMBM was working perfectly in hardware. Slowly, maybe, by today's standards, but visually as attractive as ever. While it's a shame the boards never made it into the public, they still managed to make a significant contribution to PC graphics technology.
So they actually made some prototypes? I remember looking at the early screenshots of the Tritech Pyramid 3D cards and wondering what the frame rate was with bump mapping, reflections and fogging on.
On the flip side, I do wonder whether they will ever get a production board out of the door. The are notorious for not producing.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
Three years ago Dimensionality was working on a game engine that was to use bump mapping (don't know which method Sean was using; it was in software). While the engine effort collapsed in January of 1998, we still have hundreds of bump-mapped textures gathering dust right now, waiting for a chance to be used in something.
http://www.dimensionality.com/stuff/GTex0214.JPG is a sampler I made shortly after the collapse. It's located in our gallery section.
Now watch me get moderated down for being on topic...
yep. many of the posts expressing som kind of annoyance over this topic got voted down. even though the syntax might be offensive, the general message is that dedicated sites do a much better job at explaining graphics than slashdot ever will. But obviously someone looooooved the bad explanation of this technique.
a link to the nvidia site got rated 4 because it was 'informative'. I say """""please""""". ofcourse it is informative, but people interrested in EMBM are likely to know about this technique long BEFORE they enter their slashdot accounts. Nvidia is the number one gfx hardware firm in the world. If you don`t visit Nvidia.
I don`t mean to claim I can say which article can or cannot be slashdotted, but the fakephong version of this technique popped up around 1995 for the first time in a DOS demo called Juice, which you can download here . So don`t tell me this tech is big news, because it isn`t. The only difference is the tech is now in hardware. Some BitBoys themselves made demo`s in 1989-1993, they knew where to get the juice.
now, let the monkeys rate this rant offtopic, kill my karma, yeah. suckers.
With great power comes great electricity bills.
We had a course on graphics at the college and we worked upto ray tracing but there was nothing on bump mapping and the like. I always wanted to work on game graphics and had no idea how to do it and to think I am about to finish my junior year of a Bachelors in Comp Engg. Suggestions on anything else that should be taught in a CS course?
**Life is too short to be serious**
I remember seeing Bump Mapping done in software back in 1992. I still have a video tape of the animation (each student group was allowed 450 frames on a write once video laserdisk. It was also quite interesting seeing what people could do to stretch out 450 unique frames).
I'm actually impressed that it took this long for the concept to go from software to hardware.
--
Free Software: Like love, it grows best when given away.
Since the introduction of Matrox G400 (see the fantastic shots at http://www.matrox.com/mga/feat_story/mar99/slave0_ scrshot.htm) Environment Mapped Bump Mapping has been a must.
The big issue is when OpenGL, and thus Q3A et al., will have it. Today it seems to be an M$ ballpark only; with the help of Bitboys' patent.
here
**Life is too short to be serious**