It has been my understanding that rotations in 3D computer graphics were commonly represented as quaternion rotations rather than matrix rotations, due to both better computational efficiency and lack of gimbal lock. Will we specifically be using one or the other in this course, and does rotation via quaternions still function as a linear map?

keenan

@Kuragam Great question. We'll talk a lot about 3D transformations and their representations, including quaternions, complex numbers, and homogeneous coordinates as possible alternatives. All of these play a role in graphics, and there is no one representation that works universally for all tasks. For instance, although quaternions are quite nice for representing rotations (and scaling), they don't encode affine transformations like translations in a way that naturally composes; for this, most graphics systems have adopted transformations in homogeneous coordinates represented by 4x4 matrices, since compositions of transformations can be compactly encoded by a single matrix (given by the product of transformations).

It has been my understanding that rotations in 3D computer graphics were commonly represented as quaternion rotations rather than matrix rotations, due to both better computational efficiency and lack of gimbal lock. Will we specifically be using one or the other in this course, and does rotation via quaternions still function as a linear map?

@Kuragam Great question. We'll talk a lot about 3D transformations and their representations, including quaternions, complex numbers, and homogeneous coordinates as possible alternatives. All of these play a role in graphics, and there is no one representation that works universally for all tasks. For instance, although quaternions are quite nice for representing rotations (and scaling), they don't encode affine transformations like translations in a way that naturally composes; for this, most graphics systems have adopted transformations in homogeneous coordinates represented by 4x4 matrices, since compositions of transformations can be compactly encoded by a single matrix (given by the product of transformations).