Math Required?

Started by
8 comments, last by mjamer 21 years, 11 months ago
Hello, I would like to learn OpenGL programming, however I''m not that good with math. The last math class I had was about 15 years ago, and that was a semester of geometry. That brings my math background to algebra I and half of geometry. I''ve done alot of research, but my findings make me feel as though I''ll be learning math for 2 lifetimes before I can begin really understanding how to do things in OpenGL. So I come to you all, experts at this stuff, to give me a bit of guidance. I''m married with a child, and work a full time job. I wont be able to really make time to attend any colleges or night classes. What I''d like to know, is what math is required to fully enjoy programming in OpenGL with no limitations other than the hardware itself. My programming background is superb (not to toot my horn!), I''ve been programming in both C and ASM for over 15 years, that part I can handle. It''s just the math. What math is required, and what books or websites can I learn from at home on my own time? Thanks! Mike
Advertisement
This is a pretty good book:

Mathematics for Computer Graphics Applications
by Michael E. Mortenson

Available at Amazon.com for $45 new.

You may also want to just go to a used bookstore
and get some books on linear algebra (matrices,
vectors, etc.). Don''t know how much more you
really need to know than that.

Websites:
(found on a www.google.com search in about a minute)
This looks good:
http://mathworld.wolfram.com/
specifically to get started:
http://mathworld.wolfram.com/topics/VectorAlgebra.html
http://mathworld.wolfram.com/topics/Matrices.html

Also, a lot of introductory game programming books
usually have either a section at the beginning or an
appendix that explains some of the basic math needed.
Thanks for the reply NathanSDK,

I will look into purchasing the math book you reccomended. I just hope it starts slow enough for me to grasp it. The links you provided are as I suggested, seemingly a lifetime to learn just what that stuff means. I''m sure one day I''ll be able to browse around wolfram with confidince and understanding, but I''m just not there yet.

An example as to how unknowledgeable I am, I do have the Alan Watt - 3d Games real-time rendering and software technology, and 3d game engine design - David Eberly. Both of these books blow me away with the math in just the first 2 chapters. I need away to learn up to and including what they''re talking about.

If I need to start over with basic algebra, so be it. Just need to know where I should start for this. =)

Thanks again,
Mike
A better option may actually be to take an online class.
That way you could also ask the instructor if you got stuck.

I have read a review of www.gameinstitute.com and it seems
like they have a pretty neat program.

The particular class you would want to take would be:
Game Mathematics. At $95 it's not that steep, and the
material looks pretty comprehensive.

In regards to those links, I looked again and you may want
to just use those as one of many references instead of a
starting point. :-)

I think your best bet might be to take the Game Institute
class. This link is a review on the Game
Institute "school". Granted, there's a link to it their front
page, but I remember reading it before it was there and believe
it is an honest report.

[edit: fixed links for real this time! =)]

[edited by - nathanSDK on June 9, 2002 10:06:46 PM]
Hi, im in high school and learned most of my 3d math from www.sosmath.com. I learnt enough to build my own (ineffeicient) 3d api (something like a primative opengl thing, but with no textures). 3D Math isn''t that hard, mostly matricies and vectors. You can pick it up on the fly, and its not worth paying for.

Im just curious. You have been programming for 15 years and dont know much about math? I thought programming was math. Then again i have spent no time in the industry. What am i in for?
mjamer, a lot of Opengl is basic geometry and algebra. At the very least, knowledge about Cartesian Geometry to plot polygons to the screen is the least you need to start.

Don''t feel that you need to know a lot of theory behind concepts in OpenGL in order to get them to work. I myself am still learning a lot of the ropes in 3D graphics (I started this January.) For me, I try and obtain a working knowledge of a concept first and then go back to the theory when I''m comfortable.

In short, my advice is to take your time, learn at your own pace, and practice with what you know.
I asked one of the Black Robes why the Deceiver wasn't going to stay to defend the dam, and he tersely replied: "He goes to warn the Emperor; moving through odd angles, faster than any man, and if unobserved, much faster than that."Elemental Engine: ryan_lurvey.tripod.com/engine.html
Vectors and Matricies are really important, try to learn those...they are really easy also. I dont know what books are good though because I learned it in college.
||v||atrix,

I just graduated from high school myself, and I am entering Drexel university as a software engineering major in a couple months. Having looked through the required courses for my major, I am in for a good deal of mathematics (at least 9 courses including calculus and statistics) This really frightened me, so I did a search on the internet to see what other software engineers thought about their jobs. One guy said that whenever his work required any intensive mathematics, he collaborated with a mathematician So maybe there is a light at the end of the tunnel for those not so mathematically inclined, like myself... at least I keep telling myself that!
You could in theory, never learn linear algebra or calculus, and get by fine in 3d game programming. All you would have to do is take the given formulas and put them into the program. On the other hand, if you understand the math, you would understand how the stuff works and what happens when things go wrong. I started programming in opengl in Junior year of high school (before I linear algebra) and I was even able to program my own 3d engine with software rendering in java, so I know that it can be done. However, I think you will find that you''ll start wanting to learn some of the math that goes on behind the scenes. I started to look up matrices and vector math online, and learned a great deal. Now I''m a math major in college!
Thank you everyone, with all the replies I have a pretty clear picture on proceeding. I appreciate everyone''s help!

||v||atrix,
How do I program without knowing advanced math? By not knowing I know any advanced math. With the exception of way out there theoretical math, the rest is just built with +,-,*, and / that''s how I work, things make sense in programming. I''m sure some mathematician would label things as this formula or that discipline, but to me it''s just getting the job done. As glDino said, when it isn''t simple problem solving mathematics, an expert will be referred to.

If you''re worried you need to know alot of math to be a programmer, think of a musician, a guitarist perhaps. There is quite a bit of math in music/music theory, more than one would imagine. Yet there are some brilliant guitarists, and musicians that have never learned to read music, or have ever studied music theory. I''m willing to wager that if you asked a few of them, or even your local neighborhood guy that learned by ear the mathematics behind what he does, he''ll not know. Sometimes I guess ya know but you don''t know you know, and it''s ok! =)

Thanks again to everyone!
Mike

This topic is closed to new replies.

Advertisement