top of page

PRODUCTION PHASE

Majority of this project was made on OpenGL, while a few meshes were imported from Blender tookt.

OpenGL

Open Graphics Library (OpenGL)[3][4] is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics.

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.

​

​

​

Additionally, the following libraries were used:

GLFW

​

GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop.

 

It provides a simple API for creating windows, contexts and surfaces, receiving input and events. It provides programmers with the ability to create and manage windows and OpenGL contexts, as well as handle joystick, keyboard and mouse input.

​

GLFW is written in C and has native support for Windows, macOS and many Unix-like systems using the X Window System, such as Linux and FreeBSD.

​

GIT Repo: https://github.com/glfw/glfw.git

FreeGLUT
OpenGL Utility Toolkit

​​

FreeGLUT is an open source alternative to the OpenGL Utility Toolkit (GLUT) library. GLUT (and hence FreeGLUT)  is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. Functions performed include window definition, window control, and monitoring of keyboard and mouse input. Routines for drawing a number of geometric primitives (both in solid and wireframe mode) are also provided, including cubes, spheres and the Utah teapot. GLUT also has some limited support for creating pop-up menus.

​

GIT Repo: https://github.com/LuaDist/freeglut.git

GLEW
OpenGL Extension Wrangler Library

​

The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.

​

GIT Repo: https://github.com/nigels-com/glew.git glew

GLSL
OpenGL Shading Language

​

GLSL is a C/C++ similar high level programming language for several parts of the graphic card. With GLSL you can code (right up to) short programs, called shaders, which are executed on the GPU. It was created by the OpenGL ARB (OpenGL Architecture Review Board) to give developers more direct control of the graphics pipeline without having to use ARB assembly language or hardware-specific languages.

GLM
OpenGL Mathematics

​

OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specifications.

​

GLM provides classes and functions designed and implemented with the same naming conventions and functionalities than GLSL so that anyone who knows GLSL, can use GLM as well.

​

GIT Repo: https://github.com/g-truc/glm.git

ASSIMP
Open Asset Import Library

​

Open Asset Import Library (short name: Assimp) is a portable Open Source library to import various well-known 3D model formats in a uniform manner. It aims to provide a common application programming interface (API) for different 3D asset file formats. Written in C++, it offers interfaces for both C and C++. Bindings to other languages (e.g., BlitzMax, C#, Python) are developed as part of the project or are available elsewhere.

​

GIT Repo: https://github.com/assimp/assimp.git

$ sudo apt install libglfw3 libglew-dev glew-utils libglew2.0 assimp-utils libassimp-dev libassimp3v5 freeglut3-dev libglm
#Dont you just love command line
Graphics Info:

Time to initialise OpenGL - 303 ms
Time to initialise models and load Vertex Array Objects - 593 ms
Average Frame Rate - 35fps

 

System Details:
KDE Neon 5.11
i5-6300U (Intel HD 520)/8GB RAM/256GB SSD

bottom of page