Index: teroid.frag
===================================================================
--- asteroid.frag	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,52 +1,0 @@
-#version 410
-
-in vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
-
-out vec4 frag_color;
-
-// fixed point light properties
-vec3 Ls = vec3(1.0, 1.0, 1.0);
-vec3 Ld = vec3(1.0, 1.0, 1.0);
-vec3 La = vec3(0.2, 0.2, 0.2);
-
-// surface reflectance
-vec3 Ks = vec3(1.0, 1.0, 1.0);
-vec3 Kd = vec3(1.0, 1.5, 1.0);
-vec3 Ka = vec3(0.2, 0.2, 0.2);
-float specular_exponent = 100.0; // specular 'power'
-
-void main() {
-  // ambient intensity
-  vec3 Ia = La * Ka;
-
-  // ambient intensity
-  vec3 Ia2 = La * Ka;
-
-  vec3 direction_to_light_eye = normalize(light_position_eye - position_eye);
-  float dot_prod = max(dot(direction_to_light_eye, normal_eye), 0.0);
-
-  // diffuse intensity
-  vec3 Id = Ld * color * dot_prod;
-
-  vec3 direction_to_light2_eye = normalize(light2_position_eye - position_eye);
-  float dot_prod2 = max(dot(direction_to_light2_eye, normal_eye), 0.0);
-
-  // diffuse intensity
-  vec3 Id2 = Ld * color * dot_prod2;
-
-  vec3 surface_to_viewer_eye = normalize(-position_eye);
-
-  vec3 reflection_eye = reflect(-direction_to_light_eye, normal_eye);
-  float dot_prod_specular = max(dot(reflection_eye, surface_to_viewer_eye), 0.0);
-  float specular_factor = pow(dot_prod_specular, specular_exponent);
-
-  vec3 reflection_eye2 = reflect(-direction_to_light2_eye, normal_eye);
-  float dot_prod_specular2 = max(dot(reflection_eye2, surface_to_viewer_eye), 0.0);
-  float specular_factor2 = pow(dot_prod_specular2, specular_exponent);
-
-  // specular intensity
-  vec3 Is = Ls * Ks * specular_factor;
-  vec3 Is2 = Ls * Ks * specular_factor2;
-
-  frag_color = vec4((Is + Id + Ia + Is2 + Id2 + Ia2)/2, 1.0);
-}
Index: teroid.vert
===================================================================
--- asteroid.vert	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,35 +1,0 @@
-#version 410
-
-#define MAX_NUM_OBJECTS 1024
-
-uniform mat4 view, proj;
-uniform float hp[1016];
-
-layout (std140) uniform models {
-  mat4 model_mats[MAX_NUM_OBJECTS];
-};
-
-layout(location = 0) in vec3 vertex_position;
-layout(location = 1) in vec3 vertex_color;
-layout(location = 2) in vec3 vertex_normal;
-layout(location = 3) in uint ubo_index;
-
-out vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
-
-// fixed point light position
-vec3 light_position_world = vec3(0.0, 0.0, 2.0);
-vec3 light2_position_world = vec3(0.0, 1.5, -0.1);
-
-void main() {
-  position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
-  normal_eye = normalize(vec3(view * model_mats[ubo_index] * vec4(vertex_normal, 0.0)));
-
-  float hp_percent = hp[ubo_index] / 10.0;
-  vec3 damage_color = vec3(1.0, 0.0, 0.0);
-  color = (vertex_color * hp_percent) + (damage_color * (1.0 - hp_percent));
-
-  light_position_eye = vec3(view * vec4(light_position_world, 1.0));
-  light2_position_eye = vec3(view * vec4(light2_position_world, 1.0));
-
-  gl_Position = proj * vec4(position_eye, 1.0);
-}
Index: plosion.frag
===================================================================
--- explosion.frag	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,9 +1,0 @@
-#version 410 core
-
-in float opacity;
-
-out vec4 frag_color;
-
-void main() {
-   frag_color = vec4(1.0, opacity * opacity, 0.0, opacity);
-}
Index: plosion.vert
===================================================================
--- explosion.vert	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,44 +1,0 @@
-#version 410 core
-
-#define MAX_NUM_OBJECTS 1024
-
-uniform mat4 view, proj;
-uniform float cur_time;
-
-uniform float explosion_start_time[1012];
-
-layout (std140) uniform models {
-  mat4 model_mats[MAX_NUM_OBJECTS];
-};
-
-layout (location = 0) in vec3 v_i; // initial velocity
-layout (location = 1) in float start_time;
-layout(location = 2) in uint ubo_index;
-
-out float opacity;
-
-void main() {
-   float duration = 0.5;
-   float t = cur_time - explosion_start_time[ubo_index] - start_time;
-
-   if (t < 0.0) {
-      opacity = 0.0;
-   } else {
-      // Need to find out the last time this particle was at the origin
-      // If that is greater than the duration, hide the particle
-      float cur = floor(t / duration);
-      float end = floor((duration - start_time) / duration);
-      if (cur > end) {
-         opacity = 0.0;
-      } else {
-         opacity = 1.0 - (t / duration);
-      }
-   }
-
-   vec3 p = vec3(0.0, 0.0, 0.0); //  this is the center of the explosion
-   vec3 a = vec3(0.0, 0.1, 0.0);
-   p += normalize(v_i) * mod(t, duration) / duration * 0.3; // allow time to loop around so particle emitter keeps going
-
-   gl_Position = proj * view * model_mats[ubo_index] * vec4(p, 1.0);
-   gl_PointSize = 15.0; // size in pixels
-}
Index: gl-shaders/asteroid.frag
===================================================================
--- gl-shaders/asteroid.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/asteroid.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,52 @@
+#version 410
+
+in vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
+
+out vec4 frag_color;
+
+// fixed point light properties
+vec3 Ls = vec3(1.0, 1.0, 1.0);
+vec3 Ld = vec3(1.0, 1.0, 1.0);
+vec3 La = vec3(0.2, 0.2, 0.2);
+
+// surface reflectance
+vec3 Ks = vec3(1.0, 1.0, 1.0);
+vec3 Kd = vec3(1.0, 1.5, 1.0);
+vec3 Ka = vec3(0.2, 0.2, 0.2);
+float specular_exponent = 100.0; // specular 'power'
+
+void main() {
+  // ambient intensity
+  vec3 Ia = La * Ka;
+
+  // ambient intensity
+  vec3 Ia2 = La * Ka;
+
+  vec3 direction_to_light_eye = normalize(light_position_eye - position_eye);
+  float dot_prod = max(dot(direction_to_light_eye, normal_eye), 0.0);
+
+  // diffuse intensity
+  vec3 Id = Ld * color * dot_prod;
+
+  vec3 direction_to_light2_eye = normalize(light2_position_eye - position_eye);
+  float dot_prod2 = max(dot(direction_to_light2_eye, normal_eye), 0.0);
+
+  // diffuse intensity
+  vec3 Id2 = Ld * color * dot_prod2;
+
+  vec3 surface_to_viewer_eye = normalize(-position_eye);
+
+  vec3 reflection_eye = reflect(-direction_to_light_eye, normal_eye);
+  float dot_prod_specular = max(dot(reflection_eye, surface_to_viewer_eye), 0.0);
+  float specular_factor = pow(dot_prod_specular, specular_exponent);
+
+  vec3 reflection_eye2 = reflect(-direction_to_light2_eye, normal_eye);
+  float dot_prod_specular2 = max(dot(reflection_eye2, surface_to_viewer_eye), 0.0);
+  float specular_factor2 = pow(dot_prod_specular2, specular_exponent);
+
+  // specular intensity
+  vec3 Is = Ls * Ks * specular_factor;
+  vec3 Is2 = Ls * Ks * specular_factor2;
+
+  frag_color = vec4((Is + Id + Ia + Is2 + Id2 + Ia2)/2, 1.0);
+}
Index: gl-shaders/asteroid.vert
===================================================================
--- gl-shaders/asteroid.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/asteroid.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,35 @@
+#version 410
+
+#define MAX_NUM_OBJECTS 1024
+
+uniform mat4 view, proj;
+uniform float hp[1016];
+
+layout (std140) uniform models {
+  mat4 model_mats[MAX_NUM_OBJECTS];
+};
+
+layout(location = 0) in vec3 vertex_position;
+layout(location = 1) in vec3 vertex_color;
+layout(location = 2) in vec3 vertex_normal;
+layout(location = 3) in uint ubo_index;
+
+out vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
+
+// fixed point light position
+vec3 light_position_world = vec3(0.0, 0.0, 2.0);
+vec3 light2_position_world = vec3(0.0, 1.5, -0.1);
+
+void main() {
+  position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
+  normal_eye = normalize(vec3(view * model_mats[ubo_index] * vec4(vertex_normal, 0.0)));
+
+  float hp_percent = hp[ubo_index] / 10.0;
+  vec3 damage_color = vec3(1.0, 0.0, 0.0);
+  color = (vertex_color * hp_percent) + (damage_color * (1.0 - hp_percent));
+
+  light_position_eye = vec3(view * vec4(light_position_world, 1.0));
+  light2_position_eye = vec3(view * vec4(light2_position_world, 1.0));
+
+  gl_Position = proj * vec4(position_eye, 1.0);
+}
Index: gl-shaders/explosion.frag
===================================================================
--- gl-shaders/explosion.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/explosion.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,9 @@
+#version 410 core
+
+in float opacity;
+
+out vec4 frag_color;
+
+void main() {
+   frag_color = vec4(1.0, opacity * opacity, 0.0, opacity);
+}
Index: gl-shaders/explosion.vert
===================================================================
--- gl-shaders/explosion.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/explosion.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,44 @@
+#version 410 core
+
+#define MAX_NUM_OBJECTS 1024
+
+uniform mat4 view, proj;
+uniform float cur_time;
+
+uniform float explosion_start_time[1012];
+
+layout (std140) uniform models {
+  mat4 model_mats[MAX_NUM_OBJECTS];
+};
+
+layout (location = 0) in vec3 v_i; // initial velocity
+layout (location = 1) in float start_time;
+layout(location = 2) in uint ubo_index;
+
+out float opacity;
+
+void main() {
+   float duration = 0.5;
+   float t = cur_time - explosion_start_time[ubo_index] - start_time;
+
+   if (t < 0.0) {
+      opacity = 0.0;
+   } else {
+      // Need to find out the last time this particle was at the origin
+      // If that is greater than the duration, hide the particle
+      float cur = floor(t / duration);
+      float end = floor((duration - start_time) / duration);
+      if (cur > end) {
+         opacity = 0.0;
+      } else {
+         opacity = 1.0 - (t / duration);
+      }
+   }
+
+   vec3 p = vec3(0.0, 0.0, 0.0); //  this is the center of the explosion
+   vec3 a = vec3(0.0, 0.1, 0.0);
+   p += normalize(v_i) * mod(t, duration) / duration * 0.3; // allow time to loop around so particle emitter keeps going
+
+   gl_Position = proj * view * model_mats[ubo_index] * vec4(p, 1.0);
+   gl_PointSize = 15.0; // size in pixels
+}
Index: gl-shaders/laser.frag
===================================================================
--- gl-shaders/laser.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/laser.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,23 @@
+#version 410
+
+#define MAX_NUM_OBJECTS 1024
+
+uniform sampler2D basic_texture;
+uniform vec3 laser_color;
+
+// use this to allow lasers of different colors,
+// while still drawing them all at the same time
+layout (std140) uniform colors {
+  vec3 laser_colors[MAX_NUM_OBJECTS];
+};
+
+in vec2 texture_coordinates;
+in vec3 position_eye;
+
+out vec4 frag_color;
+
+void main() {
+  vec4 texel = texture(basic_texture, texture_coordinates);
+
+  frag_color = vec4(texel.r * laser_color.r, texel.g * laser_color.g, texel.b * laser_color.b, texel.a);
+}
Index: gl-shaders/laser.vert
===================================================================
--- gl-shaders/laser.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/laser.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,23 @@
+#version 410
+
+#define MAX_NUM_OBJECTS 1024
+
+uniform mat4 view, proj;
+
+layout (std140) uniform models {
+  mat4 model_mats[MAX_NUM_OBJECTS];
+};
+
+layout(location = 0) in vec3 vertex_position;
+layout(location = 1) in vec2 vt;
+layout(location = 2) in uint ubo_index;
+
+out vec2 texture_coordinates;
+out vec3 position_eye;
+
+void main() {
+  position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
+  texture_coordinates = vt;
+
+  gl_Position = proj * vec4(position_eye, 1.0);
+}
Index: gl-shaders/ship.frag
===================================================================
--- gl-shaders/ship.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/ship.frag	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,52 @@
+#version 410
+
+in vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
+
+out vec4 frag_color;
+
+// fixed point light properties
+vec3 Ls = vec3(1.0, 1.0, 1.0);
+vec3 Ld = vec3(1.0, 1.0, 1.0);
+vec3 La = vec3(0.2, 0.2, 0.2);
+
+// surface reflectance
+vec3 Ks = vec3(1.0, 1.0, 1.0);
+vec3 Kd = vec3(1.0, 1.5, 1.0);
+vec3 Ka = vec3(0.2, 0.2, 0.2);
+float specular_exponent = 100.0; // specular 'power'
+
+void main() {
+  // ambient intensity
+  vec3 Ia = La * Ka;
+
+  // ambient intensity
+  vec3 Ia2 = La * Ka;
+
+  vec3 direction_to_light_eye = normalize(light_position_eye - position_eye);
+  float dot_prod = max(dot(direction_to_light_eye, normal_eye), 0.0);
+
+  // diffuse intensity
+  vec3 Id = Ld * color * dot_prod;
+
+  vec3 direction_to_light2_eye = normalize(light2_position_eye - position_eye);
+  float dot_prod2 = max(dot(direction_to_light2_eye, normal_eye), 0.0);
+
+  // diffuse intensity
+  vec3 Id2 = Ld * color * dot_prod2;
+
+  vec3 surface_to_viewer_eye = normalize(-position_eye);
+
+  vec3 reflection_eye = reflect(-direction_to_light_eye, normal_eye);
+  float dot_prod_specular = max(dot(reflection_eye, surface_to_viewer_eye), 0.0);
+  float specular_factor = pow(dot_prod_specular, specular_exponent);
+
+  vec3 reflection_eye2 = reflect(-direction_to_light2_eye, normal_eye);
+  float dot_prod_specular2 = max(dot(reflection_eye2, surface_to_viewer_eye), 0.0);
+  float specular_factor2 = pow(dot_prod_specular2, specular_exponent);
+
+  // specular intensity
+  vec3 Is = Ls * Ks * specular_factor;
+  vec3 Is2 = Ls * Ks * specular_factor2;
+
+  frag_color = vec4((Is + Id + Ia + Is2 + Id2 + Ia2)/2, 1.0);
+}
Index: gl-shaders/ship.vert
===================================================================
--- gl-shaders/ship.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
+++ gl-shaders/ship.vert	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -0,0 +1,30 @@
+#version 410
+
+#define MAX_NUM_OBJECTS 1024
+
+uniform mat4 view, proj;
+
+layout (std140) uniform models {
+  mat4 model_mats[MAX_NUM_OBJECTS];
+};
+
+layout(location = 0) in vec3 vertex_position;
+layout(location = 1) in vec3 vertex_color;
+layout(location = 2) in vec3 vertex_normal;
+layout(location = 3) in uint ubo_index;
+
+out vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
+
+// fixed point light position
+vec3 light_position_world = vec3(0.0, 0.0, 2.0);
+vec3 light2_position_world = vec3(0.0, 1.5, -0.1);
+
+void main() {
+  position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
+  normal_eye = normalize(vec3(view * model_mats[ubo_index] * vec4(vertex_normal, 0.0)));
+  color = vertex_color;
+  light_position_eye = vec3(view * vec4(light_position_world, 1.0));
+  light2_position_eye = vec3(view * vec4(light2_position_world, 1.0));
+
+  gl_Position = proj * vec4(position_eye, 1.0);
+}
Index: ser.frag
===================================================================
--- laser.frag	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,23 +1,0 @@
-#version 410
-
-#define MAX_NUM_OBJECTS 1024
-
-uniform sampler2D basic_texture;
-uniform vec3 laser_color;
-
-// use this to allow lasers of different colors,
-// while still drawing them all at the same time
-layout (std140) uniform colors {
-  vec3 laser_colors[MAX_NUM_OBJECTS];
-};
-
-in vec2 texture_coordinates;
-in vec3 position_eye;
-
-out vec4 frag_color;
-
-void main() {
-  vec4 texel = texture(basic_texture, texture_coordinates);
-
-  frag_color = vec4(texel.r * laser_color.r, texel.g * laser_color.g, texel.b * laser_color.b, texel.a);
-}
Index: ser.vert
===================================================================
--- laser.vert	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,23 +1,0 @@
-#version 410
-
-#define MAX_NUM_OBJECTS 1024
-
-uniform mat4 view, proj;
-
-layout (std140) uniform models {
-  mat4 model_mats[MAX_NUM_OBJECTS];
-};
-
-layout(location = 0) in vec3 vertex_position;
-layout(location = 1) in vec2 vt;
-layout(location = 2) in uint ubo_index;
-
-out vec2 texture_coordinates;
-out vec3 position_eye;
-
-void main() {
-  position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
-  texture_coordinates = vt;
-
-  gl_Position = proj * vec4(position_eye, 1.0);
-}
Index: new-game.cpp
===================================================================
--- new-game.cpp	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ new-game.cpp	(revision 4d84c72295f25dbb441372ffced031fcde06d52a)
@@ -412,7 +412,6 @@
    glfwSetMouseButtonCallback(window, mouse_button_callback);
    glfwSetKeyCallback(window, key_callback);
+   glfwSetWindowSizeCallback(window, window_size_callback);
 /*** END OF REFACTORED CODE ***/
-
-   glfwSetWindowSizeCallback(window, window_size_callback);
 
    const GLubyte* renderer = glGetString(GL_RENDERER);
@@ -488,5 +487,5 @@
 
    modelGroups[TYPE_SHIP] = createModelGroup(
-      loadShaderProgram("./ship.vert", "./ship.frag"));
+      loadShaderProgram("gl-shaders/ship.vert", "gl-shaders/ship.frag"));
    shaderBufferInfo[modelGroups[TYPE_SHIP].shaderProgram] = BufferInfo(); // temporary
 
@@ -508,5 +507,5 @@
 
    modelGroups[TYPE_ASTEROID] = createModelGroup(
-      loadShaderProgram("./asteroid.vert", "./asteroid.frag"));
+      loadShaderProgram("gl-shaders/asteroid.vert", "gl-shaders/asteroid.frag"));
    shaderBufferInfo[modelGroups[TYPE_ASTEROID].shaderProgram] = BufferInfo(); // temporary
 
@@ -528,5 +527,5 @@
 
    modelGroups[TYPE_LASER] = createModelGroup(
-      loadShaderProgram("./laser.vert", "./laser.frag"));
+      loadShaderProgram("gl-shaders/laser.vert", "gl-shaders/laser.frag"));
    shaderBufferInfo[modelGroups[TYPE_LASER].shaderProgram] = BufferInfo(); // temporary
 
@@ -548,5 +547,5 @@
 
    modelGroups[TYPE_EXPLOSION] = createModelGroup(
-      loadShaderProgram("./explosion.vert", "./explosion.frag"));
+      loadShaderProgram("gl-shaders/explosion.vert", "gl-shaders/explosion.frag"));
    shaderBufferInfo[modelGroups[TYPE_EXPLOSION].shaderProgram] = BufferInfo(); // temporary
 
Index: ip.frag
===================================================================
--- ship.frag	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,52 +1,0 @@
-#version 410
-
-in vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
-
-out vec4 frag_color;
-
-// fixed point light properties
-vec3 Ls = vec3(1.0, 1.0, 1.0);
-vec3 Ld = vec3(1.0, 1.0, 1.0);
-vec3 La = vec3(0.2, 0.2, 0.2);
-
-// surface reflectance
-vec3 Ks = vec3(1.0, 1.0, 1.0);
-vec3 Kd = vec3(1.0, 1.5, 1.0);
-vec3 Ka = vec3(0.2, 0.2, 0.2);
-float specular_exponent = 100.0; // specular 'power'
-
-void main() {
-  // ambient intensity
-  vec3 Ia = La * Ka;
-
-  // ambient intensity
-  vec3 Ia2 = La * Ka;
-
-  vec3 direction_to_light_eye = normalize(light_position_eye - position_eye);
-  float dot_prod = max(dot(direction_to_light_eye, normal_eye), 0.0);
-
-  // diffuse intensity
-  vec3 Id = Ld * color * dot_prod;
-
-  vec3 direction_to_light2_eye = normalize(light2_position_eye - position_eye);
-  float dot_prod2 = max(dot(direction_to_light2_eye, normal_eye), 0.0);
-
-  // diffuse intensity
-  vec3 Id2 = Ld * color * dot_prod2;
-
-  vec3 surface_to_viewer_eye = normalize(-position_eye);
-
-  vec3 reflection_eye = reflect(-direction_to_light_eye, normal_eye);
-  float dot_prod_specular = max(dot(reflection_eye, surface_to_viewer_eye), 0.0);
-  float specular_factor = pow(dot_prod_specular, specular_exponent);
-
-  vec3 reflection_eye2 = reflect(-direction_to_light2_eye, normal_eye);
-  float dot_prod_specular2 = max(dot(reflection_eye2, surface_to_viewer_eye), 0.0);
-  float specular_factor2 = pow(dot_prod_specular2, specular_exponent);
-
-  // specular intensity
-  vec3 Is = Ls * Ks * specular_factor;
-  vec3 Is2 = Ls * Ks * specular_factor2;
-
-  frag_color = vec4((Is + Id + Ia + Is2 + Id2 + Ia2)/2, 1.0);
-}
Index: ip.vert
===================================================================
--- ship.vert	(revision 40995d3210f343efa37de5c7288ee6b75addde3a)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#version 410
-
-#define MAX_NUM_OBJECTS 1024
-
-uniform mat4 view, proj;
-
-layout (std140) uniform models {
-  mat4 model_mats[MAX_NUM_OBJECTS];
-};
-
-layout(location = 0) in vec3 vertex_position;
-layout(location = 1) in vec3 vertex_color;
-layout(location = 2) in vec3 vertex_normal;
-layout(location = 3) in uint ubo_index;
-
-out vec3 position_eye, normal_eye, color, light_position_eye, light2_position_eye;
-
-// fixed point light position
-vec3 light_position_world = vec3(0.0, 0.0, 2.0);
-vec3 light2_position_world = vec3(0.0, 1.5, -0.1);
-
-void main() {
-  position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
-  normal_eye = normalize(vec3(view * model_mats[ubo_index] * vec4(vertex_normal, 0.0)));
-  color = vertex_color;
-  light_position_eye = vec3(view * vec4(light_position_world, 1.0));
-  light2_position_eye = vec3(view * vec4(light2_position_world, 1.0));
-
-  gl_Position = proj * vec4(position_eye, 1.0);
-}
