Составление компонентов ADS (Phong/Gourang)

У меня есть базовый код шейдера ниже для модели освещения Phong. Я тестировал рассеянное, окружающее и зеркальное освещение, и они дают правильные результаты. Когда дело доходит до компоновки их в последней строке, я продолжаю получать эффект, который сам по себе выглядит как окружающее освещение. Кто-нибудь знает, что с ним не так?

//translate the normals to be in sync with any tranlations applied to the model
vec3 tnormal = normalize(vec3(viewMatrix * modelMatrix * vec4(normal,0.0)));    
vec3 tVertex = vec3(viewMatrix * modelMatrix * vec4(position, 1.0));

// Ambient = La * Ka
vec3 ambience = La * theMaterial.ka;

//Diffuse = Ld * Kd * dot(s, n)
vec3 s = normalize(vec3(myLight.position - tVertex));
vec3 diffuse = myLight.Ld * theMaterial.kd * max(dot(s, tnormal), 0.0);

//Specular = Ls * ks * dot(r,n)^f
//r is the reflection of -lightposition,  r = -s + 2 * dot(s,n) * n 
vec3 r = normalize(reflect(-myLight.position, tnormal));
vec3 v = normalize(-tVertex.xyz);
vec3 specularity = myLight.Ls * theMaterial.ks * pow(dot(v, r), theMaterial.f);


//(ABS) Intensity = Ia * Id * Is
LightIntensity = ambience * diffuse * specularity;

person user2211776    schedule 20.04.2013    source источник


Ответы (1)


Я идиот. В моих заметках неправильно указано, что интенсивность должна быть произведением компонентов, хотя на самом деле это сумма.

person user2211776    schedule 20.04.2013