Skip to main content
Other Professional Courses2026-3 Edition100% Free Video Course

Pikuma – 3D Computer Graphics Programming

3D Computer Graphics Programming, Learn all the theory and the math behind 3D graphics while creating a software renderer from scratch using the C programming language. This course is a complete immersion into the fundamentals of computer graphics! You’ll learn how a software 3D engine works under the hood, and use the C programming language to write a complete software rasterizer from scratch; including textures, camera, clipping, and loading complex OBJ files. Pixel per pixel, triangle per triangle, mesh per mesh. We’ll review all the beautiful math that makes 3D computer graphics possible as we tackle all concepts from first principles. We’ll also write a comprehensive software renderer that can display complex 3D objects on the screen without the help of any graphics API. No GPU, no OpenGL, no DirectX! Just a C compiler and a little bit of linear algebra is all we need to create a final project that is nothing short of amazing!

5.0
(6 reviews)
82.4 Hours On-Demand
Created by Senior Industry Specialist
Uploaded Sep 2026
English
Pikuma – 3D Computer Graphics Programming
Preview This Course
Free$129.99100% Free

Instant high-definition streaming with zero paywalls.

Course Features:
82.4 hours on-demand video
178 complete lectures
Streamable on mobile, tablet & desktop
Self-paced curriculum with progress tracking
Direct MP4 downloads & offline video access
Verified course archives hosted on cloud infrastructure.

What You'll Master in this Course

Master practical concepts and hands-on skills in Other Professional Courses
Complete 178 video lectures with real-world examples and workflows
Build confidence with step-by-step instructions from industry experts
Access downloadable course resources and exercise files

Course Curriculum178 Lectures

1 sections • 82.4 hours total length

Prefer offline learning? Download all 178 video lectures and project files for free.
Download Free
How to Take this Course
Preview
2m
Working with Makefiles
Preview
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
6m
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

Requirements

  • Basic enthusiasm to learn and follow along with lessons
  • A computer or mobile device with a modern internet connection

Description

3D Computer Graphics Programming, Learn all the theory and the math behind 3D graphics while creating a software renderer from scratch using the C programming language. This course is a complete immersion into the fundamentals of computer graphics! You’ll learn how a software 3D engine works under the hood, and use the C programming language to write a complete software rasterizer from scratch; including textures, camera, clipping, and loading complex OBJ files. Pixel per pixel, triangle per triangle, mesh per mesh. We’ll review all the beautiful math that makes 3D computer graphics possible as we tackle all concepts from first principles. We’ll also write a comprehensive software renderer that can display complex 3D objects on the screen without the help of any graphics API. No GPU, no OpenGL, no DirectX! Just a C compiler and a little bit of linear algebra is all we need to create a final project that is nothing short of amazing!

Instructor

S

Senior Industry Specialist

Specialist in Other Professional Courses

Passionate educator focused on real-world practical skills, modern frameworks, and production-ready engineering practices. Delivering step-by-step masterclasses accessible to learners globally on MJ Accedemy.

Recommended Curriculum

Students Also Viewed