【资源介绍】:
本课程是对计算机图形学基础的全面深入探索!您将了解到软件3D引擎内部的工作原理,并使用C编程语言从零开始编写一个完整的软件光栅化器;内容涵盖纹理、摄像机、裁剪以及加载复杂的OBJ文件处理。我们将一步步地,从每一个像素、每一个三角形、每一个网格出发进行构建。
从零开始的3D编程 在从最基本的原则出发探讨所有概念的同时,我们还将复习所有构成三维计算机图形学之美的数学知识。此外,我们将编写一个全面的软件渲染器,无需任何图形API的帮助,就能在屏幕上展示复杂的3D对象。无需GPU、OpenGL或DirectX!仅需一个C编译器和一点点线性代数知识,我们就能创造出一个令人惊叹的最终项目!
【资源目录】:
├──01 Introduction
| ├──1.01 Introduction and Learning Outcomes.mp4 91.64M
| ├──1.01 Introduction and Learning Outcomes.srt 17.97kb
| ├──1.01 Introduction and Learning Outcomes.vtt 18.79kb
| ├──1.02 How to Take this Course.mp4 4.31M
| ├──1.02 How to Take this Course.srt 4.86kb
| ├──1.02 How to Take this Course.vtt 5.13kb
| ├──1.03 Words of Encouragement.mp4 16.13M
| ├──1.03 Words of Encouragement.srt 3.76kb
| └──1.03 Words of Encouragement.vtt 3.97kb
├──02 Compiling our Project
| ├──2.01 Project Dependencies.mp4 64.32M
| ├──2.01 Project Dependencies.srt 13.28kb
| ├──2.01 Project Dependencies.vtt 13.85kb
| ├──2.02 A Quick Note for Windows Users.mp4 9.18M
| ├──2.02 A Quick Note for Windows Users.srt 2.95kb
| ├──2.02 A Quick Note for Windows Users.vtt 3.04kb
| ├──2.03 Project Folder Structure.mp4 10.55M
| ├──2.03 Project Folder Structure.srt 3.22kb
| ├──2.03 Project Folder Structure.vtt 3.20kb
| ├──2.04 The Compilation Flow.mp4 13.76M
| ├──2.04 The Compilation Flow.srt 9.58kb
| ├──2.04 The Compilation Flow.vtt 9.71kb
| ├──2.05 Working with Makefiles.mp4 11.48M
| ├──2.05 Working with Makefiles.srt 12.56kb
| ├──2.05 Working with Makefiles.vtt 12.53kb
| ├──2.06 Configuring Visual Studio on Windows.mp4 29.86M
| ├──2.06 Configuring Visual Studio on Windows.srt 20.12kb
| ├──2.06 Configuring Visual Studio on Windows.vtt 20.58kb
| └──2.07 Can I use WSL on Windows.html 0.49kb
├──03 SDL Setup and Color Buffer
| ├──attachments
| | ├──3drenderer-200830-032529.zip 1.36kb
| | ├──3drenderer-200830-044105.zip 1.73kb
| | ├──3drenderer-200830-045144.zip 1.82kb
| | ├──3drenderer-200830-051721.zip 1.83kb
| | ├──3drenderer-200830-052021.zip 1.83kb
| | └──3drenderer-200830-053022.zip 1.96kb
| ├──05 Checking for Errors in Memory Allocation.html 81.69kb
| ├──06 1 Quiz Memory Allocation.txt 0.68kb
| ├──06 2 Quiz Memory Allocation.txt 0.56kb
| ├──07 The Operator Sizeof.html 9.61kb
| ├──15 1 Quiz Color Buffer.txt 0.61kb
| ├──15 2 Quiz Color Buffer.txt 0.33kb
| ├──3.01 Creating an SDL Window.mp4 30.72M
| ├──3.01 Creating an SDL Window.srt 27.52kb
| ├──3.01 Creating an SDL Window.vtt 28.48kb
| ├──3.02 Rendering an SDL Window.mp4 57.74M
| ├──3.02 Rendering an SDL Window.srt 29.72kb
| ├──3.02 Rendering an SDL Window.vtt 30.09kb
| ├──3.03 Declaring a Color Buffer.mp4 155.26M
| ├──3.03 Declaring a Color Buffer.srt 32.62kb
| ├──3.03 Declaring a Color Buffer.vtt 33.13kb
| ├──3.04 Allocating Memory and Freeing Resources.mp4 19.86M
| ├──3.04 Allocating Memory and Freeing Resources.srt 11.86kb
| ├──3.04 Allocating Memory and Freeing Resources.vtt 12.08kb
| ├──3.08 SDL Texture.mp4 62.45M
| ├──3.08 SDL Texture.srt 25.16kb
| ├──3.08 SDL Texture.vtt 25.83kb
| ├──3.09 Fullscreen Window.mp4 23.79M
| ├──3.09 Fullscreen Window.srt 10.91kb
| ├──3.09 Fullscreen Window.vtt 11.47kb
| ├──3.10 Exercise. Drawing a Background Grid.mp4 23.57M
| ├──3.10 Exercise. Drawing a Background Grid.srt 4.31kb
| ├──3.10 Exercise. Drawing a Background Grid.vtt 4.45kb
| ├──3.11 Drawing a Background Grid.mp4 38.10M
| ├──3.11 Drawing a Background Grid.srt 9.28kb
| ├──3.11 Drawing a Background Grid.vtt 9.33kb
| ├──3.12 Background Color Patterns.html 18.47kb
| ├──3.13 Exercise. Drawing Rectangles.mp4 21.37M
| ├──3.13 Exercise. Drawing Rectangles.srt 3.73kb
| ├──3.13 Exercise. Drawing Rectangles.vtt 4.04kb
| ├──3.14 Creating a Function to Draw Rectangles.mp4 44.70M
| ├──3.14 Creating a Function to Draw Rectangles.srt 7.44kb
| └──3.14 Creating a Function to Draw Rectangles.vtt 7.82kb
├──04 Multiple Header Files
| ├──attachments
| | └──3drenderer-200830-064203.zip 2.75kb
| ├──4.01 Defining Header Files.mp4 67.04M
| ├──4.01 Defining Header Files.srt 15.54kb
| ├──4.01 Defining Header Files.vtt 16.62kb
| ├──4.02 Coding New Header Files.mp4 37.69M
| ├──4.02 Coding New Header Files.srt 20.46kb
| └──4.02 Coding New Header Files.vtt 20.84kb
├──05 Vectors and Points
| ├──06 Constant Array Size Declaration.html 0.62kb
| ├──5.01 The Draw Pixel Function.mp4 25.91M
| ├──5.01 The Draw Pixel Function.srt 10.49kb
| ├──5.01 The Draw Pixel Function.vtt 10.88kb
| ├──5.02 Vectors.mp4 57.28M
| ├──5.02 Vectors.srt 23.73kb
| ├──5.02 Vectors.vtt 24.35kb
| ├──5.03 Declaring a Vector Type.mp4 4.98M
| ├──5.03 Declaring a Vector Type.srt 3.51kb
| ├──5.03 Declaring a Vector Type.vtt 3.56kb
| ├──5.04 Review of C Structs.mp4 23.74M
| ├──5.04 Review of C Structs.srt 8.78kb
| ├──5.04 Review of C Structs.vtt 9.25kb
| ├──5.05 Array of Points.mp4 22.74M
| ├──5.05 Array of Points.srt 11.38kb
| └──5.05 Array of Points.vtt 11.96kb
├──06 Projecting Points
| ├──attachments
| | ├──3drenderer-200830-070327.zip 3.82kb
| | └──3drenderer-200830-071229.zip 3.87kb
| ├──02 Isometric Projection.html 1.64M
| ├──6.01 Orthographic Projection.mp4 36.64M
| ├──6.01 Orthographic Projection.srt 20.27kb
| ├──6.01 Orthographic Projection.vtt 21.48kb
| ├──6.03 Perspective Projection.mp4 53.48M
| ├──6.03 Perspective Projection.srt 20.48kb
| ├──6.03 Perspective Projection.vtt 21.93kb
| ├──6.04 Implementing the Perspective Divide.mp4 10.33M
| ├──6.04 Implementing the Perspective Divide.srt 4.96kb
| ├──6.04 Implementing the Perspective Divide.vtt 5.30kb
| ├──6.05 Coordinate System Handedness.mp4 11.15M
| ├──6.05 Coordinate System Handedness.srt 4.05kb
| └──6.05 Coordinate System Handedness.vtt 4.31kb
├──07 Linear Transformations
| ├──attachments
| | └──3drenderer-200830-073641.zip 4.04kb
| ├──03 1 Trigonometric Functions Quiz.txt 0.73kb
| ├──03 2 Trigonometric Functions Quiz.txt 0.47kb
| ├──07 Exercise Proving the Angle Cosine Addition.html 115.83kb
| ├──7.01 Vector Transformations.mp4 36.00M
| ├──7.01 Vector Transformations.srt 16.06kb
| ├──7.01 Vector Transformations.vtt 16.88kb
| ├──7.02 Review of Sine Cosine and Tangent.mp4 31.60M
| ├──7.02 Review of Sine Cosine and Tangent.srt 12.21kb
| ├──7.02 Review of Sine Cosine and Tangent.vtt 13.06kb
| ├──7.04 Rotating Vectors.mp4 73.64M
| ├──7.04 Rotating Vectors.srt 29.17kb
| ├──7.04 Rotating Vectors.vtt 30.59kb
| ├──7.05 Vector Rotation Function.mp4 27.70M
| ├──7.05 Vector Rotation Function.srt 12.75kb
| ├──7.05 Vector Rotation Function.vtt 13.26kb
| ├──7.06 Proof of Angle Sine Addition.mp4 49.92M
| ├──7.06 Proof of Angle Sine Addition.srt 19.61kb
| ├──7.06 Proof of Angle Sine Addition.vtt 20.66kb
| ├──7.08 Proof of Angle Cosine Addition.mp4 21.57M
| ├──7.08 Proof of Angle Cosine Addition.srt 7.83kb
| └──7.08 Proof of Angle Cosine Addition.vtt 8.23kb
├──08 Fixed Time Step
| ├──attachments
| | ├──3drenderer-200830-080812.zip 4.15kb
| | └──3drenderer-200830-080851.zip 4.24kb
| ├──03 Constant Timestep & Delta-time.html 0.94kb
| ├──8.01 Fixing our Game Loop Time Step.mp4 61.74M
| ├──8.01 Fixing our Game Loop Time Step.srt 19.29kb
| ├──8.01 Fixing our Game Loop Time Step.vtt 20.32kb
| ├──8.02 Using a Delay Function.mp4 25.42M
| ├──8.02 Using a Delay Function.srt 13.12kb
| └──8.02 Using a Delay Function.vtt 13.62kb
├──09 Triangles and Vertices
| ├──attachments
| | └──3drenderer-200830-081647.zip 5.70kb
| ├──9.01 Triangles and Meshes.mp4 40.63M
| ├──9.01 Triangles and Meshes.srt 15.36kb
| ├──9.01 Triangles and Meshes.vtt 16.23kb
| ├──9.02 Vertices and Triangle Faces.mp4 42.24M
| ├──9.02 Vertices and Triangle Faces.srt 25.90kb
| ├──9.02 Vertices and Triangle Faces.vtt 26.49kb
| ├──9.03 Triangle Edges.mp4 8.48M
| ├──9.03 Triangle Edges.srt 3.92kb
| └──9.03 Triangle Edges.vtt 4.12kb
├──10 Line Drawing
| ├──attachments
| | └──3drenderer-200830-084438.zip 5.99kb
| ├──10.01 Line Equation.mp4 53.14M
| ├──10.01 Line Equation.srt 22.92kb
| ├──10.01 Line Equation.vtt 24.03kb
| ├──10.02 DDA Line Drawing Algorithm.mp4 81.70M
| ├──10.02 DDA Line Drawing Algorithm.srt 29.76kb
| ├──10.02 DDA Line Drawing Algorithm.vtt 31.25kb
| ├──10.03 Coding a Function to Draw Lines.mp4 43.77M
| ├──10.03 Coding a Function to Draw Lines.srt 24.88kb
| └──10.03 Coding a Function to Draw Lines.vtt 25.71kb
├──11 Dynamic Arrays
| ├──attachments
| | ├──3drenderer-200830-084947.zip 7.24kb
| | └──3drenderer-200830-085209.zip 7.63kb
| ├──02 Downloading array.h.html 0.72kb
| ├──04 Separation of Vertex and Faces.html 311.22kb
| ├──11.01 Dynamic Arrays.mp4 39.44M
| ├──11.01 Dynamic Arrays.srt 25.91kb
| ├──11.01 Dynamic Arrays.vtt 26.44kb
| ├──11.03 Dynamic Mesh Vertices and Faces.mp4 36.87M
| ├──11.03 Dynamic Mesh Vertices and Faces.srt 28.35kb
| └──11.03 Dynamic Mesh Vertices and Faces.vtt 28.86kb
├──12 OBJ Files
| ├──attachments
| | └──3drenderer-200830-090827.zip 13.96kb
| ├──04 OBJ Files as Quads or Triangles.html 0.70kb
| ├──12.01 OBJ Files.mp4 53.39M
| ├──12.01 OBJ Files.srt 27.13kb
| ├──12.01 OBJ Files.vtt 28.18kb
| ├──12.02 Exercise. Loading OBJ File Content.mp4 23.57M
| ├──12.02 Exercise. Loading OBJ File Content.srt 10.28kb
| ├──12.02 Exercise. Loading OBJ File Content.vtt 10.57kb
| ├──12.03 Loading OBJ File Content.mp4 58.78M
| ├──12.03 Loading OBJ File Content.srt 34.16kb
| └──12.03 Loading OBJ File Content.vtt 35.13kb
├──13 Vector Operations
| ├──attachments
| | ├──3drenderer-200830-094243.zip 14.46kb
| | ├──3drenderer-200830-100015.zip 15.36kb
| | ├──3drenderer-200830-100843.zip 15.46kb
| | └──DotProductVisualizer-200426-195719.zip 127.91kb
| ├──02 Back-face Culling in Games.html 2.30M
| ├──09 Dot Product & Vector Length.html 36.39kb
| ├──12 Back-face Culling in OpenGL.html 1.17kb
| ├──13.01 Back-face Culling Motivation.mp4 29.32M
| ├──13.01 Back-face Culling Motivation.srt 11.98kb
| ├──13.01 Back-face Culling Motivation.vtt 12.83kb
| ├──13.03 Vector Magnitude.mp4 38.96M
| ├──13.03 Vector Magnitude.srt 17.41kb
| ├──13.03 Vector Magnitude.vtt 18.38kb
| ├──13.04 Vector Addition and Subtraction.mp4 24.18M
| ├──13.04 Vector Addition and Subtraction.srt 12.69kb
| ├──13.04 Vector Addition and Subtraction.vtt 13.00kb
| ├──13.05 Vector Scalar Multiplication and Division.mp4 7.30M
| ├──13.05 Vector Scalar Multiplication and Division.srt 4.93kb
| ├──13.05 Vector Scalar Multiplication and Division.vtt 5.07kb
| ├──13.06 Vector Cross Product.mp4 38.48M
| ├──13.06 Vector Cross Product.srt 12.44kb
| ├──13.06 Vector Cross Product.vtt 13.37kb
| ├──13.07 Finding the Normal Vector.mp4 37.01M
| ├──13.07 Finding the Normal Vector.srt 9.51kb
| ├──13.07 Finding the Normal Vector.vtt 10.30kb
| ├──13.08 Dot Product.mp4 58.97M
| ├──13.08 Dot Product.srt 17.82kb
| ├──13.08 Dot Product.vtt 18.86kb
| ├──13.10 Back-face Culling Algorithm.mp4 24.23M
| ├──13.10 Back-face Culling Algorithm.srt 6.19kb
| ├──13.10 Back-face Culling Algorithm.vtt 6.67kb
| ├──13.11 Back-face Culling Code.mp4 59.29M
| ├──13.11 Back-face Culling Code.srt 35.07kb
| ├──13.11 Back-face Culling Code.vtt 36.94kb
| ├──13.13 Vector Normalization.mp4 58.04M
| ├──13.13 Vector Normalization.srt 26.16kb
| ├──13.13 Vector Normalization.vtt 27.21kb
| └──14 Normalization & Direction.html 159.36kb
├──14 Triangle Rasterization
| ├──attachments
| | ├──3drenderer-200426-200054.zip 16.09kb
| | ├──3drenderer-200830-232410.zip 15.64kb
| | ├──3drenderer-200830-232730.zip 28.20kb
| | └──3drenderer-200830-233039.zip 15.96kb
| ├──11 Exercise Selecting Different Rendering Modes.html 1.32kb
| ├──13 Compiler Error & Enum Declaration.html 59.63kb
| ├──14 Typedef for Color Values.html 99.54kb
| ├──14.01 Triangle Fill.mp4 36.80M
| ├──14.01 Triangle Fill.srt 9.15kb
| ├──14.01 Triangle Fill.vtt 9.25kb
| ├──14.02 Flat-Bottom & Flat-Top Technique.mp4 26.78M
| ├──14.02 Flat-Bottom & Flat-Top Technique.srt 10.23kb
| ├──14.02 Flat-Bottom & Flat-Top Technique.vtt 10.79kb
| ├──14.03 Activity. Find Triangle Midpoint.mp4 23.71M
| ├──14.03 Activity. Find Triangle Midpoint.srt 6.37kb
| ├──14.03 Activity. Find Triangle Midpoint.vtt 6.51kb
| ├──14.04 Solution to the Triangle Midpoint.mp4 43.82M
| ├──14.04 Solution to the Triangle Midpoint.srt 10.83kb
| ├──14.04 Solution to the Triangle Midpoint.vtt 11.27kb
| ├──14.05 Coding the Triangle Midpoint Computation.mp4 26.11M
| ├──14.05 Coding the Triangle Midpoint Computation.srt 16.48kb
| ├──14.05 Coding the Triangle Midpoint Computation.vtt 16.88kb
| ├──14.06 Flat-Bottom Triangle Algorithm.mp4 49.89M
| ├──14.06 Flat-Bottom Triangle Algorithm.srt 14.70kb
| ├──14.06 Flat-Bottom Triangle Algorithm.vtt 15.49kb
| ├──14.07 Flat-Bottom Triangle Code.mp4 39.15M
| ├──14.07 Flat-Bottom Triangle Code.srt 18.58kb
| ├──14.07 Flat-Bottom Triangle Code.vtt 19.10kb
| ├──14.08 Flat-Top Triangle Algorithm.mp4 27.85M
| ├──14.08 Flat-Top Triangle Algorithm.srt 6.42kb
| ├──14.08 Flat-Top Triangle Algorithm.vtt 6.62kb
| ├──14.09 Flat-Top Triangle Code.mp4 23.50M
| ├──14.09 Flat-Top Triangle Code.srt 12.24kb
| ├──14.09 Flat-Top Triangle Code.vtt 12.33kb
| ├──14.10 Avoiding Division by Zero.mp4 17.43M
| ├──14.10 Avoiding Division by Zero.srt 8.43kb
| ├──14.10 Avoiding Division by Zero.vtt 8.72kb
| ├──14.12 Different Rendering Options Solution.mp4 42.35M
| ├──14.12 Different Rendering Options Solution.srt 18.64kb
| ├──14.12 Different Rendering Options Solution.vtt 19.90kb
| ├──14.15 Colored Triangle Faces.mp4 40.10M
| ├──14.15 Colored Triangle Faces.srt 17.05kb
| ├──14.15 Colored Triangle Faces.vtt 17.81kb
| └──16 Number of Triangles vs. Performance.html 6.95M
├──15 Sorting Faces by Depth
| ├──attachments
| | └──3drenderer-200831-004245.zip 16.23kb
| ├──02 Exercise Sorting Faces.html 79.28kb
| ├──04 Triangles, Polygons, and More…html 16.69M
| ├──15.01 Painter’s Algorithm.mp4 42.82M
| ├──15.01 Painter’s Algorithm.srt 17.48kb
| ├──15.01 Painter’s Algorithm.vtt 18.27kb
| ├──15.03 Coding a Sorting Function.mp4 54.71M
| ├──15.03 Coding a Sorting Function.srt 21.70kb
| └──15.03 Coding a Sorting Function.vtt 22.39kb
├──16 Matrices
| ├──attachments
| | └──solution-matrix-multiplication.png 30.29kb
| ├──05 Exercise Matrix Multiplication.html 22.27kb
| ├──16.01 Matrices Overview.mp4 66.44M
| ├──16.01 Matrices Overview.srt 18.17kb
| ├──16.01 Matrices Overview.vtt 19.72kb
| ├──16.02 Matrix Operations.mp4 60.81M
| ├──16.02 Matrix Operations.srt 16.23kb
| ├──16.02 Matrix Operations.vtt 17.81kb
| ├──16.03 Properties of Matrix Multiplication.mp4 45.65M
| ├──16.03 Properties of Matrix Multiplication.srt 10.70kb
| ├──16.03 Properties of Matrix Multiplication.vtt 11.85kb
| ├──16.04 Examples of Matrix Multiplication.mp4 37.86M
| ├──16.04 Examples of Matrix Multiplication.srt 9.30kb
| ├──16.04 Examples of Matrix Multiplication.vtt 10.04kb
| ├──16.06 2D Rotation Matrix.mp4 37.01M
| ├──16.06 2D Rotation Matrix.srt 8.17kb
| └──16.06 2D Rotation Matrix.vtt 8.69kb
├──17 3D Matrix Transformations
| ├──attachments
| | ├──3drenderer-200831-015838.zip 17.33kb
| | ├──3drenderer-200831-021616.zip 17.42kb
| | ├──3drenderer-200831-022642.zip 17.63kb
| | ├──3drenderer-200831-023103.zip 17.80kb
| | └──left-hand-rotation-matrices.zip 0.44kb
| ├──09 3D Rotation Direction & Handedness.html 153.18kb
| ├──17.01 3D Matrix Transformations.mp4 48.04M
| ├──17.01 3D Matrix Transformations.srt 12.42kb
| ├──17.01 3D Matrix Transformations.vtt 13.17kb
| ├──17.02 3D Scale Matrix.mp4 51.78M
| ├──17.02 3D Scale Matrix.srt 11.78kb
| ├──17.02 3D Scale Matrix.vtt 12.55kb
| ├──17.03 Matrix Typedef.mp4 17.24M
| ├──17.03 Matrix Typedef.srt 12.06kb
| ├──17.03 Matrix Typedef.vtt 12.71kb
| ├──17.04 Scale Matrix Code.mp4 43.10M
| ├──17.04 Scale Matrix Code.srt 19.94kb
| ├──17.04 Scale Matrix Code.vtt 20.50kb
| ├──17.05 3D Translation Matrix.mp4 47.67M
| ├──17.05 3D Translation Matrix.srt 11.56kb
| ├──17.05 3D Translation Matrix.vtt 11.93kb
| ├──17.06 Translation Matrix Code.mp4 14.57M
| ├──17.06 Translation Matrix Code.srt 7.58kb
| ├──17.06 Translation Matrix Code.vtt 7.87kb
| ├──17.07 3D Rotation Matrices.mp4 50.08M
| ├──17.07 3D Rotation Matrices.srt 12.23kb
| ├──17.07 3D Rotation Matrices.vtt 12.79kb
| ├──17.08 Rotation Matrix Code.mp4 24.74M
| ├──17.08 Rotation Matrix Code.srt 10.93kb
| ├──17.08 Rotation Matrix Code.vtt 11.32kb
| ├──17.10 The World Matrix.mp4 57.74M
| ├──17.10 The World Matrix.srt 25.88kb
| ├──17.10 The World Matrix.vtt 26.88kb
| ├──17.11 Order of Transformations.mp4 9.56M
| ├──17.11 Order of Transformations.srt 5.15kb
| ├──17.11 Order of Transformations.vtt 5.43kb
| ├──17.12 Translation is Not a Linear Transformation.mp4 54.08M
| ├──17.12 Translation is Not a Linear Transformation.srt 12.74kb
| └──17.12 Translation is Not a Linear Transformation.vtt 13.31kb
├──18 Projection Matrix
| ├──attachments
| | └──3drenderer-200831-164731.zip 18.16kb
| ├──06 Projection in OpenGL & DirectX.html 1.29kb
| ├──08 Order of Transformations for Row-major and Column-major.html 1.50kb
| ├──18.01 Defining a Projection Matrix.mp4 77.30M
| ├──18.01 Defining a Projection Matrix.srt 26.04kb
| ├──18.01 Defining a Projection Matrix.vtt 28.22kb
| ├──18.02 Populating our Perspective Projection Matrix.mp4 53.40M
| ├──18.02 Populating our Perspective Projection Matrix.srt 17.67kb
| ├──18.02 Populating our Perspective Projection Matrix.vtt 19.40kb
| ├──18.03 Coding the Perspective Projection Matrix.mp4 68.25M
| ├──18.03 Coding the Perspective Projection Matrix.srt 21.59kb
| ├──18.03 Coding the Perspective Projection Matrix.vtt 24.33kb
| ├──18.04 Exercise. Projecting Negative Values.mp4 14.93M
| ├──18.04 Exercise. Projecting Negative Values.srt 3.82kb
| ├──18.04 Exercise. Projecting Negative Values.vtt 4.08kb
| ├──18.05 Projecting Negative Values.mp4 35.53M
| ├──18.05 Projecting Negative Values.srt 8.90kb
| ├──18.05 Projecting Negative Values.vtt 9.54kb
| ├──18.07 Row-major and Column-major Orders.mp4 45.05M
| ├──18.07 Row-major and Column-major Orders.srt 10.16kb
| └──18.07 Row-major and Column-major Orders.vtt 10.87kb
├──19 Light and Shading
| ├──attachments
| | ├──3drenderer-200831-174429.zip 28.86kb
| | └──3drenderer-200831-180712.zip 28.92kb
| ├──03 A Note on Vector Normalization.html 20.06kb
| ├──05 Gouraud Shading in Games.html 2.85M
| ├──19.01 Flat Shading.mp4 86.59M
| ├──19.01 Flat Shading.srt 20.12kb
| ├──19.01 Flat Shading.vtt 21.22kb
| ├──19.02 Coding Flat Shading & Light.mp4 70.67M
| ├──19.02 Coding Flat Shading & Light.srt 33.61kb
| ├──19.02 Coding Flat Shading & Light.vtt 35.28kb
| ├──19.04 Smooth Shading Techniques.mp4 49.29M
| ├──19.04 Smooth Shading Techniques.srt 10.14kb
| ├──19.04 Smooth Shading Techniques.vtt 10.67kb
| ├──19.06 Inverted Vertical Screen Values.mp4 22.74M
| ├──19.06 Inverted Vertical Screen Values.srt 8.37kb
| └──19.06 Inverted Vertical Screen Values.vtt 8.79kb
├──20 Texture Mapping
| ├──attachments
| | ├──3drenderer-201219-201327.zip 24.81kb
| | ├──3drenderer-221113-015749.zip 25.81kb
| | └──BarycentricVisualizer-200410-190715.zip 47.48kb
| ├──20.01 Texture Mapping.mp4 76.84M
| ├──20.01 Texture Mapping.srt 17.65kb
| ├──20.01 Texture Mapping.vtt 18.58kb
| ├──20.02 Representing Textures in Memory.mp4 73.19M
| ├──20.02 Representing Textures in Memory.srt 13.48kb
| ├──20.02 Representing Textures in Memory.vtt 14.64kb
| ├──20.03 Texture Typedef.mp4 67.47M
| ├──20.03 Texture Typedef.srt 28.19kb
| ├──20.03 Texture Typedef.vtt 29.58kb
| ├──20.04 Textured Triangles.mp4 23.98M
| ├──20.04 Textured Triangles.srt 7.15kb
| ├──20.04 Textured Triangles.vtt 7.80kb
| ├──20.05 Textured Flat-Bottom Triangle.mp4 86.79M
| ├──20.05 Textured Flat-Bottom Triangle.srt 30.04kb
| ├──20.05 Textured Flat-Bottom Triangle.vtt 32.93kb
| ├──20.06 Textured Flat-Top Triangle.mp4 24.15M
| ├──20.06 Textured Flat-Top Triangle.srt 10.05kb
| ├──20.06 Textured Flat-Top Triangle.vtt 10.83kb
| ├──20.07 Barycentric Coordinates.mp4 105.30M
| ├──20.07 Barycentric Coordinates.srt 26.51kb
| ├──20.07 Barycentric Coordinates.vtt 27.92kb
| ├──20.08 Barycentric Weights (α, β, γ).mp4 92.64M
| ├──20.08 Barycentric Weights (α, β, γ).srt 22.33kb
| ├──20.08 Barycentric Weights (α, β, γ).vtt 23.94kb
| ├──20.09 Function to Compute (α, β, γ).mp4 37.14M
| ├──20.09 Function to Compute (α, β, γ).srt 14.91kb
| ├──20.09 Function to Compute (α, β, γ).vtt 16.37kb
| ├──20.10 Visualizing Textured Triangles.mp4 74.49M
| ├──20.10 Visualizing Textured Triangles.srt 34.21kb
| └──20.10 Visualizing Textured Triangles.vtt 35.96kb
├──21 Perspective Correct Textures
| ├──attachments
| | ├──3drenderer-221113-015948.zip 26.61kb
| | ├──3drenderer-221113-020405.zip 25.91kb
| | └──KokLimLow-PerspectiveCorrectInterpolation.pdf 77.28kb
| ├──04 What Does Affine Mean.html 1.42kb
| ├──05 A Deeper Look into Perspective Correct Theory.html 0.59kb
| ├──21.01 Perspective Correct Interpolation.mp4 174.49M
| ├──21.01 Perspective Correct Interpolation.srt 36.16kb
| ├──21.01 Perspective Correct Interpolation.vtt 38.41kb
| ├──21.02 PS1 Games and Affine Texture Mapping.mp4 6.88M
| ├──21.02 PS1 Games and Affine Texture Mapping.srt 5.69kb
| ├──21.02 PS1 Games and Affine Texture Mapping.vtt 6.08kb
| ├──21.03 Perspective Correct Interpolation Code.mp4 102.32M
| ├──21.03 Perspective Correct Interpolation Code.srt 38.90kb
| ├──21.03 Perspective Correct Interpolation Code.vtt 40.84kb
| ├──21.06 Inverted Cube UV Coordinates.mp4 16.87M
| ├──21.06 Inverted Cube UV Coordinates.srt 7.79kb
| └──21.06 Inverted Cube UV Coordinates.vtt 8.21kb
├──22 Decoding PNG Files
| ├──attachments
| | ├──3drenderer-221113-020432.zip 35.29kb
| | └──3drenderer-221113-020736.zip 35.29kb
| ├──02 Downloading upng.h.html 0.83kb
| ├──22.01 Decoding PNG Files.mp4 56.93M
| ├──22.01 Decoding PNG Files.srt 12.85kb
| ├──22.01 Decoding PNG Files.vtt 13.29kb
| ├──22.03 Loading PNG File Content.mp4 58.64M
| ├──22.03 Loading PNG File Content.srt 26.90kb
| ├──22.03 Loading PNG File Content.vtt 27.67kb
| ├──22.04 Freeing PNG Textures.mp4 3.56M
| ├──22.04 Freeing PNG Textures.srt 2.42kb
| └──22.04 Freeing PNG Textures.vtt 2.40kb
├──23 Textured OBJ Files
| ├──attachments
| | ├──3drenderer-221113-020800.zip 35.44kb
| | ├──3drenderer-221113-020824.zip 1.33M
| | └──3drenderer-221113-020913.zip 1.33M
| ├──03 A Small Note on Rasterization Rules.html 276.98kb
| ├──05 Color Bytes (RGBA vs. ABGR).html 17.68kb
| ├──23.01 Loading OBJ Texture Attributes.mp4 84.90M
| ├──23.01 Loading OBJ Texture Attributes.srt 35.64kb
| ├──23.01 Loading OBJ Texture Attributes.vtt 37.13kb
| ├──23.02 Preventing Texture Buffer Overflow.mp4 36.22M
| ├──23.02 Preventing Texture Buffer Overflow.srt 16.57kb
| ├──23.02 Preventing Texture Buffer Overflow.vtt 17.34kb
| ├──23.04 Visualizing Textured OBJ Models.mp4 24.68M
| ├──23.04 Visualizing Textured OBJ Models.srt 9.27kb
| └──23.04 Visualizing Textured OBJ Models.vtt 9.47kb
├──24 Z-Buffer
| ├──attachments
| | ├──3drenderer-221113-020950.zip 1.33M
| | ├──3drenderer-221113-021011.zip 1.33M
| | ├──3drenderer-221113-021500.zip 1.33M
| | └──3drenderer-221113-021534.zip 1.33M
| ├──06 Revisiting the PS1 Look.html 19.57M
| ├──24.01 Z-Buffer.mp4 63.23M
| ├──24.01 Z-Buffer.srt 18.61kb
| ├──24.01 Z-Buffer.vtt 19.46kb
| ├──24.02 Z-Buffer Code.mp4 57.79M
| ├──24.02 Z-Buffer Code.srt 30.79kb
| ├──24.02 Z-Buffer Code.vtt 31.34kb
| ├──24.03 Exercise. Z-Buffer for Filled Triangles.mp4 21.58M
| ├──24.03 Exercise. Z-Buffer for Filled Triangles.srt 6.28kb
| ├──24.03 Exercise. Z-Buffer for Filled Triangles.vtt 6.66kb
| ├──24.04 Implementing a Z-Buffer for Filled Triangles.mp4 27.74M
| ├──24.04 Implementing a Z-Buffer for Filled Triangles.srt 10.98kb
| ├──24.04 Implementing a Z-Buffer for Filled Triangles.vtt 11.50kb
| ├──24.05 A Discussion on Dynamic Memory Allocation.mp4 88.72M
| ├──24.05 A Discussion on Dynamic Memory Allocation.srt 23.79kb
| └──24.05 A Discussion on Dynamic Memory Allocation.vtt 24.69kb
├──25 Camera
| ├──attachments
| | ├──3drenderer-221113-021746.zip 1.34M
| | ├──3drenderer-221113-021937.zip 1.34M
| | └──3drenderer-221113-021955.zip 1.34M
| ├──06 So, What Actually Gets Transformed.html 1.15M
| ├──25.01 Camera Space.mp4 94.08M
| ├──25.01 Camera Space.srt 21.80kb
| ├──25.01 Camera Space.vtt 22.86kb
| ├──25.02 Look At Camera Model.mp4 58.74M
| ├──25.02 Look At Camera Model.srt 13.63kb
| ├──25.02 Look At Camera Model.vtt 14.87kb
| ├──25.03 Look At Transformations.mp4 87.11M
| ├──25.03 Look At Transformations.srt 22.98kb
| ├──25.03 Look At Transformations.vtt 24.67kb
| ├──25.04 The LookAt Function.mp4 42.04M
| ├──25.04 The LookAt Function.srt 15.47kb
| ├──25.04 The LookAt Function.vtt 16.55kb
| ├──25.05 Coding the LookAt Function.mp4 62.28M
| ├──25.05 Coding the LookAt Function.srt 23.07kb
| ├──25.05 Coding the LookAt Function.vtt 24.56kb
| ├──25.07 Variable Delta-time.mp4 26.57M
| ├──25.07 Variable Delta-time.srt 13.77kb
| ├──25.07 Variable Delta-time.vtt 14.50kb
| ├──25.08 A Simple FPS Camera Movement.mp4 44.09M
| ├──25.08 A Simple FPS Camera Movement.srt 9.76kb
| ├──25.08 A Simple FPS Camera Movement.vtt 10.41kb
| ├──25.09 Coding a Simple FPS Camera Movement.mp4 75.14M
| ├──25.09 Coding a Simple FPS Camera Movement.srt 48.18kb
| └──25.09 Coding a Simple FPS Camera Movement.vtt 49.88kb
├──26 Clipping
| ├──attachments
| | ├──3drenderer-221113-022045.zip 1.34M
| | ├──3drenderer-221113-022115.zip 1.36M
| | ├──3drenderer-221113-022143.zip 1.34M
| | ├──3drenderer-221113-022202.zip 1.34M
| | ├──3drenderer-221113-022222.zip 1.34M
| | ├──3drenderer-221113-022242.zip 1.34M
| | └──JoyKennethClipping-200905-175314.pdf 197.82kb
| ├──17 Deciding What Not to Render.html 849.94kb
| ├──26.01 Frustum Clipping.mp4 61.01M
| ├──26.01 Frustum Clipping.srt 12.70kb
| ├──26.01 Frustum Clipping.vtt 13.42kb
| ├──26.02 Planes.mp4 27.42M
| ├──26.02 Planes.srt 10.95kb
| ├──26.02 Planes.vtt 11.35kb
| ├──26.03 Exercise. Right Frustum Plane Point & Normal.mp4 22.33M
| ├──26.03 Exercise. Right Frustum Plane Point & Normal.srt 4.85kb
| ├──26.03 Exercise. Right Frustum Plane Point & Normal.vtt 5.09kb
| ├──26.04 Defining Frustum Planes Points & Normals.mp4 131.84M
| ├──26.04 Defining Frustum Planes Points & Normals.srt 29.89kb
| ├──26.04 Defining Frustum Planes Points & Normals.vtt 31.20kb
| ├──26.05 Initializing an Array of Frustum Planes.mp4 27.61M
| ├──26.05 Initializing an Array of Frustum Planes.srt 13.14kb
| ├──26.05 Initializing an Array of Frustum Planes.vtt 13.75kb
| ├──26.06 Defining Points Inside and Outside Planes.mp4 42.78M
| ├──26.06 Defining Points Inside and Outside Planes.srt 9.12kb
| ├──26.06 Defining Points Inside and Outside Planes.vtt 9.60kb
| ├──26.07 Intersection Between Line & Plane.mp4 117.95M
| ├──26.07 Intersection Between Line & Plane.srt 21.79kb
| ├──26.07 Intersection Between Line & Plane.vtt 23.40kb
| ├──26.08 Clipping a Polygon Against a Plane.mp4 100.07M
| ├──26.08 Clipping a Polygon Against a Plane.srt 21.52kb
| ├──26.08 Clipping a Polygon Against a Plane.vtt 22.56kb
| ├──26.09 Polygon Typedef.mp4 83.85M
| ├──26.09 Polygon Typedef.srt 30.14kb
| ├──26.09 Polygon Typedef.vtt 31.60kb
| ├──26.10 A Function to Clip Polygon Against Planes.mp4 98.98M
| ├──26.10 A Function to Clip Polygon Against Planes.srt 39.23kb
| ├──26.10 A Function to Clip Polygon Against Planes.vtt 41.44kb
| ├──26.11 Coding the Function to Clip Polygons Against Planes.mp4 88.03M
| ├──26.11 Coding the Function to Clip Polygons Against Planes.srt 45.33kb
| ├──26.11 Coding the Function to Clip Polygons Against Planes.vtt 48.16kb
| ├──26.12 Converting Polygons Back Into Triangles.mp4 30.54M
| ├──26.12 Converting Polygons Back Into Triangles.srt 7.96kb
| ├──26.12 Converting Polygons Back Into Triangles.vtt 8.46kb
| ├──26.13 Visualizing Clipped Triangles.mp4 61.32M
| ├──26.13 Visualizing Clipped Triangles.srt 31.01kb
| ├──26.13 Visualizing Clipped Triangles.vtt 32.48kb
| ├──26.14 Horizontal & Vertical FOV Angles.mp4 44.42M
| ├──26.14 Horizontal & Vertical FOV Angles.srt 26.22kb
| ├──26.14 Horizontal & Vertical FOV Angles.vtt 28.65kb
| ├──26.15 Clipping Texture UV Coordinates.mp4 93.87M
| ├──26.15 Clipping Texture UV Coordinates.srt 48.30kb
| ├──26.15 Clipping Texture UV Coordinates.vtt 50.65kb
| ├──26.16 Clipping Space.mp4 104.65M
| ├──26.16 Clipping Space.srt 28.01kb
| └──26.16 Clipping Space.vtt 29.36kb
├──27 Code Polishing & Refactoring
| ├──attachments
| | ├──3drenderer-221113-022438.zip 1.34M
| | ├──3drenderer-221113-022502.zip 1.34M
| | ├──3drenderer-221113-022522.zip 1.36M
| | └──3drenderer-221113-022543.zip 1.36M
| ├──27.01 Working with Static Variables.mp4 16.19M
| ├──27.01 Working with Static Variables.srt 10.32kb
| ├──27.01 Working with Static Variables.vtt 11.17kb
| ├──27.02 Refactoring SDL Globals.mp4 98.99M
| ├──27.02 Refactoring SDL Globals.srt 32.05kb
| ├──27.02 Refactoring SDL Globals.vtt 32.91kb
| ├──27.03 Simulating Low-Resolution Displays.mp4 29.72M
| ├──27.03 Simulating Low-Resolution Displays.srt 15.96kb
| ├──27.03 Simulating Low-Resolution Displays.vtt 16.54kb
| ├──27.04 Refactoring Light Globals.mp4 18.03M
| ├──27.04 Refactoring Light Globals.srt 9.57kb
| ├──27.04 Refactoring Light Globals.vtt 9.85kb
| ├──27.05 Exercise. Camera Pitch Rotation.mp4 32.00M
| ├──27.05 Exercise. Camera Pitch Rotation.srt 6.36kb
| ├──27.05 Exercise. Camera Pitch Rotation.vtt 6.71kb
| ├──27.06 Implementing the Camera Pitch Rotation.mp4 36.47M
| ├──27.06 Implementing the Camera Pitch Rotation.srt 19.41kb
| └──27.06 Implementing the Camera Pitch Rotation.vtt 20.45kb
├──28 Multiple Meshes
| ├──attachments
| | ├──3drenderer-221113-022633.zip 1.36M
| | └──3drendererfinal-221113-022708.zip 1.34M
| ├──28.01 Declaring Multiple Meshes.mp4 48.89M
| ├──28.01 Declaring Multiple Meshes.srt 20.92kb
| ├──28.01 Declaring Multiple Meshes.vtt 22.01kb
| ├──28.02 Implementing Multiple Meshes.mp4 96.88M
| ├──28.02 Implementing Multiple Meshes.srt 37.82kb
| ├──28.02 Implementing Multiple Meshes.vtt 38.63kb
| ├──28.03 Implementing Multiple Textures.mp4 56.41M
| ├──28.03 Implementing Multiple Textures.srt 22.64kb
| ├──28.03 Implementing Multiple Textures.vtt 23.26kb
| ├──28.04 Finishing our Implementation.mp4 76.36M
| ├──28.04 Finishing our Implementation.srt 28.80kb
| ├──28.04 Finishing our Implementation.vtt 29.87kb
| ├──28.05 Handedness & Orientation.mp4 59.09M
| ├──28.05 Handedness & Orientation.srt 28.21kb
| └──28.05 Handedness & Orientation.vtt 30.82kb
├──29 CPU vs. GPU Rasterization
| ├──attachments
| | ├──trianglerasterizer-230326-202115.zip 7.64kb
| | ├──trianglerasterizer-230326-202147.zip 7.37kb
| | ├──trianglerasterizer-230326-202219.zip 7.48kb
| | ├──trianglerasterizer-230326-202640.zip 6.98kb
| | ├──trianglerasterizer-230326-203744.zip 7.82kb
| | └──trianglerasterizer-230326-204609.zip 7.25kb
| ├──09 A Fixed-Point Rasterizer.txt 2.45kb
| ├──29.01 Dedicated Graphics Cards.mp4 66.80M
| ├──29.01 Dedicated Graphics Cards.srt 14.08kb
| ├──29.01 Dedicated Graphics Cards.vtt 14.89kb
| ├──29.02 Modern Graphics APIs & Shaders.mp4 91.53M
| ├──29.02 Modern Graphics APIs & Shaders.srt 18.57kb
| ├──29.02 Modern Graphics APIs & Shaders.vtt 20.13kb
| ├──29.03 A Parallel Rasterization Algorithm.mp4 85.19M
| ├──29.03 A Parallel Rasterization Algorithm.srt 26.95kb
| ├──29.03 A Parallel Rasterization Algorithm.vtt 28.05kb
| ├──29.04 Determining Point Inside Triangle.mp4 64.21M
| ├──29.04 Determining Point Inside Triangle.srt 19.75kb
| ├──29.04 Determining Point Inside Triangle.vtt 21.44kb
| ├──29.05 Top-Left Rasterization Rule.mp4 64.57M
| ├──29.05 Top-Left Rasterization Rule.srt 22.73kb
| ├──29.05 Top-Left Rasterization Rule.vtt 23.64kb
| ├──29.06 Edge Function & Barycentric Weights.mp4 55.21M
| ├──29.06 Edge Function & Barycentric Weights.srt 18.23kb
| ├──29.06 Edge Function & Barycentric Weights.vtt 19.27kb
| ├──29.07 Edge Function & Constant Increments.mp4 74.53M
| ├──29.07 Edge Function & Constant Increments.srt 22.59kb
| ├──29.07 Edge Function & Constant Increments.vtt 24.32kb
| ├──29.08 Subpixel Rasterization.mp4 93.13M
| ├──29.08 Subpixel Rasterization.srt 31.09kb
| └──29.08 Subpixel Rasterization.vtt 32.66kb
└──30 Conclusion and Next Steps
| ├──01 Modern Hardware 3D Techniques.html 146.71kb
| ├──02 Older Hardware 3D Techniques.html 3.51M
| ├──30.03 Next Steps.mp4 51.56M
| ├──30.03 Next Steps.srt 14.33kb
| └──30.03 Next Steps.vtt 15.45kb