#version 330 core // material uniform vec3 materialKd; uniform vec3 materialKs; uniform float materialNs; uniform int nbDirLights; uniform vec3 dirLights[8]; uniform int nbPointLights; uniform vec3 pointLights[8]; // texture uniform sampler2D baseTexture; // fragment in vec3 varNormal; in vec2 varTexCoord; in vec3 lightDirInView[4]; in vec3 halfVecInView[4]; // resultat layout(location = 0)out vec4 outColor; // -------------------- vec3 computeLight(in vec3 kd, in vec3 ks, in float ns, in vec3 color, in vec3 normal, in vec3 lightDir, in vec3 halfVec){ float diffuse = 0; float specular = 0; diffuse = dot(normal, lightDir); diffuse = diffuse < 0 ? 0 : diffuse; specular = dot(halfVec, normal); specular = specular < 0 ? 0 : specular; return color*diffuse*(kd+ks*pow(specular, ns)); } void main(void) { int i; vec3 kd = vec3(0.5); vec3 light = 0.1*kd; vec3 myNormal = normalize(varNormal + 0.3 - 0.6*vec3(texture2D(baseTexture, varTexCoord))); for(i=0; i