- Created a ShaderProgram class. The ShaderController will have to swap
between shader programs for post-processing using frame buffers
- WIP: Framework for multi-pass rendering implemented (Generating and
setting frame buffers and rendering buffers)
- Two shader programs now: The default shader program that renders
either to screen or to a texture, and another shader program that
renders a texture
- Added shaders for multi-pass rendering
- ScreenQuad class binds buffers for the last pass (texture to screen)
- Fixed bug with texture data not being bound for frame buffer
- Fixed bug with frame buffer Id being passed instead of texture Id
- Fixed bug (not unbinding texture when finished in FrameBuffer
constructor)
- Optimized/Refactored how uniform variable locations are loaded in
- Turned off FB for now (there are two bugs)
- Fixed bug in ScreenQuad (wrong attribute number)
- Refactored ShaderController
- VAO attributes now enabled on creation (instead of enabled/disabled
each pass)
- Activating texture unit should come before setting the sampler
location
- WIP: Trying to fix the bug with rendering the new frame buffer to
screen (it's being scaled to the top right quarter and the directional
light isn't working for some reason...)
- Fixed bug with lights/fog not showing up when using multi-pass
rendering
- Added hack that fixes the frame buffer viewport bug (still need to
figure out why it is happening)
- Base skeleton (plus some implementation) for color-based picking
- Encode model UID to an RGB colour
- First working implementation of rendering using color picking shader
- Added new "renderPicking" methods
- Refactored shaders
- Working implementation of color based picking
- IDs generated from hash code of the model (the conversion may cause
some collisions), in the future may change from 8 bit colors
- When the user clicks a mouse, it prints out which model the user
clicked on (the ID of that model)
- Refactored renderer into hierarchical package structure
- Picking now only gets done when mouse is pressed (not when released)
- User can now turn various image conversions on or off 
- Supported: Invert colours
- Selecting a model (when picking mode is enabled) highlights the model
in red.
- TODO: Does not work for a copied model
- Patch for copied models not being picked
- Added copy constructor for Face class
- Cleaned up updating projection/view matrix uniforms