Repositório para minhas atividades no curso "3D Graphics Programming", do Gustavo Pezzi, no Pikuma (https://pikuma.com).
O objetivo do curso é aprender a teoria e a matemática que suportam a criação de gráficos tridimensionais, através da criação prática de um software renderizador a partir do zero, usando apenas a linguagem C padrão e a biblioteca SDL (Simple DirectMedia). Maiores informações na página do curso: 3D Graphics Programming.
Progresso do curso:
- Introduction
- Introduction and Learning Outcomes
- How to Take this Course
- Words of Encouragement
- Compiling our project
- Project Dependencies
- A Quick Note for Windows Users
- Project Folder Structure
- The Compilation Flow
- Working with Makefiles
- Configuring Visual Studio in Windows
- Can I use WSL on Windows?
- SDL Setup and Color Buffer
- Creating an SDL Window
- Rendering an SDL Window
- Declaring a Color Buffer
- Colorbuffer vs. Framebuffer
- Allocation Memory and Freeing Resources
- Checking for Errors in Memory Allocation
- Quiz: Memory Allocation
- The Operator sizeof
- SDL Texture
- Fullscreen Window
- Exercise: Drawing a Background Grid
- Drawing a Background Grid
- Background Color Patterns
- Exercise: Drawing Rectangles
- Creating a Function to Draw Rectangles
- Quiz: Color Buffer
- Multiple Header Files
- Vectors and Points
- Projecting Points
- Linear Transformations
- Fixed Time Step
- Triangles and Vertices
- Line Drawing
- Dynamic Arrays
- OBJ Files
- Vector Operations
- Triangle Rasterization
- Sorting Faces by Depth
- Matrices
- 3D Matrix Transformations
- Projection Matrix
- Light and Shading
- Texture Mapping
- Perspective Correct Textures
- Decoing PNG Files
- Textures OBJ Files
- Z-Buffer
- Camera
- Clipping
- Code Polishing & Refactoring
- Multiple Meshes
- CPU vs. GPU Rasterization
- Conclusion and Next Steps