ClueEngine is my self-made 3D graphics engine developed using C with OpenGL rendering, PBR materials, lighting, object management and GUI.
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.
- 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.
git clone https://github.com/Klus3kk/ClueEngine.git
cd ClueEngineRefer to the installation guide for detailed steps.
cmake -B build -G Ninja
ninja -C build- Linux/macOS
./bin/ClueEngine- Windows
./bin/ClueEngine.exeUse the GUI controls to add objects, import models, adjust materials, and set up lights.
docker build -t clueengine .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 \
clueengineThe docs folder contains explanations of specific aspects of the engine:
- setup.md: a guide on how to set up the engine.
- enginearchitecture.md: an in-depth look at the engine's architecture, how the different modules interact and the underlying design principles.
- renderingpipeline.md: how the rendering pipeline works, including shaders, materials and texture loading.
- userguide.md: guide to using the engine, including how to create scenes, manipulate objects and use the GUI.
- extendingtheengine.md: future plans for my engine.