Use the build tool CMake to build cinnabar.
sudo apt install build-essential cmake libsdl2-dev libglew-dev libglm-dev libassimp-dev
sudo pacman -S base-devel cmake sdl2 glew glm assimp
sudo dnf install kernel-devel cmake sdl // TODO
mkdir build
cd build
cmake ..
cmake --build .
Windows: /build/run/(Debug/Release)/engine.exe Linux: /build/run/engine
- Build Pipeline: CMake
- Window: Simple Directmedia Layer
- Rendering: OpenGL
- OpenGL Extention Loader: GLEW
- Maths: OpenGL Mathematics
- Image: STB Image
- Text Files: std:fstream
- Logger: Tumpnt Logger
- Time: TumbleTime
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
- CMake
- Logger
- SDL2
- GLEW
- GLSL
- Triangle
- Vertex Colors
- Indices
- Shader Class
- Quad Rendering
- Texture Mapping
- Uniforms
- Mesh Class
- Texture Class
- Matracies
- Pespective Camera
- 3D Cube
- 3D Transforms
- WASD
- Basic input handling
- Mouse controlled camera
- Window Class
- Resize context on window resize
- Time Class
- Camera Class
- Smooth Input
- Materials
- Render System
- Multiple Objects rendering at the same time
- Mesh Importing
- Full UV mapping support
- Full vertex color support
- Multi-texture materials
- Normals
- Normal maps
- Matcaps (SArpnt will do this)
- Simple object classes (combine assets and automatically manage render commands)
- Depth manipulation
- Skybox
- GL lines
- Sprites (i think you can do GL_POINTS and draw the images in a frag shader)
- Supersampling and subsampling
- Antialiasing
- MSAA
- FXAA
- MSAA with FXAA
- Mipmaps
- Anisotropic filtering
- Texture filtering
- Nearest
- Linear
- Bilinear
- Trilinear
- Supersampling / subsampling Interpolation
- Nearest
- Bilinear
- Bicubic
- Trilinear
- Lanczos
- Lights
- Text
- GUI
- Portals
- VR Support
- Test on Windows
- Port to Emscripten
- Shapes
- Point
- Line segment
- Rectangular prism
- Sphere
- Cylinder
- Capsule
- Cone
- Ngon prism
- Elipsoid
- Mesh
- Shape collision
- Shape advanced collision (Get information like position, speeds, collision normals, etc. so that physics can be done)
- Physics
- Air resistance
- Friction
- Bounciness
- Buoyancy
- Fake fluid (fluid in small comtainers like bottles, get water level)
- Soft body
- Fluid
- Portals
- Test on Windows
- Port to Emscripten
- TODO: Make todo list
- States
- Scene Graph
- Map management
- XML based scene graph import
- Events System
- Make an Actual Game