Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorIRIE Shinsuke <irieshinsuke@yahoo.co.jp>2013-11-24 13:49:26 +0400
committerIRIE Shinsuke <irieshinsuke@yahoo.co.jp>2013-11-24 13:56:19 +0400
commit0c7d2de38219641fc41d468eec675933e26a3602 (patch)
tree99f9d597fd9d33b92f9dc1bb3f8ed013322cbc01 /source
parentddb3ad9092f245564f3d031050c7aedfd8270cbf (diff)
Blender Internal: Fix shader node "Camera Data" that doesn't consider orthographic view.
Note that Cycles still needs to fix.
Diffstat (limited to 'source')
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_camera.c4
2 files changed, 3 insertions, 3 deletions
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 */
}
}