I am building this 3D rendering engine to learn openGL and make demoscene. I started with absolutely no knowledge about GPU programming, so it's quite possible that there's a lot of flaws in this project. I'm open to any kind of criticism that could help me improve !
If anyone's interested in mentoring me on this project, here's my twitter account : @KrankerApfel
This project use OpenGL, GLAD, glm, GLFW, ImGUI and stb. You can use CMake to compile it.
Object Oriented architecture very similar to Unity.
I'm learning from severals ressources, here the list below.
- opengl-tutorial french website
- "Algorithmes pour la synthèse d'images et l'animation 3D", Rémy Malgouyres (french book)
- "Ray Marching and Signed Distance Functions", Jamie Wong (english website)
- Inigo Quilez english blog
- Inigo Quilez english youtube channel
- LearnOpenGl.org english website to learn modern OpenGL
- The Cherno game engine youtube serie
- OpenGL and Math lessons at my school
- dll : store dlls .
- resources : store ressource files (.obj, .bmp, .wav etc...).
- vendor : store dependencies
- src : store all Kranker3D logic.
-
core : engine core scripts
- io : store I/O helpers...
- objects : engine object script as camera, scene etc...
- rendering : store class of objects involved in rendering (shader, mesh etc..)
- pipeline : store rendering logic (SDFs, raymarching etc..)
-
ui : store ui logic
-
- Config file
- File reader
- Input class
- Resources manager
- Camera
- Transform class
- Object class
- Obj loader
- Skybox
- Light
- Shader class
- Mesh class
- Material class
- Texture
- Renderer class
- Phong
- Lambert
- Window class
- Pannel class
- Property pannel
- Scene tree pannel