Skip to content

Uzair62/OpenGL---Renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClayPOT — OpenGL Renderer

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.


🔥 Preview

(To be added once rendering output is ready)


✨ Features

  • 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

🧱 Architecture Overview

The project is divided into two main components:

1. ClayPOT (Shared Library)

  • Core engine systems (rendering, windowing, input)

  • OpenGL initialization and abstractions

  • Third-party integrations:

    • GLFW
    • Glad
    • spdlog

2. Editor (Executable)

  • Entry point of the application
  • Acts as a client of the engine
  • Used for testing and development of rendering features

🛠️ Tech Stack

  • Language: C++17
  • Graphics API: OpenGL
  • Libraries: GLFW, Glad, spdlog
  • Build System: Premake5
  • IDE: Visual Studio 2022 (recommended)

🚀 Getting Started

Requirements

  • Visual Studio 2022 (MSVC, x64)
  • Premake5 installed and available in PATH

Setup & Build

  1. Clone the repository:

    git clone --recursive https://github.com/Uzair62/OpenGL---Renderer.git
  2. Generate project files:

    premake5 vs2022
  3. Build and run:

    • Open ClayPOT.sln
    • Set Editor as the startup project
    • Press F5 to build and run

📂 Project Structure

ClayPOT/
├── bin/            # Final binaries (DLLs, EXEs)
├── bin-int/        # Intermediate build files
├── ClayPOT/        # Engine source
│   ├── src/
│   └── vendor/
├── Editor/         # Client application
│   └── src/

⚙️ Build System Notes

  • 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

🚧 Future Work

  • Entity Component System (ECS)
  • Scene management and serialization
  • ImGui-based editor tools
  • Advanced rendering techniques (lighting, shadows, post-processing)
  • Potential Vulkan backend

📜 License

This project is intended for educational and portfolio purposes. Feel free to use the architecture as a reference for your own systems.

About

Small c++ project made to learn c++ design and achitecture, modular systems& envoirment programming with minimal UI and renderig pipeline

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors