- The first step is always the hardest (or in some cases it's the
easiest and in that case things are going to get very rough...)
- Terrain generation! Using noise! Much more to come! Hopefully...
- Merge now uses divide-and-conquer approach (much faster, from 75s to
2s for test case)
- Refactored model to use consistent naming for methods (bind, setup,
render)
- Refactored bounding box generation in Model
- Added parameter to Model.merge called transform (boolean). This is
only logical in the case of a list of models being merged together.
After the base merge, the models' world space coordinates are now its
model space coordinates and its world space position is (0, 0, 0)
(transformation matrix is identity), thus any transform of merged models
is redundant. This is the desired behavior.
- Moved test client for Terrain to own file
- Added normal matrix to uniforms (reduce the load on the GPU)
- Added baked spherical harmonic lighting values to vertex shader
- Fix rebase screw-up
- Created a Context class to allow removal of cluttered constructors for
Renderer
- Cleaned up the Renderer
- First step in getting client side shader support up and running -
adding enums for identifying user defined shader data (attributes and
uniforms)
- Added ShaderTypes enum
- Added method to get the ShaderType of a ShaderProgram
- Added support for different texture targets for a Frame Buffer (This
is needed for future support of rendering depth and normals to a
texture)
- Wrote adaptor for different frame buffer texture targets (FBTarget)
- Tried to set up rendering to a depth texture but depth texture is
coming up all zero'd 
- Added a common utility shader
- Adding the utils.glsl shader
Initial work (skeleton) to support frustrum culling, some refactor to models and Renderable.
Adding a method for computing vertices of a bounding box. Created a MainCulling for testing frustrum culling.
Switching to float[] for bounding box vertex list.
Added a TODO for simplifiying the hull.
Computing frustrum planes from viewProj matrix. Added computation to check if a point is inside the frustrum.