Зеркальная подсветка движется при движении камеры - PullRequest
0 голосов
/ 24 марта 2019

Я реализую зеркальную подсветку в OpenGL как часть модели phong.В настоящее время подсветка перемещается, когда моя камера движется, а не становится ярче или тусклее, что, очевидно, не является ожидаемым результатом.Я следовал учебному пособию на learnopengl.com


#version 330 core

in vec3 outColor;
in vec3 outNormal;
in vec3 fragPos;

out vec4 FragColor;

uniform vec3 lightPos = vec3(-2.0f, 0.0f, 0.0f);
uniform vec3 lightColor = vec3(1.0, 0.5f, 1.0f);
uniform vec3 viewPos;


float ambientStrength = 0.2;
float specularStrength = 0.5;


uniform sampler2D tex;

void main()
{
    vec3 normal = normalize(outNormal);
    vec3 lightDir = normalize(lightPos - fragPos);

    //ambient lighitng
    vec3 ambient = ambientStrength * lightColor;

    //diffuse lighting
    float diffuseFactor = max(dot(normal, lightDir), 0.0);
    vec3 diffuse = diffuseFactor * lightColor;

    //specular lighting
    vec3 viewDir = normalize(viewPos - fragPos);
    vec3 reflectDir = reflect(-lightDir, normal);
    float spec = pow(max(dot(viewDir, reflectDir), 0.0), 128);
    vec3 specular = specularStrength * spec * lightColor;


    vec3 result = (ambient + diffuse + specular) * outColor;
    FragColor = vec4(result, 1.0f);// texture(tex, outTexCoords);// vec4(0.0f, 1.0f, 0.0f, 1.0f);
}
...