A 3D model viewer written in C++ that renders .obj files using OpenGL. This was my first ever OpenGL project and is old, you should check out my more recent (and much more advanced) Vulkan Renderer.
- Model loading from
.objfiles- Diffuse texture materials
- Smooth orbital camera
- A few shaders
- ImGui control interface
- Model translation, rotation, scale
- Model turntable animation
- Camera controls (aiming reticle, FOV)
- Background color
- Wireframe mode
- Model translation, rotation, scale
- Windows and macOS support
oshi.obj/mtl |
kind.obj/mtl |
squish |
| Models | Link | License |
|---|---|---|
| Spirit Blossom Kindred | Sketchfab | CC Attribution |
| Oshi No Ko | Sketchfab | CC Attribution |
| Fiesta Tea | Sketchfab | CC Attribution |
| Painterly Cottage | Sketchfab | CC Attribution - Non-commercial |
The other bundled models (cubt.obj and plane.obj) are debug models created by myself.
shader.cpp is taken from the LearnOpenGL tutorial.
camera.cpp is a heavily modified version of the camera class from the same tutorial.
| Library | Link |
|---|---|
| GLFW | Website |
| glad | Website |
| GLM | Github |
| OBJ-Loader | Github |
| ImGui | Github |
This project was built with CMake.


