Python · ModernGL · GLSL · Rendering · Graphics Programming
OpenGL Rendering Engine
A compact Python / ModernGL renderer built to understand the complete model-to-screen graphics pipeline.
Project Goal
This project focused on understanding how an OpenGL-style renderer turns a 3D scene into a rendered image.
- I wanted to understand the rendering flow usually hidden behind high-level game-engine components.
- The goal was to build a small renderer where scene objects, camera movement, shaders, textures, lighting, and final output could be understood as connected parts of one pipeline.
- I treated the project as a graphics-foundation project focused on readable rendering structure rather than building a large engine.
Implementation
I implemented a Python / ModernGL renderer with reusable rendering classes.
- Built the rendering-resource structure around VBO, VAO, Texture, Mesh, ShaderProgram, and model-level objects.
- Built a reusable object and resource path for generated cube geometry, repeated scene objects, and external OBJ models loaded through the renderer’s VBO / VAO structure.
- Implemented model-view-projection matrix updates, camera movement, texture binding, and Phong-style lighting data flow through GLSL shader programs.
Result
The project produced a small OpenGL / ModernGL renderer demonstrating the model-to-screen rendering flow.
- Rendered textured 3D models through a reusable scene, mesh, buffer, texture, shader, camera, and model structure.
- Clarified how OpenGL-style rendering connects context setup, buffer creation, VAO binding, shader execution, matrix transformation, texture sampling, lighting, and scene rendering.
- Established a practical understanding of how renderer architecture can organize graphics resources into a readable model-to-screen pipeline.
