From 93ac24a8e2eeb38a0a284d7be23a979a67e16aef Mon Sep 17 00:00:00 2001 From: pkowal1982 Date: Sun, 31 Jul 2016 12:44:56 +0200 Subject: [PATCH] Update shading_language.rst --- reference/shading_language.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/reference/shading_language.rst b/reference/shading_language.rst index 86407850..18400b82 100644 --- a/reference/shading_language.rst +++ b/reference/shading_language.rst @@ -487,8 +487,15 @@ Obtaining world-space normal and position in material fragment program: // Use reverse multiply because INV_CAMERA_MATRIX is world2cam - vec3 world_normal = NORMAL * mat3(INV_CAMERA_MATRIX); - vec3 world_pos = (VERTEX - INV_CAMERA_MATRIX.w.xyz) * mat3(INV_CAMERA_MATRIX); + vec4 invcamx = INV_CAMERA_MATRIX.x; + vec4 invcamy = INV_CAMERA_MATRIX.y; + vec4 invcamz = INV_CAMERA_MATRIX.z; + vec4 invcamw = INV_CAMERA_MATRIX.w; + + mat3 invcam = mat3(invcamx.xyz, invcamy.xyz, invcamz.xyz); + + vec3 world_normal = NORMAL * invcam; + vec3 world_pos = (VERTEX - invcamw.xyz) * invcam; Notes -----