This is a deprecated attempt to create a custom C++ 3D engine, made by two students from EPITA (Paris). This is really old and was stopped as a WIP with very few features.
To build the source, you'll need:
- The source repository
- A C++ compiler
- CMake 3.0+
- GLFW 3 (only if you want to build samples)
You can also type this in a terminal to install all dependencies:
sudo apt-get install git cmake libglew-dev
git clone https://github.com/AdrienNeveu/3DEngine && git submodule update
- If you want to only build the engine library, type this:
mkdir build && cd $_ && cmake .. && make engine
- If you want to build the demos scenes, type this:
mkdir build && cd $_ && cmake .. && make samples
- If you want to launch the test suite, make the 'test' target
mkdir build && cd $_ && cmake .. && make check
(Not yet supported)
-
Dependencies
- Move from GLEW to GLAD
- Move from SOIL to stbi
-
Code structure
- Move to C++ 17
- Make use of nested namespace
- Move private code that do not need object attributes to anonymous namespace
- Remove boost dependency
- Change the way uniforms are sent (using a lot of conditions), boost::any is not the answer.
- Separate includes and sources
- Separate templates declaration / definition
- Add constness and staticness where we can.
- Add Pimpl
- Add typedef to a global scope
- Restrict include scope only to files that need them
- Add unit testing with Gtest
- Better exception handling
-
Rendering
- Add IBL iradiance lighting with SH
- Add IBL radiance lighting with Cubemaps mip
- Add basic PBR on direct light
- Improve shader generation system
- Send 1x1 texture with color when texture is not provided