ClayPOT is a modular C++17 3D rendering engine built with a focus on clean architecture, system-level design, and extensibility. The engine core is compiled as a shared library (DLL), while a standalone Editor application serves as a sandbox for rendering experiments and feature development.
(To be added once rendering output is ready)
- Decoupled Engine Architecture — Engine core is separated as a DLL for a clean client-engine relationship
- Modern C++ (C++17) — Uses contemporary language features for performance and safety
- OpenGL Rendering Pipeline — Built on a programmable pipeline using GLSL
- Editor Sandbox — Dedicated environment for testing and experimentation
- Automated Build System — Premake5-based setup with post-build automation
The project is divided into two main components:
-
Core engine systems (rendering, windowing, input)
-
OpenGL initialization and abstractions
-
Third-party integrations:
- GLFW
- Glad
- spdlog
- Entry point of the application
- Acts as a client of the engine
- Used for testing and development of rendering features
- Language: C++17
- Graphics API: OpenGL
- Libraries: GLFW, Glad, spdlog
- Build System: Premake5
- IDE: Visual Studio 2022 (recommended)
- Visual Studio 2022 (MSVC, x64)
- Premake5 installed and available in PATH
-
Clone the repository:
git clone --recursive https://github.com/Uzair62/OpenGL---Renderer.git
-
Generate project files:
premake5 vs2022
-
Build and run:
- Open
ClayPOT.sln - Set Editor as the startup project
- Press F5 to build and run
- Open
ClayPOT/
├── bin/ # Final binaries (DLLs, EXEs)
├── bin-int/ # Intermediate build files
├── ClayPOT/ # Engine source
│ ├── src/
│ └── vendor/
├── Editor/ # Client application
│ └── src/
-
The engine is built as a DLL and dynamically linked to the Editor
-
Premake automates:
- Project generation
- Configuration management (Debug / Release / Dist)
- Post-build steps to sync the latest engine build
- Entity Component System (ECS)
- Scene management and serialization
- ImGui-based editor tools
- Advanced rendering techniques (lighting, shadows, post-processing)
- Potential Vulkan backend
This project is intended for educational and portfolio purposes. Feel free to use the architecture as a reference for your own systems.