Skip to main content
00:00/00:00
Lecture 19 of 178

Coordinate System Handedness

Download Course (Free)

Course Content

0 / 178 completed
Section 1: Pikuma - 3D Computer Graphics Programming 2026-3178 videos

How to Take this Course

2m

Working with Makefiles

6m

The Compilation Flow

7m

Project Folder Structure

6m

A Quick Note for Windows Users

5m

Words of Encouragement

10m

Allocating Memory and Freeing Resources

11m

Exercise Drawing a Background Grid

14m

Configuring Visual Studio on Windows

15m

Creating an SDL Window

16m

Fullscreen Window

13m

Exercise Drawing Rectangles

12m

Drawing a Background Grid

23m

Introduction and Learning Outcomes

29m

Declaring a Vector Type

2m

Creating a Function to Draw Rectangles

27m

Implementing the Perspective Divide

6m

SDL Texture

36m

Coordinate System Handedness

6mNow Playing

Project Dependencies

39m

Array of Points

13m

Review of C Structs

14m

The Draw Pixel Function

15m

Orthographic Projection

20m

Rendering an SDL Window

33m

Coding New Header Files

21m

Vector Rotation Function

16m

Vector Transformations

21m

Review of Sine Cosine and Tangent

18m

Using a Delay Function

14m

Triangle Edges

5m

Proof of Angle Cosine Addition

13m

Defining Header Files

40m

Perspective Projection

31m

Vectors

33m

Triangles and Meshes

23m

Rotating Vectors

43m

Proof of Angle Sine Addition

30m

Vertices and Triangle Faces

22m

Dynamic Arrays

21m

Exercise Loading OBJ File Content

13m

Line Equation

30m

Dynamic Mesh Vertices and Faces

19m

Fixing our Game Loop Time Step

37m

Vector Scalar Multiplication and Division

4m

Back-face Culling Motivation

17m

Coding a Function to Draw Lines

24m

Vector Addition and Subtraction

13m

OBJ Files

30m

Vector Magnitude

22m

Finding the Normal Vector

22m

Vector Cross Product

23m

Declaring a Color Buffer

1h 30m

DDA Line Drawing Algorithm

47m

Loading OBJ File Content

33m

Activity Find Triangle Midpoint

15m

Flat-Bottom & Flat-Top Technique

16m

Triangle Fill

23m

Back-face Culling Code

32m

Back-face Culling Algorithm

15m

Avoiding Division by Zero

9m

Flat-Top Triangle Code

14m

Vector Normalization

34m

Flat-Bottom Triangle Code

23m

Flat-Top Triangle Algorithm

18m

Solution to the Triangle Midpoint

28m

Different Rendering Options Solution

24m

Colored Triangle Faces

24m

Dot Product

35m

Flat-Bottom Triangle Algorithm

32m

Painter's Algorithm

25m

Properties of Matrix Multiplication

28m

Coding the Triangle Midpoint Computation

14m

Matrix Typedef

9m

D Rotation Matrix

23m

Translation Matrix Code

8m

Matrices Overview

40m

Examples of Matrix Multiplication

24m

Order of Transformations

5m

D Matrix Transformations

29m

Matrix Operations

37m

D Translation Matrix

28m

Rotation Matrix Code

14m

D Scale Matrix

31m

Exercise Projecting Negative Values

9m

The World Matrix

33m

Scale Matrix Code

24m

Populating our Perspective Projection Matrix

32m

D Rotation Matrices

30m

Coding a Sorting Function

32m

Inverted Vertical Screen Values

13m

Projecting Negative Values

21m

Translation is Not a Linear Transformation

32m

Row-major and Column-major Orders

28m

Smooth Shading Techniques

30m

Coding the Perspective Projection Matrix

38m

Coding Flat Shading & Light

40m

Textured Triangles

14m

Textured Flat-Top Triangle

14m

Texture Mapping

46m

PS1 Games and Affine Texture Mapping

4m

Function to Compute (α, β, γ)

21m

Inverted Cube UV Coordinates

10m

Texture Typedef

36m

Freeing PNG Textures

2m

Representing Textures in Memory

44m

Defining a Projection Matrix

46m

Flat Shading

53m

Textured Flat-Bottom Triangle

50m

Decoding PNG Files

35m

Visualizing Textured OBJ Models

15m

Loading PNG File Content

33m

Visualizing Textured Triangles

43m

Barycentric Weights (α, β, γ)

54m

Preventing Texture Buffer Overflow

21m

Exercise Z-Buffer for Filled Triangles

12m

Implementing a Z-Buffer for Filled Triangles

15m

Perspective Correct Interpolation Code

57m

Loading OBJ Texture Attributes

49m

Z-Buffer Code

32m

Z-Buffer

37m

Exercise Right Frustum Plane Point & Normal

13m

The LookAt Function

25m

Barycentric Coordinates

1h 3m

Planes

16m

Variable Delta-time

15m

Coding the LookAt Function

34m

Look At Camera Model

36m

Initializing an Array of Frustum Planes

15m

Coding a Simple FPS Camera Movement

41m

A Simple FPS Camera Movement

27m

Perspective Correct Interpolation

1h 30m

Frustum Clipping

36m

Look At Transformations

54m

Defining Points Inside and Outside Planes

25m

Converting Polygons Back Into Triangles

17m

A Discussion on Dynamic Memory Allocation

52m

Camera Space

57m

Horizontal & Vertical FOV Angles

24m

Working with Static Variables

8m

Refactoring Light Globals

10m

Coding the Function to Clip Polygons Against Planes

47m

Polygon Typedef

47m

Visualizing Clipped Triangles

34m

Simulating Low-Resolution Displays

16m

Exercise Camera Pitch Rotation

19m

Implementing the Camera Pitch Rotation

19m

A Function to Clip Polygon Against Planes

57m

Declaring Multiple Meshes

26m

Clipping a Polygon Against a Plane

59m

Reading OBJ Quads

9m

Defining Frustum Planes Points & Normals

1h 18m

Clipping Texture UV Coordinates

51m

Implementing Multiple Textures

31m

Refactoring SDL Globals

54m

Pineda's Rasterization Algorithm

22m

Exercise Reading OBJ Quads

31m

Clipping Space

1h 2m

Intersection Between Line & Plane

1h 10m

Function to Process Pipeline Stages

42m

Non-Fullscreen SDL Window

21m

Dedicated Graphics Cards

40m

Edge Function & Barycentric Weights

31m

Implementing Multiple Meshes

53m

Subpixel Rasterization

25m

Mouse Motion (Camera Pitch & Yaw)

13m

Mouse Wheel (Camera Front & Back)

14m

Determining Point Inside Triangle

36m

Signed Area & Backface Culling

27m

Top-Left Rasterization Rule

36m

Edge Function & Constant Increments

42m

Subpixel Flat-Shaded Triangles

20m

Modern Graphics APIs & Shaders

56m

Subpixel Textured Triangles

24m

Revisiting Handedness & Orientation

35m

Exercise Subpixel Rasterizer

41m

Next Steps

31m

Subpixel Line Drawing

49m