From ac1f1ab22df5dba087e925416d2b55810a1cb5cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Tue, 10 Dec 2019 19:03:26 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@672 a8b55f48-bf90-11e4-a774-851b48703e85 --- qglengine/core/glshaders_headers.h | 3 ++- qglengine/shaders/ds_geom.glsl | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qglengine/core/glshaders_headers.h b/qglengine/core/glshaders_headers.h index 74d1d34..333e870 100644 --- a/qglengine/core/glshaders_headers.h +++ b/qglengine/core/glshaders_headers.h @@ -43,7 +43,8 @@ const char qgl_vertex_head[] = "flat out uint qgl_MaterialIndex;\n" "uniform mat4 qgl_ViewMatrix;\n" "uniform mat4 qgl_ViewProjMatrix;\n" - "mat3 qgl_getNormalMatrix() {return mat3(qgl_ViewMatrix * qgl_ModelMatrix);}\n" + "mat3 qgl_getNormalMatrix() {return inverse(mat3(qgl_ViewMatrix * qgl_ModelMatrix));}\n" + "mat3 qgl_getTangentMatrix() {return mat3(qgl_ViewMatrix * qgl_ModelMatrix);}\n" "vec4 qgl_ftransform() {return qgl_ViewProjMatrix * (qgl_ModelMatrix * vec4(qgl_Vertex, 1));}\n" ""; diff --git a/qglengine/shaders/ds_geom.glsl b/qglengine/shaders/ds_geom.glsl index f879f59..66e38f2 100644 --- a/qglengine/shaders/ds_geom.glsl +++ b/qglengine/shaders/ds_geom.glsl @@ -9,9 +9,8 @@ void main(void) { qgl_FragTexture = qgl_Texture; gl_Position = qgl_ftransform(); - mat3 nmat = qgl_getNormalMatrix(); - geom_normal = normalize(nmat * qgl_Normal); - TBN = nmat * mat3(qgl_Tangent, qgl_Bitangent, qgl_Normal); + geom_normal = normalize(qgl_Normal * qgl_getNormalMatrix()); + TBN = qgl_getTangentMatrix() * mat3(qgl_Tangent, qgl_Bitangent, qgl_Normal); object_color = qgl_ObjectColor; }