OGLA : OpenGL Abstraction is a reference renderer implemented in C++.
The objective of this project is to abstract renderer functionality to serve as a foundation for simple 2D/3D real-time applications.
The design principle applied was to identify rendering engine concepts, and ecapsulate these in a simple and inteligible abstraction to be easily readable, understandable, learnable, and hackable.
TODO: Insert architecture diagram.
- Input
- Keyboard
- Mouse
- Window
- Event Handling
- Time Frame
- Vertex
- Vertex Buffer
- Index Buffer
- Vertex Array
- Vertex Data
- Shader
- Texture
- Mesh
- Model
- Camera
- Key and Mouse Movement
- Perspective Camera
- Orthographic Camera
- Primitive Geometry
- Material
- Light
- Scene
- Scene State Machine
- Layer
- Font
git clone --recursive https://github.com/jsusaki/OGLA.git
cd OGLA
mkdir build
cd scripts
./config.sh
./build.sh
./run.sh
Visual Studio Solution and batch script will be provided.
-
Application Control
ESCAPE
: CloseF11
: Full Screen (Only on Primary Screen)TAB
: Toggle Mouse Focus
-
Rendering Control
1
: Normal Rendering2
: Wireframe Rendering
-
Camera Control
W
: Move ForwardS
: Move BackwardA
: Move LeftD
: Move RightQ
: Move DownE
: Move UpF1
: Perspective CameraF2
: Orthographic CameraCursor
: Focal PointWheel
: Zoom in / Zoom Out
- CMake: Build System
- GLFW: Cross-platform Input and Window
- glad: OpenGL Extension
- GLM: Mathematics
- stb_image: Image Loading
- assimp: Asset Loading