[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51401] trunk/blender/source/blender: Fix #32903: bring cycles glsl up to date with latest changes.

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Oct 18 14:37:51 CEST 2012


Revision: 51401
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51401
Author:   blendix
Date:     2012-10-18 12:37:51 +0000 (Thu, 18 Oct 2012)
Log Message:
-----------
Fix #32903: bring cycles glsl up to date with latest changes.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/shaders/gpu_shader_material.glsl
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c

Modified: trunk/blender/source/blender/gpu/shaders/gpu_shader_material.glsl
===================================================================
--- trunk/blender/source/blender/gpu/shaders/gpu_shader_material.glsl	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/gpu/shaders/gpu_shader_material.glsl	2012-10-18 12:37:51 UTC (rev 51401)
@@ -1992,7 +1992,7 @@
 	result = vec4(L*color.rgb, 1.0);
 }
 
-void node_bsdf_glossy(vec4 color, float roughness, vec3 N, vec3 I, out vec4 result)
+void node_bsdf_glossy(vec4 color, float roughness, vec3 N, out vec4 result)
 {
 	/* ambient light */
 	vec3 L = vec3(0.2);
@@ -2013,12 +2013,12 @@
 	result = vec4(L*color.rgb, 1.0);
 }
 
-void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 N, vec3 I, out vec4 result)
+void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 N, vec3 T, out vec4 result)
 {
 	node_bsdf_diffuse(color, 0.0, N, result);
 }
 
-void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, vec3 I, out vec4 result)
+void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, out vec4 result)
 {
 	node_bsdf_diffuse(color, 0.0, N, result);
 }
@@ -2195,7 +2195,8 @@
 	out float is_glossy_ray,
 	out float is_singular_ray,
 	out float is_reflection_ray,
-	out float is_transmission_ray)
+	out float is_transmission_ray,
+	out float ray_length)
 {
 	is_camera_ray = 1.0;
 	is_shadow_ray = 0.0;
@@ -2204,6 +2205,7 @@
 	is_singular_ray = 0.0;
 	is_reflection_ray = 0.0;
 	is_transmission_ray = 0.0;
+	ray_length = 1.0;
 }
 
 void node_light_falloff(float strength, float tsmooth, out float quadratic, out float linear, out float constant)
@@ -2221,6 +2223,10 @@
 	random = 0.0;
 }
 
+void node_bump(float strength, float height, vec3 N, out vec3 result)
+{
+	result = N;
+}
 
 /* output */
 

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -45,7 +45,10 @@
 
 static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
 {
-	return GPU_stack_link(mat, "node_bsdf_anisotropic", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION));
+	if(!in[3].link)
+		in[3].link = GPU_builtin(GPU_VIEW_NORMAL);
+
+	return GPU_stack_link(mat, "node_bsdf_anisotropic", in, out);
 }
 
 /* node type definition */

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -43,7 +43,10 @@
 
 static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
 {
-	return GPU_stack_link(mat, "node_bsdf_diffuse", in, out, GPU_builtin(GPU_VIEW_NORMAL));
+	if(!in[2].link)
+		in[2].link = GPU_builtin(GPU_VIEW_NORMAL);
+
+	return GPU_stack_link(mat, "node_bsdf_diffuse", in, out);
 }
 
 /* node type definition */

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -44,7 +44,10 @@
 
 static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
 {
-	return GPU_stack_link(mat, "node_bsdf_glass", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION));
+	if(!in[3].link)
+		in[3].link = GPU_builtin(GPU_VIEW_NORMAL);
+
+	return GPU_stack_link(mat, "node_bsdf_glass", in, out);
 }
 
 /* node type definition */

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -43,8 +43,10 @@
 
 static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
 {
-	/* todo: is incoming vector normalized? */
-	return GPU_stack_link(mat, "node_bsdf_glossy", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION));
+	if(!in[2].link)
+		in[2].link = GPU_builtin(GPU_VIEW_NORMAL);
+
+	return GPU_stack_link(mat, "node_bsdf_glossy", in, out);
 }
 
 /* node type definition */

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -42,7 +42,10 @@
 
 static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
 {
-	return GPU_stack_link(mat, "node_bsdf_translucent", in, out, GPU_builtin(GPU_VIEW_NORMAL));
+	if(!in[1].link)
+		in[1].link = GPU_builtin(GPU_VIEW_NORMAL);
+
+	return GPU_stack_link(mat, "node_bsdf_translucent", in, out);
 }
 
 /* node type definition */

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -43,7 +43,10 @@
 
 static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
 {
-	return GPU_stack_link(mat, "node_bsdf_velvet", in, out, GPU_builtin(GPU_VIEW_NORMAL));
+	if(!in[2].link)
+		in[2].link = GPU_builtin(GPU_VIEW_NORMAL);
+
+	return GPU_stack_link(mat, "node_bsdf_velvet", in, out);
 }
 
 /* node type definition */

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c	2012-10-18 12:29:22 UTC (rev 51400)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c	2012-10-18 12:37:51 UTC (rev 51401)
@@ -46,6 +46,10 @@
 	{ -1, 0, "" } 
 };
 
+static int gpu_shader_bump(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out)
+{
+	return GPU_stack_link(mat, "node_bump", in, out, GPU_builtin(GPU_VIEW_NORMAL));
+}
 
 /* node type definition */
 void register_node_type_sh_bump(bNodeTreeType *ttype)
@@ -58,6 +62,7 @@
 	node_type_size(&ntype, 150, 60, 200);
 	node_type_storage(&ntype, "BumpNode", node_free_standard_storage, node_copy_standard_storage);
 	node_type_exec(&ntype, NULL);
+	node_type_gpu(&ntype, gpu_shader_bump);
 
 	nodeRegisterType(ttype, &ntype);
 }




More information about the Bf-blender-cvs mailing list