Jump to content

  • Log In with Google      Sign In   
  • Create Account

We need your feedback on a survey! Each completed response supports our community and gives you a chance to win a $25 Amazon gift card!


Learning Math really from scratch


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
14 replies to this topic

#1 Chirieac   Members   -  Reputation: 141

Like
0Likes
Like

Posted 18 September 2013 - 01:22 AM

Hi,

 

I am 27 years old and I've decided that it's time for me to learn the math needed for 3D game programming. The problem is that everything seems so overwhelming and I do not know where to start, so and I need your help.

 

First of all, I would like to know what are the fields (or part of them) that I need to learn in order, from the most basic ones to advanced. While in school, I've just learned for grades and didn't had a higher understanding of it and I think I forgot everything, so I need to start from the basics.

 

My native language is not English and I have 3 options to learn:

 

1. Hire a tutor to teach me everything I need to know. Besides that is expensive, I think is hard to find a good university teacher that is willing to teach me everything in my country.

 

2. Learn from books in my native language. Finding good books in my language is hard and sooner or later I still would have to read English books to learn more specific things about 3D programming. So...

 

3. Learn from English books. I see myself having good skills for reading English, but learning something like math in a foreign language seems hard. Maybe because I try to translate the English terms in my language.

 

What do you think? I imagine that it depends on every person and his skills, but what option would you choose?

 

I'm tempting to choose option #3. I think I need to start from the very bottom in order to get familiar with all the terms in English, like I never learned math in my language. Continuously translating every term in my language really slows me down.

 

Choosing #3, can you please tell me what are the math fields I need to learn in order? Like, first Pre-Algebra, Algebra I and II, Trignometry and so on.

Also, can you please recommend me some books for each field?

 

Thanks!



Sponsor:

#2 ZwodahS   Members   -  Reputation: 483

Like
2Likes
Like

Posted 18 September 2013 - 02:45 AM

Take a look at khanacademy if you want to start from scratch or even to help you get started in some of the areas. After that it should become easier for you to read the books.

Check out my blog at zwodahs.github.io and zwodahs.itch.io/


#3 RobTheBloke   Crossbones+   -  Reputation: 2341

Like
2Likes
Like

Posted 18 September 2013 - 04:07 AM

Hi,

 

I am 27 years old and I've decided that it's time for me to learn the math needed for 3D game programming. The problem is that everything seems so overwhelming and I do not know where to start, so and I need your help.

 

First of all, I would like to know what are the fields (or part of them) that I need to learn in order, from the most basic ones to advanced. While in school, I've just learned for grades and didn't had a higher understanding of it and I think I forgot everything, so I need to start from the basics.

 

My native language is not English and I have 3 options to learn:

 

1. Hire a tutor to teach me everything I need to know. Besides that is expensive, I think is hard to find a good university teacher that is willing to teach me everything in my country.

 

2. Learn from books in my native language. Finding good books in my language is hard and sooner or later I still would have to read English books to learn more specific things about 3D programming. So...

 

3. Learn from English books. I see myself having good skills for reading English, but learning something like math in a foreign language seems hard. Maybe because I try to translate the English terms in my language.

 

What do you think? I imagine that it depends on every person and his skills, but what option would you choose?

 

I'm tempting to choose option #3. I think I need to start from the very bottom in order to get familiar with all the terms in English, like I never learned math in my language. Continuously translating every term in my language really slows me down.

 

Choosing #3, can you please tell me what are the math fields I need to learn in order? Like, first Pre-Algebra, Algebra I and II, Trignometry and so on.

Also, can you please recommend me some books for each field?

 

Thanks!

 

For matrices, start here: http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/

For Trig, just remember that sin()/cos()/tan() aren't some magical property, they are functions to evaluate a relationship between angle and length. Taylor series expansions are useful to get your head around, although a little info about differentiation may help first. 

The best approach imho, is to get a unit test library (googletest is a good one), and start building your own maths lib from scratch (no cheating by looking code up online!). Test everything until you are certain it works properly. 

If you figure out things like 'rotateVectorByQuat', you'll probably figure out how to convert from a quat to a matrix on your own. Especially if you start thinking about a 3x3 matrix like so:

struct Matrix
{
   Vector3 x;
   Vector3 y;
   Vector3 z;
};



#4 Álvaro   Crossbones+   -  Reputation: 13937

Like
0Likes
Like

Posted 18 September 2013 - 06:04 AM

The main thing you need to learn is linear algebra (vectors and matrices). You don't really need much trigonometry if you learned linear algebra well. And I wouldn't think of Taylor series or differentiation for a while.

When I search the web for "linear algebra course online", the first three hits are an open course from MIT, a free text book and series of videos from Khan Academy. All three sound like great resources.

You can always ask questions here if you have trouble with the material, or you can PM me and I'll be happy to help you.

#5 hanstt   Members   -  Reputation: 259

Like
0Likes
Like

Posted 18 September 2013 - 07:59 AM

You say you studied for grades in school. What is your goal this time, to study only enough maths so you can do the programming you're thinking of right now, or to actually gain that luscious deeper understanding and have a larger set of mathematical tools to choose from in the future?

 

The best way of learning depends of course on who you are, but having a printed book is hard to beat. As has been mentioned, there are loads of really nice free video lectures online as complementary material, have a look. And considering the level of English in your post, I'd say maths books at the level you're interested in shouldn't be a problem. As always, there's no magic book to open the doors for you, just grab whatever you can find at the local library and have fun. Search for natural science programs in high schools and universities and see in what order they teach maths and go by that. Keep programming and try to find ways to apply what you're learning, and eventually you'll do just that with linear algebra.

 

Also, don't skip too many parts, thinking they are not relevant to rotating a 3D object. Maths is wonderfully intertwined, and starting with a strong foundation, new things in maths will be "obvious" rather some something you need to cram or constantly look up (i.e. "the reason for this expression is this, so the answer to my question is that" vs "was it this or that, wikipedia help!").

 

That's what I did, and what I'd do again...



#6 Álvaro   Crossbones+   -  Reputation: 13937

Like
0Likes
Like

Posted 18 September 2013 - 08:06 AM


My native language is not English

 

Wouldn't it be better to tell us what your native language is, in case someone knows of good resources in that language? However, I agree with hanstt that you shouldn't have any problems reading math books in English. I can read math books in English, Portuguese, French and probably Italian, and I don't even speak the last two (but they are close to Spanish, which is my native language).



#7 ShadowFlar3   Members   -  Reputation: 1258

Like
0Likes
Like

Posted 18 September 2013 - 08:09 AM

 learn the math needed for 3D game programming.

 

My suggestion is just go ahead with actually learning programming and figure it out as you go. Try it. If you've done anything in 3D I'm sure you can begin to understand x,y,z axis move on from there. You can even learn vectors and some of their methods with 2D vectors first and that's what they often do in school as well.

 

They are actually reworking the math lessons in my country to shift towards teaching math with virtual game application in mind. That is by far more motivating than dealing with abstract concepts such as vectors and matrices. Make that into player position and orientation and suddenly everyone is interested.

 

What better motivation to learn to understand something than the fact that it's standing between you and your game as you're developing it? :)



#8 Chirieac   Members   -  Reputation: 141

Like
0Likes
Like

Posted 18 September 2013 - 08:48 AM

Thanks for your replies!

 

My native language is Romanian.

 

My goal I think is to learn the needed math for 3D game programming, but not really just enough. I'm not interested in only the bare minimum, learning just the specifics. I do want to have a deeper understanding.

 

In terms of education, the high school is my highest one, an art school where I've studied artistic drawing and architecture. The education stopped there.

Currently I'm working as a web developer and my first programming language learned by myself was C++.

 

The free videos seems good and I will watch them, but I still want to learn from books also.

From what I've found, I think I should first learn Algebra I and II, than maybe some Geometry and Trigonometry. The Linear Algebra, Pre-Calculus and Calculus I do not know when to learn them and in what order.

With so many books on amazon I'm not sure what to get.

 

I'm not looking for magic books and neither do I want to skip many parts.


Edited by Chirieac, 18 September 2013 - 08:48 AM.


#9 PeterStock   Members   -  Reputation: 396

Like
0Likes
Like

Posted 18 September 2013 - 08:52 AM

Whenever anyone starts off by saying that English isn't their native language, they then seem to write with better spelling/grammar than most native English speakers! Maybe the terms are difficult because they're new maths concepts rather than foreign words? I don't relate terms like differentiation, cross product or determinant to anything else in real life - their only meaning is mathematical to me.

 

Anyway, basic algebra, trigonometry, vectors and matrices are all good things to know about. Calculus may also be relevant, depending on what you choose to do. I find Wikipedia is a good first reference for maths concepts I'm not familiar with.



#10 mawigator   Members   -  Reputation: 404

Like
0Likes
Like

Posted 18 September 2013 - 12:14 PM

Euclidean geometry from scratch ;)

http://upload.wikimedia.org/wikipedia/commons/8/8d/P._Oxy._I_29.jpg

 

My way is to use academic books on math in the native language

(some basic concepts) and then switch to English literature (details, application issues).

Do not concern on the "programming for 3D" books, rather than try to find scripts on the

linear algebra (vectors, matrices, imaginary numbers, quaternions) and maybe on some

differential calculus but in the field of numerical methods (more applicative than pure

mathematics).


Edited by mawigator, 18 September 2013 - 12:18 PM.


#11 ZwodahS   Members   -  Reputation: 483

Like
0Likes
Like

Posted 19 September 2013 - 01:18 AM

Whenever anyone starts off by saying that English isn't their native language, they then seem to write with better spelling/grammar than most native English speakers! Maybe the terms are difficult because they're new maths concepts rather than foreign words? I don't relate terms like differentiation, cross product or determinant to anything else in real life - their only meaning is mathematical to me.

 

Anyway, basic algebra, trigonometry, vectors and matrices are all good things to know about. Calculus may also be relevant, depending on what you choose to do. I find Wikipedia is a good first reference for maths concepts I'm not familiar with.

I think the main reason is most non-native learn the grammar first before they form any sentence while native usually start forming sentences before they even know about the grammar. 

 
I feel that wikipedia is overkill. It seems like some wikipedia articles are written by professors and Ph.D students. I graduated with a Computer Science degree and when i browse some of the basic computer science topic that I know, they always seems to confuse me instead, or could be me being too stupid =/ . 
 
Back to the topic, here are some of the other sites that I use for learning, if you prefer hearing to reading.

Check out my blog at zwodahs.github.io and zwodahs.itch.io/


#12 lecopivo   Members   -  Reputation: 108

Like
0Likes
Like

Posted 19 September 2013 - 03:39 AM

Coursera is great learning tool.

 

If your high school math skills are rusty start with this 

https://www.coursera.org/course/algebra

https://www.coursera.org/course/precalculus

and it will help you to get used to learn math in English. I remember when I started reading math in English, for the first two months I couldn't get through only a few pages of material. But after while you get used to the lingo and you will have no problems to grasps even new math concepts in English.

 

Than I would proceeds to some linear algebra course:

This one is unfortunately not currently unavailable

https://www.coursera.org/course/matrix

So MIT course on linear algebra seams as the best choise

http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm

 

This course looks good, it might be helpfull:

https://www.coursera.org/course/maththink

 

Than I would learn a little bit of calculus, it is not crucial for 3d graphics but sometimes it is usefull.

https://www.coursera.org/course/calcsing



#13 Chirieac   Members   -  Reputation: 141

Like
0Likes
Like

Posted 20 September 2013 - 04:31 AM

Thank you for your help!

 

I've been thinking on this and I've decided that I will start and learn math directly in English.

First, I think I'll try to learn from the videos you gave me. But, learning from videos is not a perfect way, at least not for me. Some things is easy to miss or to forget.

So, I think I need to read some books also. Can you please recommend me some beginner and intermediate math books to complement the videos?



#14 lecopivo   Members   -  Reputation: 108

Like
0Likes
Like

Posted 21 September 2013 - 11:57 AM

For MIT courses you always have recommended study materials

http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/study-materials/

 

Coursera courses have recommended texts too.  So I think that getting those texts would be the best shot.

 

Plus NEVER forget to do the exercises supplied with the videos and you can take notes from the videos as in school too.


Edited by lecopivo, 21 September 2013 - 12:00 PM.


#15 Chirieac   Members   -  Reputation: 141

Like
0Likes
Like

Posted 21 September 2013 - 11:59 AM

Understood, thank you!






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS