Books & resources to teach myself Linear Algebra [

2019-04-06 19:55发布

问题:

I'm looking for books and resource to teach myself linear algebra to be used in 3D graphics programming. I prefer practical approaches to teaching over theoretical (even though math is what, 99.99% theory?) ones, so the dream resource for me would be a book that tackles linear algebra as it's used with 3D graphics programming from a practical perspective.

回答1:

MIT OpenCourseWare offers a free course in Linear Algebra. May be too general for your very specific interests, but it's free. :)



回答2:

If you ask a mathematician, an engineer, and a game programmer what linear algebra is, you'll get three different answers.

Mathematicians will focus on fascinating but abstract topics such as linear independence and abstract vector spaces. Engineers will focus on eigenvectors, which are used to solve differential equations. For graphics, you are typically using vectors to compute geometry, which is not the focus of linear algebra textbooks.

A good computer graphics textbook should go over most of what you need. The F. S. Hill book is one example.



回答3:

Although not intended to teach linear algebra the book "tricks of the 3d game programming gurus" has excellent coverage on 3D graphics with examples of how the linear algebra is applied.



回答4:

Foley's Computer Graphics would answer your questions in a practical manner.



回答5:

Hmm - for 3D programming you don't need all the fancy linear algebra stuff like abstract vector spaces, bases, eigenvectors, etc.

All you need is basic stuff like matrixmultiplication, the definition of the inner product (and some basic facts about it), definition of lines and plans with respect to normal vectors, etc.

All this is normaly covered in undergraduate analytic geometrie courses if I'm not mistaken.

But after all - if you don't want to play with your own renderering engine you gonna use DirectX, OpenGL or something similiar and then you will only need to know how to "address" a point in 3D with it's coordinates and maybe how to compute a normal vector to a "surface" - and in all those cases wikipedia or google will give you a helping hand.