[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 3d graphics



Chris wrote:

You probably want something like Foley, Van Dam, Feiner and Hughes,
"Computer Graphics: Principles and Practice" published by Addison-Wesley and Alan Watt, "3D Computer Graphics, 3rd Ed", also Addison Wesley. They'll
probably tell you more than you'll ever want to know.
Foley & Van Dam is an absolute classic 3D programming reference - if you
have a copy of "Toy Story" - you'll notice that Andy has a copy of it on
his bookshelf(!)...but I wouldn't recommend it to someone who simply wants
to write a 3D game.

It goes deeply into subject areas that are now the realm of hardware
designers - or VERY low level software drivers.

Nowadays, someone who is starting into 3D should be reading about one
of two API's:  Direct3D or OpenGL.  Since Direct3D only runs under
Windoze - we won't go there.  OpenGL is 100% portable between every
modern computer system that can do 3D.

So, take the shortest route to learning OpenGL - you can do no better.

There are LOTS of OpenGL books out there - but I recommended the "OpenGL
Programming Guide" because it was written by the authors of OpenGL who
know all there is to know about it.  It's a nice introduction to 3D
programming - it has tons of examples (and all of those examples actually
run under Linux!) - and it documents every OpenGL call in enough detail
that you don't really need the 'man' page.

There are three companion books (which IMHO you don't need) - the OpenGL
reference manual ("Blue Book") - which is just a paper dump of all the 'man'
pages - a guide to programming OpenGL under X-windows ("Green Book") and
a guide to programming under Windoze ("Alpha Book").

(I'm totally new at this... maybe does not make any more sense to study non-accelerated programming...)

A lot of it is still relevant. Software texture mapping techniques are
probably going to be fairly redundant, but the rest is still useful.
I don't think it's worth learning the low level software techniques...at
least not to start with.

Anyone who is at the very early stages of doing 3D should not be bothered
with all the horrible low level details of software rendring.   If you ever
did need your game to run without hardware 3D (a decreasing likelyhood IMHO)
then you'd probably simply use a pre-existing software renderer of some kind.

OpenGL - especially the Mesa implementation of the OpenGL API under Linux - is
quite capable of rendering in a software-only environment.  There is no need
to learn a whole lot more 'stuff' - especially at a time when you are wondering
how the heck to do rotations, how to apply texture and a myriad of other
details.

So - learn OpenGL - if you need to learn more - do it after you have your
first 3D game working,

---------------------------- Steve Baker -------------------------
HomeEmail: <sjbaker1@airmail.net>    WorkEmail: <sjbaker@link.com>
HomePage : http://www.sjbaker.org
Projects : http://plib.sf.net    http://tuxaqfh.sf.net
           http://tuxkart.sf.net http://prettypoly.sf.net