diff options
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl index 25eaf003e07..265d19f336f 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl @@ -68,17 +68,17 @@ void workbench_float_pair_decode(float data, out float v1, out float v2) v2 = float(idata >> int(ROUGHNESS_BITS)) * (1.0 / float(v2_mask)); } -vec3 view_vector_from_screen_uv(vec2 uv, vec4 viewvecs[3], mat4 proj_mat) +vec3 view_vector_from_screen_uv(vec2 uv, vec4 viewvecs[2], mat4 proj_mat) { if (proj_mat[3][3] == 0.0) { - return normalize(viewvecs[0].xyz + vec3(uv, 0.0) * viewvecs[1].xyz); + return normalize(vec3(viewvecs[0].xy + uv * viewvecs[1].xy, 1.0)); } else { return vec3(0.0, 0.0, 1.0); } } -vec3 view_position_from_depth(vec2 uvcoords, float depth, vec4 viewvecs[3], mat4 proj_mat) +vec3 view_position_from_depth(vec2 uvcoords, float depth, vec4 viewvecs[2], mat4 proj_mat) { if (proj_mat[3][3] == 0.0) { /* Perspective */ @@ -86,7 +86,7 @@ vec3 view_position_from_depth(vec2 uvcoords, float depth, vec4 viewvecs[3], mat4 float zview = -proj_mat[3][2] / (d + proj_mat[2][2]); - return zview * (viewvecs[0].xyz + vec3(uvcoords, 0.0) * viewvecs[1].xyz); + return zview * vec3(viewvecs[0].xy + uvcoords * viewvecs[1].xy, 1.0); } else { /* Orthographic */ |