Index: shaders/ship.frag
===================================================================
--- shaders/ship.frag	(revision 7c929fc6d7d0bbc80ddc3d72e89c0c4601e4cecc)
+++ shaders/ship.frag	(revision 60578ce4dcc921e61972a900007888a9a06964ea)
@@ -6,6 +6,7 @@
 layout(location = 2) in vec3 normal_eye;
 layout(location = 3) in vec3 light_position_eye;
+layout(location = 4) in vec3 light2_position_eye;
 
-layout(location = 0) out vec4 outColor;
+layout(location = 0) out vec4 frag_color;
 
 // fixed point light properties
@@ -34,4 +35,10 @@
    vec3 Id = Ld * Kd * 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 * Kd * dot_prod2;
+
    vec3 surface_to_viewer_eye = normalize(-position_eye);
 
@@ -43,4 +50,11 @@
    vec3 Is = Ls * Ks * specular_factor;
 
-   outColor = vec4(Is + Id + Ia, 1.0);
+   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 Is2 = Ls * Ks * specular_factor2;
+
+   frag_color = vec4((Is + Id + Ia + Is2 + Id2 + Ia2)/2, 1.0);
 }
Index: shaders/ship.vert
===================================================================
--- shaders/ship.vert	(revision 7c929fc6d7d0bbc80ddc3d72e89c0c4601e4cecc)
+++ shaders/ship.vert	(revision 60578ce4dcc921e61972a900007888a9a06964ea)
@@ -24,24 +24,25 @@
 layout(location = 2) out vec3 normal_eye;
 layout(location = 3) out vec3 light_position_eye;
+layout(location = 4) out vec3 light2_position_eye;
 
-// fixed point light position
+// fixed point light positions
 //vec3 light_position_world = vec3(0.0, 0.0, 2.0);
-//vec3 light_position_world = vec3(0.4, 1.5, 0.8);
-vec3 light_position_world = vec3(0.4, 0.0, 0.2);
+//vec3 light2_position_world = vec3(0.0, 1.5, -0.1);
+vec3 light_position_world = vec3(7.0, -7.0, -10.0);
+vec3 light2_position_world = vec3(4.0, -3.0, -10.0);
 
 // TODO: This does not account for scaling in the model matrix
 // Check Anton's book to see how to fix this
 void main() {
-   //position_eye = vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_position, 1.0));
-   position_eye = vec3(vec4(vertex_position, 1.0));
+   position_eye = vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_position, 1.0));
 
    // Using 0.0 instead of 1.0 means translations won't effect the normal
-   //normal_eye = normalize(vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_normal, 0.0)));
-   normal_eye = normalize(vec3(vec4(vertex_normal, 0.0)));
+   normal_eye = normalize(vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_normal, 0.0)));
+
    color = vertex_color;
-   //light_position_eye = vec3(ubo.view * vec4(light_position_world, 1.0));
-   light_position_eye = vec3(vec4(light_position_world, 1.0));
 
-   //gl_Position = ubo.proj * vec4(position_eye, 1.0);
-   gl_Position = vec4(vertex_position, 1.0);
+   light_position_eye = vec3(ubo.view * vec4(light_position_world, 1.0));
+   light2_position_eye = vec3(ubo.view * vec4(light2_position_world, 1.0));
+
+   gl_Position = ubo.proj * vec4(position_eye, 1.0);
 }
