     if (uPointLightCount == k) break;
 
     vec3 lightPosition = (uViewMatrix * vec4(uPointLightLocation[k], 1.0)).xyz;
-    vec3 lightVector = lightPosition - vViewPosition;
+    vec3 lightVector = vViewPosition - lightPosition;
 	
     //calculate attenuation
     float lightDistance = length(lightVector);
-    float falloff = 300.0 / (lightDistance + 300.0);
+    float falloff = 500.0 / (lightDistance + 500.0);
 
     LightResult result = light(lightVector);
     diffuse += result.diffuse * falloff * uPointLightColor[k];

  }

  gl_FragColor = isTexture ? texture2D(uSampler, vTexCoord) : uMaterialColor;
  gl_FragColor.rgb = gl_FragColor.rgb * (diffuse + vAmbientColor) + specular;
}
vec3 V;
vec3 N;

const float shininess = 32.0;
const float specularFactor = 2.0;
const float diffuseFactor = 0.73;

struct LightResult {
	float specular;
