Lesson 4: Geometry

1. Points, Vectors and Normals
An simple and informative introduction to Geometry in which you learn the difference between points, vectors and normals.

2. Coordinate Systems
Points and vectors are all expressed in relation to a particular frame of reference, which is called a coordinate system.

3. Math Operations on Points and Vectors
We will learn some basic math operations on points and vectors such as the dot and cross products.

4. Matrices
In this chapter you will learn about what matrices are and how they can be multiplied with each other.

5. How Does Matrix Work: Part 1
Learn about the identity, the scaling and the rotation matrix.

6. How Does Matrix Work: Part 2
In the chapter we will show how matrices store the axes of Cartesian coordinate systems. We will also explain what an orthogonal matrix and what an affine transformation are.

7. Transforming Points and Vectors
In this chapter we will lean why we need to use [4x4] matrix to translate points. We will provide the final code for transforming points and vectors.

8. Row Major vs Column Major Vector
Vectors (and points) can either be represented as rows or columns of numbers. This notation convention can be a source of confusion among developers.

9. Matrix Operations
Tansposing, inverting or computing the determinant of a matrix are some basic operations that any 3D application needs.

10. Spherical Coordinates and Trigonometric Functions
Vectors can also be represented by spherical coordinates, a convenient way of also generating random directions.

11. Creating an Orientation Matrix or Local Coordinate System
In the chapter we will learn how to create a local coordinate system from a vector (or a normal).

12. Transforming Normals
Normals seem similar to vectors but they need to be transformed differently.

13. Source Code
This chapter explains the way we have implemented a generic vector and matrix class in C++.