Hacker News new | ask | show | jobs
by angersock 3688 days ago
We learned basic vector arithmetic back in highschool doing our own gamedev stuff, and it's pretty straightforward. The use of matrices as "mapping" one space to another likewise so.

Any approach that ignores the relevant parts of linear algebra, though, is probably going to collapse under its own weight as things get more complicated--experiencing that collapse may be interesting from a learning perspective, but I suspect it is not needed.

The real problem is that the useful parts of linear algebra--for graphics anyways--may never be seen before college, and even then they may be presented in the abstract form which prevents their utility from being realized.

Really, any 3D primer should just assume no familiarity with the subject, and then teach exactly those bits which are relevant to computer graphics.

1 comments

This. You went to the right high school. Matrices and vectors are just a subset of linear algebra, and can definitely be taught to teenagers.

When I teach graphics to 3rd-year college undergraduates, I tell them "this is what all that point-and-vector stuff you learnt in high school was really meant for". They've usually forgotten it all, but it comes back to them quickly, and the matrix stuff on top of that isn't very hard, so I can get them up to speed pretty quickly.

Most CS degrees require linear algebra, which talks about vector spaces, gaussian elimination, diagonalization, rank, which is all useless for graphics! Too bad that course is usually relegated to the math department, which doesn't know how fun and useful a small subset of linear algebra is!

A minor clarification: the vector/matrix stuff we picked up outside of class by hanging out at Barnes & Nobles and reading books. :)

I was fortunate in college to have a professor teaching graphics (Ron Goldman) whose training was in differential geometry. So, graphics to him was a beautiful if trivial application of mathematics and linear algebra and he taught it as such.

I will always value his teaching of mass-point stuff as an approach, because it just is so nice in how it ends up.

What would be the "gain" of leaving out linear algebra and other mathematical concepts? Agreed, computers can do graphics using basic arithmetic, so can we humans. We get the stuff done without advanced concepts. I still disagree with the "[linear algebra and stuff being] useless for graphics" part. You may not require that knowledge to implement graphics-related stuff, but if you are seeking to develop methods in that field or reason about them in a way other people will understand, you naturally end up using the language of linear algebra. You could do without it, but it would be hard for others to follow you. It might be some other kind of language, but I'd say LA is pretty darn succinct.
For learning comp-sci-focused linear algebra with programmatic exercises in Python, see http://codingthematrix.com