1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-03 17:37:18 +00:00
OpenMW/files/shaders/compatibility/normals.glsl
Alexei Kotov 4a96885323 Untangle normals and parallax handling
Move tangent space generation to the vertex shaders
Support diffuse parallax when no normal map is present
Don't use diffuse parallax if there's no diffuse map
Generalize normal-to-view conversion
Rewrite parallax
2023-12-12 22:42:53 +03:00

15 lines
418 B
GLSL

varying mat3 normalToViewMatrix;
mat3 generateTangentSpace(vec4 tangent, vec3 normal)
{
vec3 normalizedNormal = normalize(normal);
vec3 normalizedTangent = normalize(tangent.xyz);
vec3 binormal = cross(normalizedTangent, normalizedNormal) * tangent.w;
return mat3(normalizedTangent, binormal, normalizedNormal);
}
vec3 normalToView(vec3 normal)
{
return normalize(normalToViewMatrix * normal);
}