gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

OffTopic > Need a good book on 3D graphics

#148036 - Lazy1 - Tue Jan 01, 2008 4:26 am

Any recommendations?
It doesn't matter if OpenGL or Direct3D but in the end there should be enough information to be able to create full 3D applications.

I was never any good with math so bonus points if the book goes over that with good explanations.

Currently my choice is this: http://www.amazon.ca/Introduction-Game-Programming-Direct-9-0c/dp/1598220160/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1199157816&sr=8-2

But maybe some of you have more suggestions.
Any suggestions are appreciated.

#148047 - Lick - Tue Jan 01, 2008 2:30 pm

There's a slight difference between learning scientific 3D graphics programming and 3D game programming, in my opinion. The first being maths-oriented and providing a more in-depth description of how a 3D world is constructed, the latter being a more practical approach that doesn't go as in-depth computation-wise yet allows you to have something on your screen after 10 minutes, which is motivational and more useful in most cases.

To learn Direct3D I'd actually recommend following tutorials and referring to the DirectX SDK articles/API documentation. The books I bought on the subject were never worth my money. I repeat: the DirectX SDK documentation is the D3D bible.

As far as online resources go, check out the DirectX forum on www.gamedev.net. I was my D3D church.
_________________
http://licklick.wordpress.com

#148061 - Peter - Tue Jan 01, 2008 6:33 pm

There is a books (review) section on gamedev.net, which might be a good resource to find the right book: Books @ GameDev.net

If you buy a book on shaders (as your current choice), you probably cannot use much information from it for the DS or any other fixed function pipeline.
_________________
Kind Regards,
Peter

#148067 - Lazy1 - Tue Jan 01, 2008 8:50 pm

I'm looking for a good introduction to 3d graphics in general, I don't expect to be writing 3D apps for the DS anytime soon. :)

The problem I found with online docs/tutorials is that most of their explanations are brief - especially on important topics.
I mean, what good is a spinning triangle?

I don't expect to be able to write the next quake engine, but something to get me started would be nice.

#148071 - keldon - Tue Jan 01, 2008 10:52 pm

Well there's basic 3d theory, then there are API's, and eventually engines. Essentially your engine is doing just about the same tasks as your triangle drawing demos, just more organized!

So triangles aren't all that bad as once you have them done you don't have that much left to bring your code to life. One of the main reasons for this is that the 3d core is only concerned with processing a list of polygons, so the same code that will draw you 2 to 3 polygons is the same code that will draw you a four-eyed monster with eight arms and shark teeth - the only difference is the data your are providing it with (rendering wise).

When it comes to active movement, that is where your game/modelling engine comes into play.

#148074 - DekuTree64 - Tue Jan 01, 2008 11:14 pm

http://tfpsly.free.fr/Docs/3dIca/3dica.htm is a good software 3D tutorial.

I wish there was more information out there on game logic and collision detection, but if there is, I've never found it. Most concepts work just as well in 2D or 3D anyway though (velocity vectors, sliding against walls, ground snapping, imaginary boxes for triggering events, etc). Really more of a "figure it out" thing than something you learn from reading an article or two.

Probably the two most difficult parts of a 3D game are animated models, and collision detection with arbitrary level geometry. So if you're the type of person who likes to learn one thing at a time, maybe make a game with billboarded sprites and a grid-based level. Then with your improved grasp of 3D, move on to the harder things.
_________________
___________
The best optimization is to do nothing at all.
Therefore a fully optimized program doesn't exist.
-Deku

#148075 - Lick - Tue Jan 01, 2008 11:24 pm

If you're interested in writing your own software 3D renderer (or you'd liked to understand how to/or you want to work for nVidia/ATi), then this book is probably one of the best out there. This one might also be interesting.

But really, if you're targeting modern 3D hardware and the current 3D programming API's (OpenGL/Direct3D) then there's no need to go through all the pages of the previous books, at least not yet. The mentioned API's handle a lot for you (interfacing the hardware that in turn calculates numerous details with algorithms you don't need to know of), but also leave you enough freedom to be creative with them: code needed to draw a textured, lit and semi-transparent cube might give the 3d newb a headache.
_________________
http://licklick.wordpress.com

#148076 - Lord Graga - Tue Jan 01, 2008 11:28 pm

I just asked kusma!

#148077 - simonjhall - Tue Jan 01, 2008 11:31 pm

I used those nehe opengl tutorials when I originally learnt how to do 3D stuff on the PC, and they just happen to also be in the examples directory packaged with DKP! Just messing around (on the PC) putting down triangles, or making flat-shaded geometric shapes in code then moving them around the screen using glTranslate taught me the basics of getting stuff on the screen.

Really I guess what you would need to learn is old-skool fixed-function opengl, and this is then a good introduction to more advanced rendering techniques. More modern stuff (ie stuff that involves fragment or vertex shaders) is then derived from there...(neither of which are supported by the DS' 3D hardware)

From a completely different angle, I really started to understand how 3D works when I had to write a software renderer at work and a mini version of opengl to go with it - after doing this, so much more stuff started making sense!

...but anyway, I wouldn't do my first adventures into 3D on the DS. There are just FAR too many gotchas!
_________________
Big thanks to everyone who donated for Quake2

#148078 - Peter - Tue Jan 01, 2008 11:43 pm

Lick wrote:
This one might also be interesting.

Several books on this topic try to proof the math behind it. From my experience is this not really needed, it's usually enough to know how to use math.

For example: quaternions, it's very handy to know how to work with them, but it's not really from interest for a lot of people to read the mathematical proof why they work. Plus, it's definitaly not an easy task to learn all the evil math by reading a book, at least I have my problems with that :)

I don't know what way the book above goes, but personally I prefer the "i don't care about proof, just show me how to use it" material. Actually when you're using something, sooner or later you get deeper into it anyway.
_________________
Kind Regards,
Peter

#148235 - Lazy1 - Thu Jan 03, 2008 8:44 pm

I started on the nehe tutorials again, I guess once I finish those I should look for a more advanced book?