[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11658] branches/soc-2007-maike/source/ blender/src: Area light specularity bugfix

Miguel Torres Lima torreslima at gmail.com
Sat Aug 18 17:51:21 CEST 2007


Revision: 11658
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11658
Author:   maike
Date:     2007-08-18 17:51:21 +0200 (Sat, 18 Aug 2007)

Log Message:
-----------
Area light specularity bugfix

Modified Paths:
--------------
    branches/soc-2007-maike/source/blender/src/glsl_material_node.c
    branches/soc-2007-maike/source/blender/src/glsl_node_util.c

Modified: branches/soc-2007-maike/source/blender/src/glsl_material_node.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_material_node.c	2007-08-18 15:49:09 UTC (rev 11657)
+++ branches/soc-2007-maike/source/blender/src/glsl_material_node.c	2007-08-18 15:51:21 UTC (rev 11658)
@@ -218,6 +218,10 @@
       light_cycle = glsl_string(2,
 				GFREE, light_cycle, 0, "\n#define HEMI 1\n");
     
+    else if(lamp->type == LA_AREA)
+      light_cycle = glsl_string(2,
+				GFREE, light_cycle, 0, "\n#define AREA 1\n");
+
     if(!(lamp->mode & LA_NO_DIFF) || !(lamp->mode & LA_NO_SPEC)){
       light_cycle = glsl_string(2, 
 				GFREE, light_cycle, 
@@ -261,8 +265,8 @@
   visibility = glsl_visibility_func(vis);
   if(visibility && strcmp(visibility, "") != 0)
     code = glsl_string(2, 
-		       GFREE, code, 
-		       GFREE, visibility);
+		       GFREE, visibility, 
+		       GFREE, code);
   else if(!visibility){
     if(code)
       MEM_freeN(code);
@@ -397,6 +401,7 @@
 
   if(visibility & GLSL_AREA){
     area = glsl_get_func("area_visibility.gsl");
+    area = glsl_string(2, GFREE, area, GFREE, glsl_get_func("area_energy.gsl"));
   }
 
   code = glsl_string(5,

Modified: branches/soc-2007-maike/source/blender/src/glsl_node_util.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_node_util.c	2007-08-18 15:49:09 UTC (rev 11657)
+++ branches/soc-2007-maike/source/blender/src/glsl_node_util.c	2007-08-18 15:51:21 UTC (rev 11658)
@@ -164,8 +164,9 @@
 
 char *glsl_declare_lightstruct(int num)
 {
-  char *defines = glsl_string(3, 
-			      0, "uniform light lights[", GINT, num?num:1, 0, "];\n");
+  char *defines = glsl_string(4, 
+			      0, "uniform light lights[", GINT, num?num:1, 0, "];\n",
+			      0, "float area_energy(light l, vec3 vnormal);\n");
 
   return defines;
 }
@@ -177,7 +178,7 @@
 
   char *main_func = { 
     "void main(void){ "
-    " vec3 norm = normalize(normal);"
+    " vec3 norm = normal;"
     " vec3 diff_color = realcolor.xyz;"
     " vec3 spec_color = u_mat_0_spec_color;"
 





More information about the Bf-blender-cvs mailing list