[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55361] branches/ge_harmony/source/blender /gpu: Modifying the prepass shader to make use of the material lib shader.

Daniel Stokes kupomail at gmail.com
Sun Mar 17 20:23:51 CET 2013


Revision: 55361
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55361
Author:   kupoman
Date:     2013-03-17 19:23:51 +0000 (Sun, 17 Mar 2013)
Log Message:
-----------
Modifying the prepass shader to make use of the material lib shader.

Modified Paths:
--------------
    branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
    branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl

Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c	2013-03-17 19:13:04 UTC (rev 55360)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c	2013-03-17 19:23:51 UTC (rev 55361)
@@ -1596,8 +1596,12 @@
 			retval = GG.shaders.light;
 			break;
 		case GPU_SHADER_PREPASS:
-			if (!GG.shaders.prepass)
-				GG.shaders.prepass = GPU_shader_create(datatoc_gpu_shader_prepass_vert_glsl, datatoc_gpu_shader_prepass_frag_glsl, NULL, NULL, 0, 0);
+			if (!GG.shaders.prepass) {
+				char *frag = MEM_mallocN(strlen(datatoc_gpu_shader_prepass_frag_glsl) + strlen(datatoc_gpu_shader_material_glsl) + 1, "Prepass fragment shader");
+				sprintf(frag, "%s%s", datatoc_gpu_shader_material_glsl, datatoc_gpu_shader_prepass_frag_glsl);
+				GG.shaders.prepass = GPU_shader_create(datatoc_gpu_shader_prepass_vert_glsl, frag, NULL, NULL, 0, 0);
+				MEM_freeN(frag);
+			}
 			retval = GG.shaders.prepass;
 			break;
 	}

Modified: branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl
===================================================================
--- branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl	2013-03-17 19:13:04 UTC (rev 55360)
+++ branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl	2013-03-17 19:23:51 UTC (rev 55361)
@@ -30,16 +30,9 @@
 	vec3 data, B;
 	for (; i < MAX_TEX; i++) {
 		if (bgl_Textures[i].enabled) {
-			data = texture2D(bgl_Textures[i].data, varuv[i].xy).rgb;
-			data = 2.0*(data - vec3(0.5, 0.5, 0.5));
-
-			B = vartangent.w * cross(varnormal, vartangent.xyz);
-			data = data.x*vartangent.xyz + data.y*B + data.z*varnormal;
-			data = normalize(data);
-
-			normal = data;
-			normal = mix(normal, data, 1.0);
-			normal = normalize(normal);
+			mtex_normal(varuv[i].xyz, bgl_Textures[i].data, data);
+			mtex_nspace_tangent(vartangent, normal, data, data);
+			mtex_blend_normal(1.0, normal, data, normal);
 		}
 	}
 




More information about the Bf-blender-cvs mailing list