[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