[Bf-blender-cvs] [739bf14] master: Fix T48533: camera node view vector wrong for Cycles GLSL.

Ralf Hölzemer noreply at git.blender.org
Sat May 28 11:44:31 CEST 2016


Commit: 739bf147a9f6a56a3cdca5dfbaf8c4a6b657bbb3
Author: Ralf Hölzemer
Date:   Sat May 28 11:34:08 2016 +0200
Branches: master
https://developer.blender.org/rB739bf147a9f6a56a3cdca5dfbaf8c4a6b657bbb3

Fix T48533: camera node view vector wrong for Cycles GLSL.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D2033

===================================================================

M	source/blender/nodes/shader/nodes/node_shader_camera.c

===================================================================

diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.c b/source/blender/nodes/shader/nodes/node_shader_camera.c
index 49ebb15..3bdb5c3 100644
--- a/source/blender/nodes/shader/nodes/node_shader_camera.c
+++ b/source/blender/nodes/shader/nodes/node_shader_camera.c
@@ -54,7 +54,15 @@ static void node_shader_exec_camera(void *data, int UNUSED(thread), bNode *UNUSE
 
 static int gpu_shader_camera(GPUMaterial *mat, bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
 {
-	return GPU_stack_link(mat, "camera", in, out, GPU_builtin(GPU_VIEW_POSITION));
+	GPUNodeLink *viewvec;
+
+	viewvec = GPU_builtin(GPU_VIEW_POSITION);
+
+	/* Blender has negative Z, Cycles positive Z convention */
+	if (GPU_material_use_new_shading_nodes(mat))
+		GPU_link(mat, "invert_z", viewvec, &viewvec);
+
+	return GPU_stack_link(mat, "camera", in, out, viewvec);
 }
 
 void register_node_type_sh_camera(void)




More information about the Bf-blender-cvs mailing list