3D Fundamentals Series

From Chilipedia
Jump to: navigation, search

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] October 12, 2018 20:54
Upgrade your vectors and matrices. More elements, more fun!
20 3D Fundamentals [Projection Matrix] October 25, 2018 36:42
Projection matrix! Because why solve a problem with a simple solution when you can use a complicated one! All joking aside, matrix encoding of projective (perspective) transform is widely used so you gotta get familiar with this shit.
21 3D Fundamentals [Clipping] November 10, 2018 21:45
Two ways of clipping triangles so that you don't spill your pixels.
22 3D Fundamentals [Camera View] November 25, 2018 24:45
We've made it to the end (probably?)! In this video, we learn how to incorporate a camera transformation into our pipeline, and how to use mouse and keyboard to implement simple camera movement throughout our scene. Check out the bonus video too!