Skip to content

Self-made 3D Engine created with OpenGL with the possibility of using PBR materials, lighting, object management and functional GUI.

License

Notifications You must be signed in to change notification settings

Klus3kk/clueengine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClueEngine

ClueEngine is my self-made 3D graphics engine developed using C with OpenGL rendering, PBR materials, lighting, object management and GUI.

About

ClueEngine was built to provide tools necessary to easily manage 3D scenes, manipulate objects, and handle real-time rendering. It offers camera movement, texture management and an user interface for designing and interacting with 3D environment.

Key Features

  • Real-time rendering: Powered by OpenGL, supporting 3D object rendering with lighting and shading.
  • PBR materials: The engine includes support for physically-based rendering materials.
  • Camera control: For smooth navigation and user interaction.
  • GUI integration: A built-in Nuklear GUI for managing settings, controls, and object interactions.
  • Lighting and shadows: Light sources including point light, directional light, and spotlight.

Quick Start

Clone the repository

git clone https://github.com/Klus3kk/ClueEngine.git
cd ClueEngine

Install dependencies

Refer to the installation guide for detailed steps.

Build the project

cmake -B build -G Ninja
ninja -C build

Run the engine

  • Linux/macOS
./bin/ClueEngine
  • Windows
./bin/ClueEngine.exe

Modify or create your own scene:

Use the GUI controls to add objects, import models, adjust materials, and set up lights.

Docker Deployment

Build the Docker Image

docker build -t clueengine .

Run the Docker Container

docker run --rm -it --net=host --env DISPLAY=$DISPLAY \
    --device /dev/dri \
    --device /dev/snd \
    --group-add video \
    --group-add audio \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    clueengine

Docs

The docs folder contains explanations of specific aspects of the engine:

  1. setup.md: a guide on how to set up the engine.
  2. enginearchitecture.md: an in-depth look at the engine's architecture, how the different modules interact and the underlying design principles.
  3. renderingpipeline.md: how the rendering pipeline works, including shaders, materials and texture loading.
  4. userguide.md: guide to using the engine, including how to create scenes, manipulate objects and use the GUI.
  5. extendingtheengine.md: future plans for my engine.

About

Self-made 3D Engine created with OpenGL with the possibility of using PBR materials, lighting, object management and functional GUI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published