Hello. I want to start up openGL, but want to know what mathematics background is required for 3d graphics programming, and if there are any online mathematics books avaliable to read or download. Secondly as I live in a country where books on such material is not easily avaliable, therefore I would like to know if the red book is avaliable online, and where. Last of all I know c++ and java upto some extent,what depth in the language knowledge is required. I will be thankfull to you for this information.

Depend of what you want to do.

for maths, goto www.flipcode.com

red book: http://www.gamedev.net/reference/articles/article993.asp

Hello,

First of all : if you don’t like math, you won’t have to do much, don’t worry. The minimum is some basic acquaintance with geometry in space : if you know what are (x,y,z) coordinates,what’s a rotation, and what’s the cosinus/sinus of an angle, that’s enough. You just have to know that OpenGL counts in degrees, that the standard library (with the sin and cos functions) counts in radians, and that the conversion ratio is 3.14159/180.0.

Next, if you want to perform your own matrix transformations, you’ll need a first year course in linear algebra and some acquaintance with projective geometry. But that’s not necessary…

Best regards.

I would tend to disagree. I think basic linear algebra is almost a necessity for working with 3D graphics. It’s probably true you don’t need it but without it you will never truly understand what is happening. But then again, I think that you can never have enough knowledge, especially in maths. I do agree on the geometry point, and an overall knowledge of all areas of calculus can’t hurt either. Throw in a smattering of mechanical physics and you should be ready to go!

Hope that helps.

Well you must be true : calculus is useful, and you have to make cross-products to calculate normal vectors. Then, things depend on what you want to do.

I plan to program a game where you cruise nearly at the speed of light , and some knowledge in physics could be useful !

Originally posted by Morglum:

…

I plan to program a game where you cruise nearly at the speed of light , and some knowledge in physics could be useful !

So everythink will shrink getting near to the speed of light? And of course the higher mass… sounds interesting.

Well… in my opinion, the only you need to begin is basic spatial algebra (like in robotic kinematiks), matrix operations, and understand it well. I have some notes on this, but all in Spanish

But you must know that al the points are multiplied by one matrix that represents all the geometric transformations (rotate, scale, translate) and all the visualitzation transformations (that converts your 3D world to the 2D screen).

All the matrix are 4x4 in homogeneus coordinates (x y z w) where w is the homogeneus coordinate.

I OpenGL terms to everi point the matrix product is:

PROJECTION_MATRIX x MODELVIEW_MATRIX x POINT

And if you want to make real animation you must know some phisics (like inertial, forces and things like this).

I hope i answered u… but don’t think I’m really bad teacher…

Lorien!

hello,

i don’t really like maths exepted thoses wich are usefull for 3d programming or network error checking, or binary trees,splines etc.

maybe that’s because it’s less abstract when you have you can see the results of what the boring things that you have learn before when you don’t really knew what it was usefull to.

Marsu-matrix

Originally posted by MarsuGL:

hello,

i don’t really like maths exepted thoses wich are usefull for 3d programming or network error checking, or binary trees,splines etc.

sorry to burst your bubble, but all math is useful for 3d programming. anything from combinatorics to linear algebra to calculus to discrete math to tensor theory and on and on is useful

if you want to be the guy pushing the graphics envelope, learn everything

if you want to just be another opengl coder in the crowd, just look around cause those people are a dime a dozen

Maths & Physics is good. The more you know, the better, ie,

Matrices,

Vectors,

Quaternions,

Parametric Equations,

Linear Algebra,

Calculus,

Particle Mechanics (Newtonian & Grandian Math),

the list gets longer & longer…

Even though you do not need to be mathematician spidey and Rob The Bloke are 1000000000% right

No, you do not need much math for OpenGL. Math can be useful for making models but the math used in OpenGL itself is not very much or very advanced. Nothing of the stuff a mathematician would call real math is used.

With the new low level (RISC) functions can you do a lot of things but I do not think that the math itself is the problem. You do not need to have a great talent for math.

True, it may appears to be that way but I think it is more a question of getting used to it. Many nvidia presentations also have equations that can be hard to understand but once you understand the variables will the math not stand in your way.

It is very naive in many ways to say “if you want to be the guy pushing the graphics envelope, learn everything”.

It is also very naive to post and annoying to read things like “just another opengl coder in the crowd” and “those people are a dime a dozen”. It is much better to focus on the cool, fun stuff instead.

I would like to thank everyone who has answered my question. Actually I have mathematics background, but I did calculus and some linear algebra two years ago. I have mostly forgotten it. But I have some hold on matrices. You see my real problem is that I live in Pakistan, so not only the required books are hard to find, but mostly are not avaliable. So please people do let me know about websites where online or pdf versions of mathematics books are avaliable, becuase I am not actually afraid of the learning curve. I have started linear algebra, my first little problem for example is that I can find determinants of 3 by 3 matrix, but not able to do it for a 4x4 matrix.As one of you has mentioned that 4x4 matrix is the way to go in 3d programing so, where can I find a easy to understand tutoral for that.

And you are not a bad teacher at all Lorien.

It’s like this - if you have a 4x4 matrix like this (hope this looks right):

[ a b c d ]

[ e f g h ]

[ i j k l ]

[ m n o p ]

then the determinant is:

afkp + bglm + chin + dejo - mjgd - ifcp - ebol - ankh

It’s actually very easy to work out a formula for determinants, and the idea extends to nxn matrices.

Hope that helps.