Live data from Hacker News

Introduction to the Math of Computer Graphics

codeofthedamned.com

1–10 of 35 posts

Re: Introduction to the Math of Computer Graphics

#5
post #4

What I'm failing to understand is how do matrices relate to 3D graphics. What is a matrix representing? I think I get the idea of a vertex, as that can be used to represent a point on a shape, like a 3d model.

A transformation from world coordinates (x, y, z) to screen coordinates (pixels).

A matrix corresponds to a linear mapping of some vector space to another. In case of graphics you usually start with local coordinates of your object. These have to be mapped to world coordinates, camera coordinates, and finally a perspective projection to get the screen coordinates. All these mappings can be expressed as matrices and applying mapping A after B is the same as applying the matrix product A*B to your initial coordinate vector. Precomputing the entire transformation matrix in this way causes quite a speedup for long transformation pipelines.

Re: Introduction to the Math of Computer Graphics

#7
post #4

What I'm failing to understand is how do matrices relate to 3D graphics. What is a matrix representing? I think I get the idea of a vertex, as that can be used to represent a point on a shape, like a 3d model.

Check out this article! http://www.senocular.com/flash/tutorials/transformmatrix/

It helped me understand them quickly, with easy to understand, practical examples.

Don't mind the "Flash 8" context, there really isn't anything flash-specific in there.

Re: Introduction to the Math of Computer Graphics

#8
post #4

What I'm failing to understand is how do matrices relate to 3D graphics. What is a matrix representing? I think I get the idea of a vertex, as that can be used to represent a point on a shape, like a 3d model.

Matrices can be thought of as the coefficients to linear systems of equations. Things that linear systems of equations can do to their input variables are rotations, translations, scaling etc. Perspective distortion is another linear transform so it can be represented by a matrix.

Re: Introduction to the Math of Computer Graphics

#9
post #8
post #4

What I'm failing to understand is how do matrices relate to 3D graphics. What is a matrix representing? I think I get the idea of a vertex, as that can be used to represent a point on a shape, like a 3d model.

Matrices can be thought of as the coefficients to linear systems of equations. Things that linear systems of equations can do to their input variables are rotations, translations, scaling etc. Perspective distortion is another linear transform so it can be represented by a matrix.

Yes. Imagine you have a cube plotted in XYZ coordinates. The eight vertex points are (0,0,0), (0,0,10), (0,10,0), (0,10,10), (10,0,0), (10,0,10), (10,10,0) and (10,10,10).

Now let us say you want to rotate that cube 30 degrees on the X axis. You take the last vertex and make it a matrix, adding 1 at the end like you will do with the others, i.e. (10 10 10 1). Then you multiply it by the X rotation matrix ( https://open.gl/transformations ) using the appropriate angle. You now have the new correct position of that point. Now do the same for the other vertexes on the cube. The cube is still the same size and shape but its position has shifted.

You can do other easy transformations with matrix math. You can scale the cube with a scaling matrix - doubling it, halving it, or whatnot. Just multiply each vertex to the same scaling matrix. The new coordinates have the same size.

You can have a translation matrix to, where each vertex is multiplied by the same translation matrix, so that the cube is translated x, y, z coordinates from its origin.

You can also chain these matrix multiplications, so that the cube size is doubled, then rotated 60 degrees on the Y axis, then moved 20 X, -30 Y, 15 Z via translation. So that is multiplying three matrices in a row, then multiplying them against each vertex.

Re: Introduction to the Math of Computer Graphics

#10
post #4

What I'm failing to understand is how do matrices relate to 3D graphics. What is a matrix representing? I think I get the idea of a vertex, as that can be used to represent a point on a shape, like a 3d model.

Without getting too mathy - matrices let you express useful transformations (eg. translation, rotation, scale) and multiplying two matrices combines those two translations - so you can have matrix tansform = rotationA * translation * rotationB

and now multiplying a vector (~ a 3d point) by that transform matrix is the same as doing each individual transformation (in the reverse order they appear in matrix multiplication) on a point to get the point after transform

Post reply on HN