             // Enable the wireframe view!
             else
             {
-                // The materials should look emissive by using a bright white, unattenuated light.
-                vec3 emissiveLighting	= calculateLighting (L, N, V, vec3 (0.5), lambertian);
-                
-                // Blend the wireframe and emissive light together and smoothstep with the calculated attenuation. This creates a
-                // really smooth transition between the standard Phong shading and the wireframe emissive shading!
-                const vec3 wireColour	= vec3 (1.0, 1.0, 1.0);
-                lighting += (emissiveLighting + wireframe (wireColour)) * smoothstep (0.0, 1.0, attenuation);
+                // Create the wireframe and smoothstep with the calculated attenuation. This creates a really 
+				// smooth transition between the standard Phong shading and the wireframe emissive shading!
+                lighting += wireframe (light.colour) * smoothstep (0.0, 1.0, attenuation);
             }
         }
     }


int obtainMaterialID()
{
    // Each instance is allocated 4-bytes of data for the material ID. We calculate the row by dividing the instance ID
    // by 4 and then the column by calculating the remainder.
    ivec4 idRow = texelFetch (materialIDs, instanceID / 4);

void obtainMaterialProperties()
{
    // We can use the instance ID to reconstruct the diffuse and specular colours from the RGBA material buffer.
    int materialID      = obtainMaterialID();

    // Each material is allocated 16 bytes of data for the diffuse colour and 16 bytes for the specular colour.
    vec4 diffusePart    = texelFetch (materials, materialID);
