cosmosEngine is a lightweight 3D rendering engine built from scratch using OpenGL โ designed as a modular, simulation-ready sandbox for learning real-time graphics, shader programming, and procedural geometry.
Named this way because I/we like space ๐
This project serves as a personal playground to explore:
- Real-time rendering pipelines
- Physically based shading and cubemaps
- Interactive scene design and UI tools
- Procedural mesh generation
- Custom 3D engine architecture
Whether for reflective objects, dynamic environments, or eventually full-on simulations โ this engine is built to be flexible, clean, and fun to experiment with.
- ๐ฎ Real-time object rendering with free-fly camera
- ๐งฑ Support for
.objmeshes and procedural UV spheres - ๐ Skybox & cubemap environment reflections
- ๐ผ๏ธ Reflective surface shaders (GLSL)
- ๐ Scene-based architecture (
MainScene,SecondScene, etc.) - ๐งฐ Modular OpenGL wrappers (
Shader,Mesh,Material,Renderer) - ๐๏ธ UI tools powered by ImGui
- ๐ฆ Texture & shader management system
- ๐ฌ Build educational visualizations (e.g. orbit simulation, ray tracing)
- ๐งช Test procedural generation (meshes, materials, entire scenes)
- ๐งฉ Design for modularity โ reusable renderer, materials, scenes
- โ๏ธ Eventually support real-time physics and raytracing extensions
- OpenGL (core profile)
- C++17
- ImGui
- stb_image
- tinyobjloader
- Physically based materials (roughness, metallic)
- Real-time shadows
- Scene editor tools
- glTF support
- Interactive visualizations (gravity, field lines)
Feel free to clone and play around โ or just use it as a reference for building your own OpenGL engine!