[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58427] trunk/blender/source/blender/gpu/ intern/gpu_material.c: BGE fix [#35195] Shadow Only lamps only work with Specular enabled

Daniel Stokes kupomail at gmail.com
Sat Jul 20 01:00:42 CEST 2013


Revision: 58427
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58427
Author:   kupoman
Date:     2013-07-19 23:00:42 +0000 (Fri, 19 Jul 2013)
Log Message:
-----------
BGE fix [#35195] Shadow Only lamps only work with Specular enabled

The way we do shadow only doesn't work well with colored shadows, though it does work if you apply enough light to the shadow.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/intern/gpu_material.c

Modified: trunk/blender/source/blender/gpu/intern/gpu_material.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_material.c	2013-07-19 22:56:54 UTC (rev 58426)
+++ trunk/blender/source/blender/gpu/intern/gpu_material.c	2013-07-19 23:00:42 UTC (rev 58427)
@@ -742,12 +742,16 @@
 			}
 			
 			if (lamp->mode & LA_ONLYSHADOW) {
+				GPUNodeLink *rgb;
 				GPU_link(mat, "shade_only_shadow", i, shadfac,
 					GPU_dynamic_uniform(&lamp->dynenergy, GPU_DYNAMIC_LAMP_DYNENERGY, lamp->ob), &shadfac);
+
+				GPU_link(mat, "shade_mul", shi->rgb, GPU_uniform(lamp->shadow_color), &rgb);
+				GPU_link(mat, "mtex_rgb_invert", rgb, &rgb);
 				
 				if (!(lamp->mode & LA_NO_DIFF)) {
-					GPU_link(mat, "mix_mult", shadfac, shr->diff,
-						GPU_uniform(lamp->shadow_color), &shr->diff);
+					GPU_link(mat, "shade_only_shadow_diffuse", shadfac, rgb,
+						shr->diff, &shr->diff);
 				}
 
 				if (!(lamp->mode & LA_NO_SPEC))




More information about the Bf-blender-cvs mailing list