This project is part of a course on OpenGL and rendering. I had to re-do a lot of the base code we were handed because it contained windows specific API calls and could not be run on Linux.
Find a file
Teo-CD 4a5b0f5829 Added camera!
- Can be translated locally or moved to a point in the world
 - Rotates locally around local x- and z-axis and around global y-axis.

Added key checks to test camera movement.

Added Quaternions (Inherits from CoordinatesVector<double,4>) with a view to handling the camera orientation.

Added equality operators for CoordinatesVectors.

Removed slow `glutGet()` calls.
Added custom reshape callback as we now store the window parameters to avoid some `glutGet()` calls.

Renamed `KeyStateManager` to `InputStatus` as it handles more than key states now.

Mouse movement callback now captures the cursor, handles its re-centering and when the cursor enters the window far away from its last position.

TODO : Consider limiting rotations for the camera (Prevents flipping the head around)
2019-10-28 23:45:44 +01:00
resources Added texture loading and displaying for 3D models 2019-09-30 19:20:10 +02:00
src Added camera! 2019-10-28 23:45:44 +01:00
.gitignore Base program with rotating pyramids 2019-09-24 09:34:53 +02:00
CMakeLists.txt Added camera! 2019-10-28 23:45:44 +01:00
README.md Added camera! 2019-10-28 23:45:44 +01:00

OpenGL course

The goal of the course is to introduce us to the OpenGL render pipeline and how to use the library.

The code here was, in part, inspired by the code which was given as part of the course but could not run elsewhere than Windows. It is aimed to replace it and serve as a base for my own project as part of the course.

As this project evolves I am thinking more and more about making it a "complete" minimalist game-engine if I have the time.

TODOs

  • Camera movement
  • Entities
  • Quaternion computations? Maybe use OpenGLMathematics Ended up doing it from scratch.

Possible expansions

  • Loading other file types
  • Asset manager
  • Detect key press' edges ?
  • Switch from GLUT to GLFW

Dependencies

The following libraries must be installed and findable by CMake:

  • OpenGL
  • Freeglut 3