Skip to content

Latest commit

 

History

History
79 lines (65 loc) · 2.88 KB

File metadata and controls

79 lines (65 loc) · 2.88 KB

OpenGL Playground Engine Build Status codecov

Table of Contents

  1. Description
  2. Dependencies
  3. Building
  4. Examples (you should just skip to this)

Description

This started as a mess of code created in my OpenGL studies. However, it has now grown into the start of a very basic rendering engine. The engine contains code for:

  • Shader loading and compilation
  • Mesh loading and drawing
  • A Model class which abstracts away some of the details of the Shader and Mesh objects (Eventually, class will have the Shader replaced with a Material class)
  • SceneNode which can be used to build a Scene Graph

All of the code is documented at https://llcoolsouder.github.io/PlaygroundEngine/index.html; not because I think anyone will find it particularly useful, but because it's good practice.

Eventually, I would like to turn this into a game engine by adding:

  • user input
  • a physics engine
  • whatever other fun features I decide I want to learn about

Dependencies

  • OpenGL 4.3 (for compute shaders)
  • GLEW
  • GLFW3
  • GLM
  • CMake (This was tested on version 3.15)

Building

Once all of the dependencies are installed, building should be as easy as

mkdir build && cd build
cmake ..
make .

Windows

For Windows, CMake will expect the dependencies to be installed in C:/thirdparty/ At the time of making this, there has been a Windows update that blocks manual changes to C:/Program Files (x86)/, which is where CMake looks for most of these dependencies by default on Windows. The file structure should look like this:

C:/thirdparty/  
|-- glew  
|   |-- include/  
|   `-- lib/Win32/Release/  
|-- glfw3  
|   |-- include/  
|   `--build/src/Release/  
`-- glm  

On Windows I built using the CMake-Gui. If you have this file structure, CMake should find everything except GLFW3 static libraries. You will have to give a path to glfw3.lib for GLFW3_LIBRARY.

Linux

I built this on Ubuntu 16, and Travis currently tests on Ubuntu 18. You will need to run the following commands to install the dependencies.

sudo apt-get install -y libglew-dev
sudo apt-get install -y libglm-dev
sudo apt-get install -y libglfw3-dev

I needed to install CMake 3.15 in order to find GLEW properly.

Examples

alt text