#Untitled 3D Graphics Engine
The poster used at the poster session is included in the Poster directory.
#Original Plan Later, I will update this to match the outcome of the final project. For now, suffice to say that I intend to redo the project from scratch purely in Vulkan using what I learned from this project as a foundation.
A 3D graphics engine that can be used as a component of a larger game engine. Primary features/goals:
- Be operating system agnostic. Will be initially programmed on Linux, but should only require minor changes to make it compile and run on Windows. (And, OS-X as well, although I have no way of testing this.
- Use the most modern variant of OpenGL available today. (OpenGL 4.5) If time permits and everthing else is working, I will add in compatability for earlier versions of the API, and, by extension, older hardware.
##Additional Goals
If time permits, these additional feature will be added.
- Provide basic scripting system through either Lua or a custom byte-code based language.
- Add collision detection and response.
- Change to or add a Vulkan®-based rendering system.
- Add support for multithreading.
- Create a simple demo "game".
##Technologies, Libraries, and Languages Used
- C/C++, primarily C with some C++.
- OpenGL 4.5, Open Graphics Library, for rendering.
- SDL2, Simple Direct Media Layer 2, for operating system agnostic windowing system and controls.
- SOIL Simple OpenGL Image Library.
- GLEW, OpenGL Extension Wrangler.
- GLM OpenGL Mathematics, library.
- git and github Version control and backup.
- Doxygen Documentation. View program documentation here.
##Additional Technologies If time provide, these additional libraries may be used for additional goals listed above.
##Screenshots
Here are some screenshots of some Wavefront .obj file that have been rendered using the program thus far.
A cube with randomly colored verticies.
A torus with randomly colored vertices.
Two intersecting toruses with randomly colored vertices.
A torus with vertices colored according to their normal vector.
The Utah Teapot with randomly colored vertices.
The Utah Teapot with vertices colored according to their normal vector.
The Stanford Bunny with vertices colored according to their normal vector.
##Works cited:
- Pyarelal Knowles: Watertight Utah Teapot Model
- Christopher Batty: Watertight Stanford Bunny Model
- The basics of the code for handling errors in the shader compilation process came from the book "OpenGL 4 Shading Language Cookbook" 2nd Ed. by David Wolff.
- Custom Map Makers All cube maps.