Math related to 3D graphics.

Started by
2 comments, last by Jason Z 9 years, 9 months ago

Hello, I'm currently a physics major but am thinking about changing to math with a minor in computer science. I've always been interested in areas of computer science that required a lot of math such as cryptography but mainly computer graphics. The math degree is very lenient in the sense that I can pick most of the upper division courses. I tried googling which maths would be of the most use in computer science in general but usually the results I found were just "trig, linear algebra, calculus" etc which isn't what I'm looking for. I'm posting in computer graphics because I figured this would be the most math-heavy programming section.

Currently for math I have calculus 1-3, linear algebra, differential equations, and a course in discrete math.

Here are my questions:(gear 3 and 4 towards computer graphics/simulations, I suppose):

1) Do different branches of computer science require vastly different branches of math or is it all similar?

2) For computer graphics/simulations. Would I be better off doing math or physics for this assuming equal amount of programming for both?

3) A 2-semester sequence that I have to choose between is:

Survey of Multivariable Calculus (More advanced vector calculus, more max/min geometry stuff, complex functions etc)

and

Survey of Partial Differential Equations (Just all PDEs and orthogonal functions and stuff)

OR

Real Analysis 1

and

Real analysis 2

I'm not sure how useful the more advanced calculus stuff is compared to the proof based courses like Real Analysis. Any ideas?

4) Lastly, which of these undergrad courses are the most important?

Numerical Analysis 1 & 2

Combinatorics 1 & 2

Complex Variables 1 & 2

Topology 1 & 2

Game Theory
Cryptography

Another discrete math course

Advanced Linear Algebra (probably a lot of proofs)

Abstract Algebra

Probability Theory

Advanced Geometry (Hilbert postulates, Lobachevskian geometries etc)

Statistical inference

Theory of Numbers 1 & 2 (The Euclidean algorithm and unique factorization; arithmetical functions; congruences, reduced residue systems; primitive roots; certain diophantine equations.)

Correct me if I'm wrong but I'm thinking numerical analysis, combinatorics, and another discrete math should definitely be taken for any branch. But what else?

Advertisement

2) For computer graphics/simulations. Would I be better off doing math or physics for this assuming equal amount of programming for both?

I might separate graphics from simulations. Because you posted here on gamedev, you may be considering more of a "real-time" graphics approach. If so, in the future, simulations, such as in biological/weather/medical/oceanography areas, will be required to more and more sophisticated and likely involve implementation of math and physics that's less closely related** to the graphical presentation of the results. Having said that, with what shaders might be like in the future, with massive parallel capability, there's likely to be a lot more work done in the GPU.

**e.g., diff-equations, field functions, fluid mechanics, etc.

With that in mind, you may want to through in a few courses in the life sciences in those areas, particularly those that deal with the processes involved.

EDIT: FYI, I majored in Engineering Physics for my Bachelor's degree, a solid mix of heavy physics stuff and engineering subjects. Transitioning from that background to computers (IMHO) would be much easier than vice-versa. Remember, a Bachelor's degree indicates the ability to learn, not detailed knowledge in a particular area.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

Truth is there's a good chance you'll use little of that in practice, but all of it is worth learning. Take the classes that interest you the most and research the rest on your own time.

You probably won't be able to directly apply advanced calculus or real analysis to a computer graphics problem, except when you are setting up the basic parameters of your algorithm. It might be beneficial for you to see some of the rendering techniques that are implemented in modern GPUs, such as in the GPU Gems series (part 3 is here). That will give you an idea of what kind of analysis is needed and used for designing an algorithm.

This topic is closed to new replies.

Advertisement