Hardware 3D (C++ DirectX Graphics) Tutorial 0
This video talks about the course syllabus for the Hardware 3D tutorial series (the shit we gonna learn) and the prerequisites for following this series (what you need to know, and what you need to have). Use it to get an idea of what this series is about, and whether you have what it takes to follow along. If you don't know this shit, it's okay to just come along for the ride if you interested; you'll learn something at least. But if you decide you wanna dig deep and master the material, check out the links on this page for my C++ series and the 3D Fundamentals series.
- Direct3D 11 vs. D3D12 / Vulkan
- Course Syllabus (Topics Covered)
- Prerequisites / Requirements
- Planet Chili Community
Basic Plan for Hardware 3D
The Hardware 3D series will start of will WinAPI stuff. We'll learn how to create a window and process messages mainly relating to keyboard and mouse input. Then we will work on initialization of the pipeline components required to actually draw primitives. Once we have a basic pipeline down, we will begin a deep dive, learning HLSL together with important rendering techniques.
After getting familiar with HLSL, the binding of various resources to shader stages, and mastering important pixel shader and vertex shader techniques, we will broaden our horizons with tesselation/geometry shaders and try out had at fullscreen post-processing techniques as well. After this, we might explore more advanced techniques such as dynamic shadows and deferred lighting.
This series builds on the previous series in the Planet Chili Programming Education Program. So videos here aren't going to waste much time covering things that have been covered previously. If you don't have background knowledge covered in those series, you can still watch this series out of interest or to audit it and see if you wanna put in the time necessary. But if you want to master the material in Hardware 3D, you'll likely have to do some catching up.
Here are the previous series, and a short summary of what topics are covered in each:
- Beginner C++ Game Programming Series Basics of programming and C++, OOP Basics, Vector Math Basics, Basics of Raster Graphics
- Intermediate C++ Game Programming Series Datatypes, Pointers, Memory Management and Allocation, RAII, Inheritance and Polymorphism, STD Library Containers and Algorithms, Template Programming (Generics), Functional and Lambdas
- Advanced C++ Programming Series Intermediate Vector Math, Rotation, Vertex Transformation Pipelines, Matrices (Tutorials 1-5 are part of the mainline that leads to hardware 3D, and they focus on math. Tutorials 6+ are extra C++ topics not part of the mainline.)
- 3D Fundamentals Series 3D Space and Transformations, Perspective Transform, Triangle Rasterization, Texture Mapping, Depth Buffering, Shader Pipeline, Dynamic Lighting Techniques, Projection Matrix, Clipping, Camera View