[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20921] branches/soc-2009-yukishiro/source /blender/editors/space_view3d/drawobject.c: fix multiple face materials
Jingyuan Huang
jingyuan.huang at gmail.com
Tue Jun 16 08:47:12 CEST 2009
Revision: 20921
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20921
Author: yukishiro
Date: 2009-06-16 08:47:10 +0200 (Tue, 16 Jun 2009)
Log Message:
-----------
fix multiple face materials
Modified Paths:
--------------
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
Modified: branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c 2009-06-16 06:15:16 UTC (rev 20920)
+++ branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c 2009-06-16 06:47:10 UTC (rev 20921)
@@ -2278,7 +2278,7 @@
return 1;
}
-static void calc_sh_vert_color(Object *ob, int index, MShCoeffs *mco, float (*lco)[3], unsigned char *col)
+static void calc_sh_vert_color(Object *ob, int index, int mat_nr, MShCoeffs *mco, float (*lco)[3], unsigned char *col)
{
Mesh *me = ob->data;
Material * mat = NULL;
@@ -2286,15 +2286,14 @@
float brightness[3];
int k;
- // TODO: get face material colour
- if (me->mat) mat = me->mat[0];
+ if (me->mat) mat = me->mat[mat_nr];
if (mat != NULL) {
color[0] = mat->r;
color[1] = mat->g;
color[2] = mat->b;
} else {
- color[0] = color[1] = color[2] = 0.8;
+ color[0] = color[1] = color[2] = 0.8; // TODO: shall I reference def_material?
}
brightness[0] = brightness[1] = brightness[2] = 0;
@@ -2325,11 +2324,11 @@
if (env == NULL) add_lightenv(scene, "LightEnv");
for (i=0; i<totface; i++, mf++) {
- calc_sh_vert_color(ob, mf->v1, mco, env->shcoeffs, &shcol[(i*4 + 0) * 4]);
- calc_sh_vert_color(ob, mf->v2, mco, env->shcoeffs, &shcol[(i*4 + 1) * 4]);
- calc_sh_vert_color(ob, mf->v3, mco, env->shcoeffs, &shcol[(i*4 + 2) * 4]);
+ calc_sh_vert_color(ob, mf->v1, mf->mat_nr, mco, env->shcoeffs, &shcol[(i*4 + 0) * 4]);
+ calc_sh_vert_color(ob, mf->v2, mf->mat_nr, mco, env->shcoeffs, &shcol[(i*4 + 1) * 4]);
+ calc_sh_vert_color(ob, mf->v3, mf->mat_nr, mco, env->shcoeffs, &shcol[(i*4 + 2) * 4]);
if (mf->v4)
- calc_sh_vert_color(ob, mf->v4, mco, env->shcoeffs, &shcol[(i*4 + 3) * 4]);
+ calc_sh_vert_color(ob, mf->v4, mf->mat_nr, mco, env->shcoeffs, &shcol[(i*4 + 3) * 4]);
}
}
More information about the Bf-blender-cvs
mailing list