A Pythonic 3D Engine in 1 Weekend

I spent this weekend following Coder Space’s Python 3D engine tutorial series. The tutorial covered the fundamentals of the OpenGL pipeline, from the CPU to the GPU.

Video 1: Main Tutorial

I learned about the OpenGL pipeline, starting from the CPU to the GPU. The first tutorial taught me how to…

  1. Render basic geometry

  2. Add a camera to a scene

  3. Add Phong lighting into a scene

  4. Refactor code to re-use buffer object data

  5. Use Uniform transformations

  6. Adopt Best practices in rendering

    • Mipmapping

    • Gamma correction

  7. Load external 3D models

Note

I learned that VBOs are unformatted, allocated spaces of memory that store vertex-related data. However, we can use buffer objects for purposes other than being a VBO.

Video 2: SkyBox, Environment Mapping

I created a skybox for the rendering scene. The second tutorial taught me how to…

  1. Refactor code with polymorphism

  2. Make cube-maps with faces

  3. Replace cube-based skybox with plane-based skybox

Note

Implementing a plane-based skybox was difficult, to say the least.

Video 3: Shadow Mapping, PCF

I just created a smooth shadow-mapping system for objects.

Feedback

As someone who wanted to learn the graphics programming fundamentals, I found this series enjoyable to follow. I believe this tutorial can reach the masses if it also covers…

  • Instancing

  • Deferred rendering

  • Generating vertex normal and tangent

Recommendation

I recommend this tutorial for people who already have experience with Python and want to get straight to crafting graphics. Thank you, Coder Space!