jsusaki / OGLA

OpenGL Abstraction

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OGLA: OpenGL Abstraction

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.

Perspective Projection Orthographic Projection

Architecture

TODO: Insert architecture diagram.

Features

  • 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

Installation and Build

  1. git clone --recursive https://github.com/jsusaki/OGLA.git
  2. cd OGLA
  3. mkdir build
  4. cd scripts
  5. ./config.sh
  6. ./build.sh
  7. ./run.sh

Windows

Visual Studio Solution and batch script will be provided.

Control

  • Application Control

    • ESCAPE: Close
    • F11: Full Screen (Only on Primary Screen)
    • TAB: Toggle Mouse Focus
  • Rendering Control

    • 1: Normal Rendering
    • 2: Wireframe Rendering
  • Camera Control

    • W: Move Forward
    • S: Move Backward
    • A: Move Left
    • D: Move Right
    • Q: Move Down
    • E: Move Up
    • F1: Perspective Camera
    • F2: Orthographic Camera
    • Cursor: Focal Point
    • Wheel: Zoom in / Zoom Out

Dependencies

  • CMake: Build System
  • GLFW: Cross-platform Input and Window
  • glad: OpenGL Extension
  • GLM: Mathematics
  • stb_image: Image Loading
  • assimp: Asset Loading

About

OpenGL Abstraction

License:MIT License


Languages

Language:C 50.1%Language:C++ 48.9%Language:GLSL 0.7%Language:CMake 0.2%Language:Shell 0.0%