Started learning OpenGL from scratch, so right now it's OpenGL 1.1(intermediate mode) specification
Program opportunities:
- Tracking camera that's rotating vertical from 0° to 85° and whole 360° horizontal (it also has zoom option)
- Real fps counter*: count frames and divide it on time every 1 second (almost, usually it's like 1.04sec)*
- Count elapsed time by using windows functions
- MSAA settings
- Filtering settings
Filtering types
1)Linear filtering
2)Bilinear filtering
3)Bilinear filtering with mipmaps
4)Trilinear filtering
5)Anisotropic filtering х2
6)Anisotropic filtering х4
7)Anisotropic filtering х8
8)Anisotropic filtering х16
9)Anisotropic filtering х32 - Load materials and light attributes from file (filename.json)
- Load scene template objects attributes from scene.json
- Load mesh from wavefront .obj file
- Load textures using DevIL library
- GameObjects on field 21x21
- Using factory pattern to create GameObjects
- Player can spawn bomb that explodes after some time
- Bomb fuse shows in left-upper corner of window
- Moving game objects by player - bomb or light objects
- Moving monster that kills player if it's in 1 block around monster
- Portal can teleport player to the next one with same color
- Using Lee's path finding algorithms for monster's moving
- Using events of GameObjects to handle them
- Using VBO and EBO buffers
- Code splitted up by Data, Display and Simulation parts(.cpp and .h)
Used libraries:
- freeglut - open-source alternative to the OpenGL Utility Toolkit (GLUT) library
- GLM - C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specifications
- GLEW - The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library.
- RapidJson - A fast JSON parser/generator for C++ with both SAX/DOM style API
Program in action Settings (FPS, MSAA, Filtering type) in the title
Controls:
Arrows - Rotation (up/down/left/right)
Mouse Wheel - Zoom (close/further)
WASD - Player movement
Space - Drop bomb at player's position
1 - Turn on/off Multisample anti-aliasing
2 - Change filtering type