A lightweight, modern OpenGL rendering framework built in C++14 for rapid prototyping, graphics research, and interactive application development.
Mini GL Renderer provides clean abstractions for shaders, buffers, and rendering pipelines, while integrating seamlessly with GLFW for windowing and Dear ImGui for real-time UI.
Designed to be modular and extensible, it serves as a solid foundation for building rendering features, experimenting with graphics techniques, or powering small-scale 3D/2D applications.
- Modern OpenGL (3.3+) Core rendering pipeline
- Shader system with runtime loading, compilation, and uniform management (
Shader.cpp,shader.h) - Abstractions for VAO, VBO, and EBO with a clean API for mesh management
- Integrated Camera system supporting perspective/orthographic projection and free movement
- Dear ImGui integration for real-time debugging, performance stats, and editor-like controls
- Lighting support with sample Phong shading implementation (
light.vert,light.frag) - Texture support via stb_image
- Toggle between wireframe and fill rendering modes
- Renderer class for frame orchestration and mesh drawing
- Easily extensible for new mesh types and rendering techniques
- C++14 compatible compiler (tested with Visual Studio 2022)
- GLFW (headers included in
Libraries/include) - Dear ImGui (included in
imgui/) - stb_image (included in
stb/) - OpenGL 3.3+ drivers
- Clone the repository:
git clone https://github.com/ayanchavand/Mini-GL-Renderer.git
- Open
Mini GL Renderer.slnin Visual Studio 2022. - Build the solution (
Ctrl+Shift+B).
Run the project (F5 in Visual Studio) or launch the built binary from the output directory.
The application window will display rotating cubes, wireframe/fill toggle, and ImGui debug/camera controls.
main.cpp– Application entry point, main loop, rendering setupShader.cpp,shader.h– Shader management (load/compile/use GLSL)VBO.cpp,VBO.h– Vertex Buffer Object abstractionVAO.cpp,VAO.h– Vertex Array Object abstractionEBO.cpp,EBO.h– Element Buffer Object abstractionCamera.cpp,Camera.h– Camera system for view/projection handlingEngineGUI.cpp,EngineGUI.h– ImGui-powered debug & editor panelsRenderer.cpp,Renderer.h– Renderer class for frame orchestration and drawingdefault.vert,default.frag– Example GLSL shaderslight.vert,light.frag– Example lighting shadersimgui/– Dear ImGui sourcesLibraries/include/GLFW/– GLFW headersstb/– stb_image header for texture loading
This project is licensed under the MIT License.
See the LICENSE file for details.
