[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11513] branches/soc-2007-maike: GLSL material generic functions changes for tangent vector ( not yet implemented)

Miguel Torres Lima torreslima at gmail.com
Tue Aug 7 16:42:02 CEST 2007


Revision: 11513
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11513
Author:   maike
Date:     2007-08-07 16:42:02 +0200 (Tue, 07 Aug 2007)

Log Message:
-----------
GLSL material generic functions changes for tangent vector (not yet implemented)
Updated forgotten header file

Modified Paths:
--------------
    branches/soc-2007-maike/release/glsl/light_calc.gsl
    branches/soc-2007-maike/release/glsl/material.gsl
    branches/soc-2007-maike/source/blender/include/BIF_glsl_drawobject.h

Modified: branches/soc-2007-maike/release/glsl/light_calc.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/light_calc.gsl	2007-08-07 13:20:46 UTC (rev 11512)
+++ branches/soc-2007-maike/release/glsl/light_calc.gsl	2007-08-07 14:42:02 UTC (rev 11513)
@@ -6,9 +6,9 @@
 #ifdef LIGHT_ID
 #ifdef DIFF_CB_TYPE
 #ifdef HEMI
-rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal);
+rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], norm);
 #else
-rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal, diff2, diff3);
+rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], norm, diff2, diff3);
 #endif
 #if DIFF_CB_TYPE == 0
 diff_fac = rslt1;
@@ -23,9 +23,9 @@
 diff_rslt += DIFF_CB_BLEND_FUNC(diff_cb.rgb, diff_color, DIFF_CB_FAC * diff_cb.a) * rslt1 * diff1 * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * vis * lights[LIGHT_ID].energy;
 #else
 #ifdef HEMI
-diff_rslt+= (DIFF_SHADER_ID(lights[LIGHT_ID], normal) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis);
+diff_rslt+= (DIFF_SHADER_ID(lights[LIGHT_ID], norm) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis);
 #else
-diff_rslt+= (DIFF_SHADER_ID(lights[LIGHT_ID], normal, diff2, diff3) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis);
+diff_rslt+= (DIFF_SHADER_ID(lights[LIGHT_ID], norm, diff2, diff3) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis);
 #endif
 #endif
 #endif

Modified: branches/soc-2007-maike/release/glsl/material.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/material.gsl	2007-08-07 13:20:46 UTC (rev 11512)
+++ branches/soc-2007-maike/release/glsl/material.gsl	2007-08-07 14:42:02 UTC (rev 11513)
@@ -1,4 +1,4 @@
-vec3 MATERIAL_FUNC(inout vec3 diff_color, inout vec3 spec_color, inout vec3 normal, inout float alpha, float diff1, float diff2, float diff3, float spec1, float spec2, float spec3, float amb_fac, float emit, int hard){
+vec3 MATERIAL_FUNC(inout vec3 diff_color, inout vec3 spec_color, inout vec3 normal, inout float alpha, float diff1, float diff2, float diff3, float spec1, float spec2, float spec3, float amb_fac, float emit, float hard, float tanv){
   vec3 diff_rslt = vec3(0.0, 0.0, 0.0);
   vec3 spec_rslt = vec3(0.0, 0.0, 0.0);
   vec3 amb_rslt = amb_color * amb_fac;
@@ -6,3 +6,8 @@
   vec4 diff_cb, spec_cb;
   float diff_cb_res = 0.0;
   float spec_cb_res = 0.0;
+  vec3 norm = normal;
+
+  if(tanv > 0.0){
+    norm = -(cross(cross(eye - pos, normal), normal));
+  }

Modified: branches/soc-2007-maike/source/blender/include/BIF_glsl_drawobject.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_drawobject.h	2007-08-07 13:20:46 UTC (rev 11512)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_drawobject.h	2007-08-07 14:42:02 UTC (rev 11513)
@@ -5,6 +5,7 @@
 struct Object;
 struct MFace;
 struct MVert;
+struct DispList;
 
 /* ----------------------------------------------------------------------------- */
 
@@ -40,8 +41,10 @@
 
 void create_vertex(struct Object *obj, struct MVert *vert, int index, int flag);
 void glsl_draw(struct Object *ob, int flag);
+void glsl_draw_curve(struct Base *base);
 void glsl_draw_mball(struct Base *base);
-void glsl_shadeDispList(struct Base *base);
+
+void glsl_draw_dispList(struct Object *ob, struct DispList *dl);
 void glsl_set_outline_colors(void);
 void glsl_draw_outline(struct Object *ob, int flag, struct MFace *face, int num, struct MVert *vert);
 void glsl_draw_mesh_selected_outline(struct MFace *face, int num, struct MVert *vert);





More information about the Bf-blender-cvs mailing list