[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