Я работал с OpenGL на куске курсовой работы, и у меня возникла проблема с моим шейдером фрагментов. Я пытаюсь добавить некоторое основное направленное освещение в текстурированную сетку. Я могу получить текстуру, чтобы она выглядела отлично без освещения.Open GL (GLSL) - Направленные руины освещения Текстура
Однако, когда я добавляю освещения он сохраняет цвет Габаритные текстуры, но удаляет детализацию текстуры все вместе.
Я не уверен, что вызывает его, и я не могу найти решение в Интернете. Спасибо за вашу помощь.
Vertex Shader
#version 440
uniform mat4 uModel; //Model Location, Rotation, Scale
uniform mat4 uView; //Camera Location, Rotation, Scale
uniform mat4 uProjection; //Projection Matrix
in vec3 vPosition;
in vec3 vNormal;
in vec2 vTexCoords;
out vec3 oNormal;
out vec3 oFragPos;
out vec2 oTexCoords;
void main()
{
gl_Position = vec4(vPosition, 1) * uModel * uView * uProjection;
oFragPos = vec3(vec4(vPosition, 1) * uModel);
oNormal = normalize(vNormal * mat3(transpose(inverse(uModel))));
oTexCoords = vTexCoords;
}
Фрагмент Shader
#version 440
//Ins
in vec3 oNormal;
in vec3 oFragPos;
in vec2 oTexCoords;
//Outs
out vec4 fragColour;
//Uniforms
uniform sampler2D uTextureSampler;
void main()
{
vec3 norm = normalize(oNormal);
// Phase 1: Directional lighting
float result = max(dot(norm, -vec3(0,0,1)),0.0);
fragColour = vec4(vec3(result),1.0) * texture(uTextureSampler, oTexCoords);
}
Это не сработало ... Спасибо. –
Можете ли вы попробовать удалить часть vec4 (vec3 (result), 1.0) * 'и посмотреть, все ли вы видите текстуру, или это то, что вы сделали на картинке выше? – TWT
@thokra: OP, по-видимому, использует векторы-строки, а не традиционные столбцы-векторы, поэтому он умножается справа. Хотя это редкость в компьютерной графике, я думаю, что это действительно поддерживается, если вы придерживаетесь этого соглашения. – ybungalobill