So I only had somebody explain to me how matrices are involved in 3D rendering in passing about a decade ago, but just to clarify, that task is the absolute basics of the basics, isn't it?
Look at this wiki page. They gave her the first R (the 2x2 matrix with sin/cos).
They showed her how matrix-vector multiplication works (the Rv = stuff example).
And they wanted her to program that. Basically this:
Of course you can do more fun stuff depending on your language of choice (pass by reference/copy, initialize vars, ...), maybe you have to import a math lib for cos/sin, ... but that is the absolute basic.
It's "Here's a math formula, please make the PC do it".
3d rendering is basically 2 things: 3d math, and shuffling large amounts of data from main CPU memory to the GPU, and doing it efficiently.
The 3d math is frequently so basic that you do it once and then never touch it again through the life of the application. But multiplication of a vector by a matrix is absolutely fundamental and we even tell them how to do it. All they have to do is write the code.
So I only had somebody explain to me how matrices are involved in 3D rendering in passing about a decade ago, but just to clarify, that task is the absolute basics of the basics, isn't it?
Fuck you pal, I'm a welder, not a mathematician
My two younger coworkers wanted to give her the next interview. =\
I mean, she was a solid 7.
Look at this wiki page. They gave her the first R (the 2x2 matrix with sin/cos).
They showed her how matrix-vector multiplication works (the Rv = stuff example).
And they wanted her to program that. Basically this:
2dvector rotate(2dvector v, double theta) {
r[0] = v[0] * cos(theta) - v[1] sin(theta)
r[1] = v[0] * sin(theta) + v[1] cos(theta)
return r }
Of course you can do more fun stuff depending on your language of choice (pass by reference/copy, initialize vars, ...), maybe you have to import a math lib for cos/sin, ... but that is the absolute basic.
It's "Here's a math formula, please make the PC do it".
You're hired.
You'd be hard pressed to come up with a simpler question related to rendering. The only thing I can think of is scaling.
3d rendering is basically 2 things: 3d math, and shuffling large amounts of data from main CPU memory to the GPU, and doing it efficiently.
The 3d math is frequently so basic that you do it once and then never touch it again through the life of the application. But multiplication of a vector by a matrix is absolutely fundamental and we even tell them how to do it. All they have to do is write the code.