Advertisement

Math I need to know to make shaders

Started by March 21, 2016 01:03 PM
5 comments, last by maxmaxmax 8 years, 5 months ago

Hi at all! I'm 18 and currently at the last year of high school. In september I'll go to university and, obviously, since the education system is different between countries, I'm afraid that I'm not going to acquire the required math knowledge used to make a game...

These are all the math exams which I'm going to encounter:

Discrete math, Math analysis, Probability and statistic, Operations research, Calculus, Physics (this exam does differ between courses at university in my country... this one starts from vectors to thermodynamics).

There is also an exam, which the literal translation should be "Mathematical methods in the applied sciences", where you are taught to make algorithm to solve math problems like, for example, derivatives and integrals. So I think this is important in computer graphics...

So, there is something else I'll need to know?

Thanks in advance and excuse me for my bad english!


So, there is something else I'll need to know?

IMHO, for your requirement: Linear Algebra, Vector Calculus, and of course the knowledge required to implement the game. wink.png

Advertisement

I second Linear Algebra and Vector Calculus. To be more specific in those subjects, you should get to know vector math really well, inner product, cross product, projecting vectors on to other vectors. A large portion of the math I use in graphics code consist of those basic operations.

Also, don't expect school to teach you everything you need to know to make games. Even if you went to a school dedicated to making gmaes, you won't learn everything you need to know. You will have to take initiative and learn things on your own. As an example, Quaternions are something used frequently in 3D graphics, but they were never even mentioned in any of the classes I took throughout high school and university. I had to learn about them on my own.

My current game project Platform RPG


So, there is something else I'll need to know?

IMHO, for your requirement: Linear Algebra, Vector Calculus, and of course the knowledge required to implement the game. wink.png

This. You don't need to know how to handle abitrary vector spaces, but you should know matrix and vector operations by heart. Graphics programming requires tons of matrix/vector math.

Computational geometry is the missing piece in what people have listed so far. Also consider robotics courses, as they are excellent primers in handling coordinate transformations.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

where you are taught to make algorithm to solve math problems like, for example, derivatives and integrals. So I think this is important in computer graphics...

Not for real-time graphics.
Derivatives etc. are useful for graphics research. Which is a department we have at Square Enix (rather, some people in my department are dedicated only to that kind of research) but is generally very rare in the industry.

Generally you only need to know what was suggested already, but if you want to actually see for yourself what you need to know, download research papers and look at the equations for yourself. Those are what you translate into shader code.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Advertisement
I'd like to suggest you to download unreal engine 4 and experiment with creating material effects. I have learned a lot by making material shaders for visual effects using cascade and the material editor. They have a map called "Math Hall" in the content example project that has a lot of examples to get you started. Between the documentation, the math hall and the forums, you will have no problem finding answers to your questions. I recommend you use the "Debug nodes" a lot to follow the math.

This topic is closed to new replies.

Advertisement