From 8006b3fc736701c7efc34aac7079e415ffa7b2e2 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 30 Jun 2009 05:59:22 +0000 Subject: [PATCH] Changes from Fei Wang to support vertex colors --- pandatool/src/maxegg/maxToEggConverter.cxx | 20 +++++++++++++++++++- pandatool/src/maxegg/maxToEggConverter.h | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pandatool/src/maxegg/maxToEggConverter.cxx b/pandatool/src/maxegg/maxToEggConverter.cxx index e4177c5d7f..10c9dc0c7d 100755 --- a/pandatool/src/maxegg/maxToEggConverter.cxx +++ b/pandatool/src/maxegg/maxToEggConverter.cxx @@ -655,6 +655,13 @@ make_polyset(INode *max_node, Mesh *mesh, n3d = n3d * vertex_frame; vert.set_normal(n3d); + // Get the vertex color + if(mesh->vcFace) { // if has vcFace, has used vertex color + VertColor vertexColor = get_max_vertex_color(mesh, iFace, iVertex); + Colorf pVC(vertexColor.x, vertexColor.y, vertexColor.z, 1); + vert.set_color(pVC); + } + // Get the UVs for this vertex for (int iChan=0; iChanvcFace[FaceNo]; + // Get its index into the vertCol array + int VertexColorIndex = _vcface.t[VertexNo]; + // Get its color + vc = mesh->vertCol[VertexColorIndex]; + return vc; +} + Point3 MaxToEggConverter::get_max_vertex_normal(Mesh *mesh, int faceNo, int vertNo) { Face f = mesh->faces[faceNo]; diff --git a/pandatool/src/maxegg/maxToEggConverter.h b/pandatool/src/maxegg/maxToEggConverter.h index e24f7ec89f..397681e1b0 100755 --- a/pandatool/src/maxegg/maxToEggConverter.h +++ b/pandatool/src/maxegg/maxToEggConverter.h @@ -86,6 +86,7 @@ class MaxToEggConverter { Shader *default_shader = NULL); Point3 get_max_vertex_normal(Mesh *mesh, int faceNo, int vertNo); + VertColor get_max_vertex_color(Mesh *mesh, int FaceNo, int VertexNo); UVVert get_max_vertex_texcoord(Mesh *mesh, int faceNo, int vertNo, int channel); void get_vertex_weights(INode *max_node, EggVertexPool *vpool);