From 0c7d2de38219641fc41d468eec675933e26a3602 Mon Sep 17 00:00:00 2001 From: IRIE Shinsuke Date: Sun, 24 Nov 2013 18:49:26 +0900 Subject: Blender Internal: Fix shader node "Camera Data" that doesn't consider orthographic view. Note that Cycles still needs to fix. --- source/blender/gpu/shaders/gpu_shader_material.glsl | 2 +- source/blender/nodes/shader/nodes/node_shader_camera.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index f5881cdc923..934b81bd63e 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -163,7 +163,7 @@ void camera(vec3 co, out vec3 outview, out float outdepth, out float outdist) { outdepth = abs(co.z); outdist = length(co); - outview = normalize(co); + outview = (gl_ProjectionMatrix[3][3] == 0.0)? normalize(co): vec3(0.0, 0.0, -1.0); } void math_add(float val1, float val2, out float outval) diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.c b/source/blender/nodes/shader/nodes/node_shader_camera.c index d1ff30ef7d1..0f0f191e1e5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_camera.c +++ b/source/blender/nodes/shader/nodes/node_shader_camera.c @@ -46,9 +46,9 @@ static void node_shader_exec_camera(void *data, int UNUSED(thread), bNode *UNUSE if (data) { ShadeInput *shi = ((ShaderCallData *)data)->shi; /* Data we need for shading. */ - copy_v3_v3(out[0]->vec, shi->co); /* get view vector */ + copy_v3_v3(out[0]->vec, shi->view); /* get view vector */ out[1]->vec[0] = fabs(shi->co[2]); /* get view z-depth */ - out[2]->vec[0] = normalize_v3(out[0]->vec); /* get view distance */ + out[2]->vec[0] = len_v3(shi->co); /* get view distance */ } } -- cgit v1.2.3