3D Fundamentals Series
From Chilipedia
The 3D Fundamentals series teaches the math, algorithms, and physics (optics) theories and methods that underpin all modern realtime 3D graphics. The way we accomplish this is by creating a complete software 3D engine from scratch. The goal of this series is to provide a foundation of knowledge that will make it much easier to learn a hardware API like Direct3D or OpenGL or a pre-made engine like Unity or Unreal Engine.
List of Tutorials
Tutorial Number | Title | Release Date | Runtime |
0 | 3D Fundamentals [Introduction] | September 30, 2016 | 7:43 |
This video serves as an introduction to the 3D fundamentals series, stating the goals and methods of the series as well as the prerequisites needed to follow along. | |||
1 | 3D Fundamentals [Framework Tour] | October 26, 2016 | 28:45 |
This video gives a quick tour of the framework we're going to be using to explore the concepts of realtime 3D graphics. The intended audience is mainly people coming to the 3D Fundamentals series without experience in my other tutorials. | |||
2 | 3D Fundamentals [3D Space/Indexed Vertices] | November 5, 2016 | 28:22 |
In this video we lay the groundwork needed to represent and transform positions and 3D space, we define the relationship between our 3D space and the screen coordinates, and we setup a data structure to hold our test cube geometry. | |||
3 | 3D Fundamentals [3D Rotations] | November 25, 2016 | 26:36 |
In this video we start from the canonical 2D rotation transformation matrix and extend it to 3D to derive rotation around the Z, Y, and X-axes. We also jerk off said axes, using the left-hand rule of course (right hand is busy with the mouse). | |||
4 | 3D Fundamentals [3D Perspective Projection] | December 26, 2016 | 28:25 |
In this video we find out why things look smaller the farther away they are. What does that have to do with projection? I'll tell you... all this science is making me so horny, mah dick is gonna project right out of these pants gurl. | |||
5 | 3D Fundamentals [Triangle Rasterization] | February 10, 2017 | 31:29 |
In this video we find out what's the deal with triangles, and how we deal with the pointy little fuckers and make them our bitch. | |||
6 | 3D Fundamentals [Backface Culling] | March 5, 2017 | 35:18 |
Get rid of those dirty back-facers, we don't serve their kind here. Also, learn the new sex move that is taking New England by storm: the Bridgeport Shocker. | |||
7 | 3D Fundamentals [Texture Mapping] | June 10, 2017 | 44:18 |
Textures. Put purdy pictures onto your triangles. Lot of interpolation and stuff. | |||
8 | 3D Fundamentals [3D Pipeline] | September 28, 2017 | 18:38 |
Here we set up the pipeline that is going to form the scaffolding for our model of the 3D graphics processing. In the coming videos, we are going to be replacing units of fixed functionality in this pipeline one by one with programmable shader stages. | |||
9 | 3D Fundamentals [Pixel Shader] | September 30, 2017 | 23:08 |
In this tutorial we incorporate our first shader stage into the 3D pipeline: the pixel shader stage. We also explore some basic example pixel shaders (more heavy-duty stuff to come later). | |||
10 | 3D Fundamentals [Perspective Correction] | October 20, 2017 | 17:10 |
In this tutorial we get the butt wiggling texture to respect our authoritae! In other words, we upgrade our affine texture mapping to perspective-correct texture mapping, putting the kibosh on the fucked-up texture distortion. | |||
11 | 3D Fundamentals [Z-Buffer] | November 5, 2017 | 16:12 |
Things that are behind get covered up by things that are in front. | |||
12 | 3D Fundamentals [Vertex Shader] | November 16, 2017 | 13:08 |
The vertex shader is the one of the two original shaders introduced in Direct3D 8, and it is the only shader besides the pixel shader that must be provided before triangles can be rendered. It's kind of a big deal. | |||
13 | 3D Fundamentals [Geometry Shader] | December 25, 2017 | 19:08 |
The geometry shader is a funky little shader stage added in Direct3D 10. It is weird and powerful and versatile, so we are including it in our basic software rasterization pipeline. It is the last type of shader stage that will be covered in this series. | |||
14 | 3D Fundamentals [Flat Shading (Loading Mesh)] | January 21, 2018 | 32:56 |
Shading, dynamic lighting, whatever you wanna call it. This is the real meat of realtime 3D graphics. This video outlines the basic theory of dynamic lighting and teaches the simplest application (flat shading), setting the stage for the next few videos on this topic. We also look at loading meshes from files, because I don't know about you, but I am tired as fuck of goddamn cubes. | |||
15 | 3D Fundamentals [Gouraud Shading (smooth vertex)] | May 12, 2018 | 28:42 |
Flat shading is cool and all, but chili likes it smooth. So we're gonna learn how to shade our shit so smooth, it be like a motherfuckin baby's bottom. Which is to say, very smooth indeed. And trust me, I know. I've touched a lot of baby bottoms in my day. Does that concern you? Well it motherfucking should. Anyways, we also generate some procedural geometry (sphere) and load a mesh from .obj with vertex normals. | |||
16 | 3D Fundamentals [Point Lights] | September 1, 2018 | 16:24 |
Directional lights are okay, but with a point light it's lit fam. | |||
17 | 3D Fundamentals [Per-Pixel Lighting] | September 8, 2018 | 18:14 |
Per-pixel lighting (also known as Phong or Blinn-Phong shading). | |||
18 | 3D Fundamentals [Specular Highlights] | September 27, 2018 | 18:24 |
Specular highlights are shiny and sexy. We love em. | |||
19 | 3D Fundamentals [4-element Vectors / Matrices] | September 27, 2018 | 20:54 |
Upgrade your vectors and matrices. More elements, more fun! |