Карты нормалей

This commit is contained in:
2023-02-03 15:30:42 +03:00
parent cf993cfe70
commit 704d8a236b
4 changed files with 15 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ layout(std140, binding = 1) uniform Material
vec3 kd;
vec3 ks;
float p;
bool normalmapped;
};
in vec3 pos_local;

View File

@@ -6,6 +6,7 @@ layout(std140, binding = 1) uniform Material
vec3 kd;
vec3 ks;
float p;
bool normalmapped;
};
layout (location = 0) out vec3 gPosition;
@@ -33,6 +34,14 @@ void main()
gPosition = vertex;
// Сохранение нормали в G-буфере
gNormal = N;
// Если используется карта нормалей
if (normalmapped)
{
// Получим значение из карты нормалей и приведем их к диапазону [-1;1]
gNormal = texture(tex_normal, texCoord).rgb * 2 - 1.0f;
gNormal = normalize(TBN * gNormal); // Из касательного пространства в мировые координаты
}
// Сохранение диффузного цвета
gDiffuseP.rgb = texture(tex_diffuse, texCoord).rgb * kd;
// Сохранение глянцевости