[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