[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11316] branches/soc-2007-maike/source/ blender: Just some changes to texture generation

Miguel Torres Lima torreslima at gmail.com
Thu Jul 19 16:45:27 CEST 2007


Revision: 11316
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11316
Author:   maike
Date:     2007-07-19 16:45:27 +0200 (Thu, 19 Jul 2007)

Log Message:
-----------
Just some changes to texture generation

Modified Paths:
--------------
    branches/soc-2007-maike/source/blender/include/BIF_glsl_colorband.h
    branches/soc-2007-maike/source/blender/src/glsl_colorband.c
    branches/soc-2007-maike/source/blender/src/glsl_colorband_node.c
    branches/soc-2007-maike/source/blender/src/glsl_drawobject.c
    branches/soc-2007-maike/source/blender/src/glsl_uniforms.c

Modified: branches/soc-2007-maike/source/blender/include/BIF_glsl_colorband.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_colorband.h	2007-07-19 14:28:57 UTC (rev 11315)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_colorband.h	2007-07-19 14:45:27 UTC (rev 11316)
@@ -34,4 +34,4 @@
 void glsl_colorband_add(struct Material *mat, struct GLSL_Material_ *material, int type);
 void glsl_colorband_del(struct GLSL_Material_ *material, int type);
 void glsl_colorband_create_tex(struct Material *mat);
-void glsl_colorband_generate_tex(GLSL_ColorBand colorband);
+void glsl_colorband_generate_tex(GLSL_ColorBand colorband, short type);

Modified: branches/soc-2007-maike/source/blender/src/glsl_colorband.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_colorband.c	2007-07-19 14:28:57 UTC (rev 11315)
+++ branches/soc-2007-maike/source/blender/src/glsl_colorband.c	2007-07-19 14:45:27 UTC (rev 11316)
@@ -150,16 +150,16 @@
 
   if(!material) return;
 
-  if(!mat->ramp_show)  glsl_colorband_generate_tex(material->diff_ramp);
-  else  glsl_colorband_generate_tex(material->spec_ramp);
+  if(!mat->ramp_show)  glsl_colorband_generate_tex(material->diff_ramp, 0);
+  else  glsl_colorband_generate_tex(material->spec_ramp, 1);
 
   printf("\nGLSL ColorBand texture created\n");
 }
 
 
-void glsl_colorband_generate_tex(GLSL_ColorBand colorband)
+void glsl_colorband_generate_tex(GLSL_ColorBand colorband, short type)
 {  
-  GLubyte cb_tex[COLORBAND_WIDTH][4];
+  float cb_tex[COLORBAND_WIDTH][4];
   GLuint tex_name;
   float texels[4];
   ColorBand *cb = colorband->colorband;
@@ -174,15 +174,23 @@
     cb_tex[i][1] = texels[1];
     cb_tex[i][2] = texels[2];
     cb_tex[i][3] = texels[3];
+
+    printf("\n texels %d: %f, %f, %f, %f\n", i, cb_tex[i][0], cb_tex[i][1], cb_tex[i][2], cb_tex[i][3]);
   }
 
   glEnable(GL_TEXTURE_1D);
-  glActiveTexture(GL_TEXTURE0);
+
+  /*switch(type)
+    {
+    case 0: glActiveTexture(GL_TEXTURE0); break;
+    case 1: glActiveTexture(GL_TEXTURE1); break;
+    }*/
+
   glGenTextures(1, &tex_name);
+  glActiveTexture(GL_TEXTURE0 + tex_name);
   glBindTexture(GL_TEXTURE_1D, tex_name);
   colorband->texid = tex_name;
   glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, COLORBAND_WIDTH, 0, GL_RGBA, GL_UNSIGNED_BYTE, cb_tex);
-  glDisable(GL_TEXTURE_1D);
 
   colorband->tex_set = 1;
 }

Modified: branches/soc-2007-maike/source/blender/src/glsl_colorband_node.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_colorband_node.c	2007-07-19 14:28:57 UTC (rev 11315)
+++ branches/soc-2007-maike/source/blender/src/glsl_colorband_node.c	2007-07-19 14:45:27 UTC (rev 11316)
@@ -201,6 +201,5 @@
   if(!code)
     return "";
 
-  printf("\n%s\n", code);
   return code;
 }

Modified: branches/soc-2007-maike/source/blender/src/glsl_drawobject.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_drawobject.c	2007-07-19 14:28:57 UTC (rev 11315)
+++ branches/soc-2007-maike/source/blender/src/glsl_drawobject.c	2007-07-19 14:45:27 UTC (rev 11316)
@@ -32,6 +32,7 @@
 #include "BIF_glsl_util.h"
 #include "BIF_gl.h"
 #include "BIF_glsl_drawobject.h"
+#include "BIF_glsl_colorband.h"
 
 #include "BSE_view.h"
 
@@ -41,7 +42,10 @@
 
 #include "MTC_matrixops.h"
 
+#include "BLI_ghash.h"
+
 extern struct Material defmaterial;
+extern GHash *matHash;
 
 static float active_color[4] = { -1, -1, -1 };
 static float selected_color[4] = { -1, -1, -1 };
@@ -358,6 +362,22 @@
     if(!oldmat || mat != oldmat){
       if(!mat)
 	mat = &defmaterial;
+      else{
+	GLSL_Material material = BLI_ghash_lookup(matHash, mat);
+	if(material->diff_ramp){
+	  GLSL_ColorBand colorband = material->diff_ramp;
+	  glEnable(GL_TEXTURE_1D);
+	  glActiveTexture(GL_TEXTURE0 + colorband->texid);
+	  glBindTexture(GL_TEXTURE_1D, colorband->texid);
+	  
+	}
+	if(material->spec_ramp){
+	  GLSL_ColorBand colorband = material->spec_ramp;
+	  glEnable(GL_TEXTURE_1D);
+	  glActiveTexture(GL_TEXTURE1);
+	  glBindTexture(GL_TEXTURE_1D, colorband->texid);
+	}
+      }
 
       glColor4f(mat->r, mat->g, mat->b, mat->alpha);
       

Modified: branches/soc-2007-maike/source/blender/src/glsl_uniforms.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_uniforms.c	2007-07-19 14:28:57 UTC (rev 11315)
+++ branches/soc-2007-maike/source/blender/src/glsl_uniforms.c	2007-07-19 14:45:27 UTC (rev 11316)
@@ -371,7 +371,9 @@
     glUniform1i(glsl_uniform_location(program, diff_tex), colorband->texid);
     glActiveTexture(GL_TEXTURE0);
     glBindTexture(GL_TEXTURE_1D, colorband->texid);
+    
     printf("\n colband tex id:%d\n", colorband->texid);
+    
     MEM_freeN(diff_fac);     
     MEM_freeN(diff_tex);
     printf("\nGLSL Diffuse Colorband Uniform sent\n");
@@ -384,7 +386,10 @@
     spec_tex = glsl_string(5, 0, "u_mat_", GINT, index, 0, "_ramp_", GINT, 1, 0, "_tex");
     glUniform1i(glsl_uniform_location(program, spec_tex), colorband->texid);
     glActiveTexture(GL_TEXTURE1);
-    glBindTexture(GL_TEXTURE_1D, colorband->texid);    printf("\n colband tex id:%d\n", colorband->texid);
+    glBindTexture(GL_TEXTURE_1D, colorband->texid);    
+    
+    printf("\n colband tex id:%d\n", colorband->texid);
+
     MEM_freeN(spec_fac);
     MEM_freeN(spec_tex);
     printf("\nGLSL Specular Colorband Uniform sent\n");





More information about the Bf-blender-cvs mailing list