nikerAI
@nikerAI
ЧТО?

Как настроить SpecularMap в OpenGL?

Начал изучать OpenGL по туториалу на YouTube, но дойдя до работы с map столкнулся с проблемой, что при попытке добавить SpecularMap результат выглядит следующим образом
6713d8c0b8127818167795.png
хотя должен так
6713d8e6420ff225501758.png

я предполагаю, что проблема может быть связана с фрагментным шейдером

#version 330 core
out vec4 FragColor;

in vec3 color;
in vec2 texCoord;
in vec3 Normal;
in vec3 crntPos;

uniform sampler2D tex0; // Дифузная текстура
uniform sampler2D tex1;
uniform vec4 lightColor; // Цвет света
uniform vec3 lightPos; // Позиция источника света
uniform vec3 camPos; // Позиция камеры



void main()
{
    float ambient = 0.40f; // Значение амбиентного освещения

    vec3 normal = normalize(Normal);
    vec3 lightDirection = normalize(lightPos - crntPos);

    // Расчет диффузного освещения
    float diffuse = max(dot(normal, lightDirection), 0.0f);

    // Расчет спекулярного освещения
    float specularLight = 0.50f;
    vec3 viewDirection = normalize(camPos - crntPos);
    vec3 reflectionDirection = reflect(-lightDirection, normal);
    float specAmount = pow(max(dot(viewDirection, reflectionDirection), 0.0f), 16);
    float specular = specAmount * specularLight;

    // Установка цвета фрагмента
    FragColor = texture(tex0, texCoord) * (diffuse + ambient)  * lightColor +texture(tex1, texCoord).r *specular;

}

Буду рад если сможете указать на ошибку либо посоветовать материалы связанные с данной темой.
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
nikerAI
@nikerAI Автор вопроса
ЧТО?
Забудьте, я дебил, я в скрипте Текстур написал GL_TEXTURE вместо GL_TEXTURE0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы