   New in graphic programming !
  Hi all,i want to discover the world of graphic programming. My goals is to learn OpenGL ES, but before that i want to learn the theory behind that.I found the book "Introduction to computer graphics" from James Foley. Is that book is enough before learning an api like opengl es. Or do i need another book more oriented in mathematic.thanks :-)   
  Nice! Someone who actually want to learn the pre-requisites before jumping straight to API code. We need more people like that.I'm no familiar with "Introduction to computer graphics" so I can't talk about it, but I have a few points you may need to know, mostly mathematics:Linear algebra, Vectors (dot/cross product), Matrices (for transformations), Quaternions. Different kind of projection (perspective, orthogonal), Frustrum, Culling, Texture UVs, Normals, back/front facing polygons, texture filtering.   ;  There's a chapter on the book called "Geometrical transformation" and it's spoke about all the mathematical background behind the graphic programming !   ;  If you want to keep it fun.. do make some code early on it does not matter if it's not so good. To much theory can kill your spirit.   ;  You're absolutely right ! It's like at school we learn without knowing the purpose what we learn !!!!   ;  That book is basically the "classic" computer graphics text. I'd daresay that its recent revisions are still the preferred text in the majority of College Graphics classes, despite the original being written in, IIRC, the '70s.A good linear algebra book will also help you out in understanding transformations and such. The one I like is, I think, "Linear Algebra and it's Applications" by Otto Bretscher (though I'm not sure of the spelling). I also like 3D Mathematics for Game Programming -- which isn't a strictly academic book, but does a good job dumbing things down and has lots of useful diagrams and exercices -- Its usually my go-to book when I need to refresh my knowlege because the structure and diagrams allow me to move much more quickly through the material.Finally, a more-modern graphics text is "Real-Time Rendering" -- I haven't picked it up myself yet, but I've thumbed through it many times at various book stores. It's more of an accademicly-minded text, similar to Foley & Van Damme, et all, but seems to cover more advanced material, so I don't know if its a necessarily a good book for a beginner, but many serious graphics developers hold it in high regard.   ;  Besides the books, it's always a good idea to look at other projects/engines/editors. Long before I was able to program, I learned what sprites, polygons and vertices where thanks to the fantastic Duke Nukem 3D Build editor. These days a Sandbox editor like Crysis has can introduce you to lot's of techniques, "slang" and terms being used in the graphical world. It really helps gathering info via books or internet if you know what to look for :)And learn by practice of course. Aim for Tetris, Bomberman, Tower Defence or something like it to start with. Trying to build a big ass engine right from the start is most probably not going to work. Step by step my friend. The nice thing about making a small game is that you can get satistfacting results relative quickly. And when doing the next one, you'll be more skilled and trying to do things different/better already.Good luck!Rick;  Excellent advice i know the stuff ! I've programming since several years in the entertainment industrybut only in 2D, and i want to made the jump on 3D ;-)   ;  Black Art of 3D Game Programming - http://www.amazon.com/exec/obidos/ASIN/1571690042/ref=nosim/bookmooch-20This is where I learned 3D programming. It's pretty dated since it's from DOS days (I've been coding since MS-DOS 6 was the major OS on people's boxes) but all the topics still apply today with matrix and vector math. :)   ;  I know the book and it's available for free online, the chapter 10 to 15 are a good introduction to the 3D : http://www.dpfiles.com/dpfileswiki/index.php?title=Black_Art_of_3D_Game_Programming:_Writing_Your_Own_High-Speed_3D_Polygon_Video_Games_in_C;)   