Developed by Gavin Zimmerman
ESC Escape WASD Move camera Mouse Right Button Rotate camera Mouse Right Button + shift Dolly camera Mouse Scroll Zoom in / out B Build scene [shortcut dev tool] R Reload Shaders [shortcut dev tool] P Toggle post-processing
Compiling: make Running: ./final
// ::calculating trajectory
// _AZtroid0 20.742% influence
// _AZtroid1 40.11% influence
// _AZtroid2 1.43% influence
// _AZtroid4 4.532% influence
// _AZtroid5 0.61% influence
// _AZtroid9 3.78% influence
// _AZtroid23 30.822% influence
// ::path found with influences
// ::fire()
camera.c/.h Camera Logic
grav-flx.c/.h Main scene
main.c/.h Top level program, responsible for setting up input and window
noise.c/.h Source code to develop 3D noise texture
AZ Azteroid vertex shader pipeline
cel_blue.frag Azteroid cel shading
post0.frag Post processing
stars.frag Star background
MVRE.h Rendering Frameowrk logic
graphics.h Graphics Dependencies
linmath.h Linear Algebra utilities
objects.c/.h Object Logic; Instancing
render.c/.h Render logic
signal.c/.h Programming pattern for event-driven programming
utils.c/utils.h Utility function
The key showcase in this project is deeloping a space scene completely procedurally, without meshes or textures onhand. The geometry makes use of several concepts we learned this year including: dynamic tesselation based on distance, noise functions, stored textures (3D texture stores simplex), and procedural textures. The majority of interesting code for this process is under 'shdr/AZ'. These are all then created differently by supplying different inputs to each instanced object, such that they can be form a random shape. Getting this to run fairly efficiently was one of my main obstacles and I utilize various optimizations we learned in class among dynamic tesselation, backface culling, camera culling, texture-lookups for noise, and smaller loops.
Another item I've worked on is post-processing, which aims to layer noise and a red hue ontop the first pass- this emulates noise found in traditional cel animation by lighting.