<p>That quote is a very strange way to phrase things. We definitely use 3x3 matrices in computer graphics. They tend to be most useful for doing affine transformations of 2D objects. It allows you to have scale, rotation, shearing, and translation (in 2D), but not perspective transformations. I believe that's what the quote is trying to say.</p>

<p>To get a perspective projection of a 3D scene onto a 2D plane (such as your computer screen), at some point you will need to divide the x and y components of each point in your geometry by some factor that foreshortens lines in the z dimension. That's the divide that they are referring to. See <a href="https://en.wikipedia.org/wiki/Transformation_matrix#Perspective_projection" rel="nofollow">this article</a> for more details. In it, they describe:</p>

<blockquote>
  <p>The simplest perspective projection uses the origin as the center of projection, and z = 1 as the image plane. The functional form of this transformation is then <em>x' = x / z</em>; <em>y' = y / z</em>.</p>
</blockquote>

CC BY-SA 3.0
2016-09-16T20:48:07.340Z
you can't do 3d translation with a 3x3 matrix, you need a 4x4.  The rest I totally agree with :P
Alan Wolfe
CC BY-SA 3.0
2016-09-16T20:49:38.973Z
Sorry if it was unclear. I was trying to say that you can do translation of 2D objects. I'll update to make that more clear.
user1118321
CC BY-SA 3.0
2016-09-19T03:20:21.600Z
You can use 3x3 matrices for 3D animation though if the bones are connected at their end points and do not exhibit scaling (e.g., for human-shaped skeletons where all you need is the rotation matrix and bone length), and this can significantly reduce memory/bus-bandwidth.
aces
CC BY-SA 3.0
2016-09-16T03:47:27.583Z
2016-09-16T20:50:12.490Z
2016-09-16T20:50:12.490Z
user1118321
<p>I've been doing some side-research on computer graphics as a hobby and came across this article on quaternions:
<a href="http://www.opengl-tutorial.org/assets/faq_quaternions/index.html#Q2" rel="noreferrer">http://www.opengl-tutorial.org/assets/faq_quaternions/index.html#Q2</a></p>

<p>In the first section on matrices, it describes 2x2, 3x3, and 4x4 matrices and their functions.  Here is the entry on 3x3 matrices:</p>

<blockquote>
  <p>3x3 matrices are used to perform low-budget 3D animation. Operations
  such as rotation and multiplication can be performed using matrix<br>
  operations, but perspective depth projection is performed using<br>
  standard optimised into pure divide operations.</p>
</blockquote>

<p>I'm not sure if this blurb means that 3x3 matrices aren't used anymore or if we are still using them for simpler calculations on certain animations.  I understand what perspective depth projection is, but what does it mean it is performed using pure divide operations?</p>

<matrix>
Do we use 3x3 matrices in computer graphics?
johnmarinelli
# Do we use 3x3 matrices in computer graphics?

(Asked by: username_0 on 2016-09-15)

I've been doing some side-research on computer graphics as a hobby and came across this article on quaternions:
<http://www.opengl-tutorial.org/assets/faq_quaternions/index.html#Q2>

In the first section on matrices, it describes 2x2, 3x3, and 4x4 matrices and their functions. Here is the entry on 3x3 matrices:

> 3x3 matrices are used to perform low-budget 3D animation. Operations
> such as rotation and multiplication can be performed using matrix  
> operations, but perspective depth projection is performed using  
> standard optimised into pure divide operations.

I'm not sure if this blurb means that 3x3 matrices aren't used anymore or if we are still using them for simpler calculations on certain animations. I understand what perspective depth projection is, but what does it mean it is performed using pure divide operations?

**Tags:** matrix


---

## 1 answers

### Answer by username_1 on 2016-09-16. Score: 4 | Accepted answer

That quote is a very strange way to phrase things. We definitely use 3x3 matrices in computer graphics. They tend to be most useful for doing affine transformations of 2D objects. It allows you to have scale, rotation, shearing, and translation (in 2D), but not perspective transformations. I believe that's what the quote is trying to say.

To get a perspective projection of a 3D scene onto a 2D plane (such as your computer screen), at some point you will need to divide the x and y components of each point in your geometry by some factor that foreshortens lines in the z dimension. That's the divide that they are referring to. See [this article](https://en.wikipedia.org/wiki/Transformation_matrix#Perspective_projection) for more details. In it, they describe:

> The simplest perspective projection uses the origin as the center of projection, and z = 1 as the image plane. The functional form of this transformation is then *x' = x / z*; *y' = y / z*.

> **Comments:**
> **username_2**: you can't do 3d translation with a 3x3 matrix, you need a 4x4.  The rest I totally agree with :P  
> **username_1**: Sorry if it was unclear. I was trying to say that you can do translation of 2D objects. I'll update to make that more clear.  
> **username_3**: You can use 3x3 matrices for 3D animation though if the bones are connected at their end points and do not exhibit scaling (e.g., for human-shaped skeletons where all you need is the rotation matrix and bone length), and this can significantly reduce memory/bus-bandwidth.  

---

