0

我有一个模型,我在其中存储顶点数据以绘制曲面,一切正常,但顶点的颜色不起作用。

GLfloat ctrlpoints[model->rowCount()][model->columnCount()][3];
for (int i = 0; i < model->columnCount(); ++i) {
    for (int j = 0; j < model->rowCount(); ++j) {
        ctrlpoints[j][i][0]=(float)j/model->columnCount();
        ctrlpoints[j][i][1]=(float)i/model->rowCount();
        ctrlpoints[j][i][2]=(float)model->data(model->index(i,j)).toInt();
    }
}
GLfloat ctrlpointsColor[model->rowCount()][model->columnCount()][4];
for (int i = 0; i < model->columnCount(); ++i) {
    for (int j = 0; j < model->rowCount(); ++j) {
        ctrlpointsColor[j][i][0]=1;
        ctrlpointsColor[j][i][1]=0;
        ctrlpointsColor[j][i][2]=0;
        ctrlpointsColor[j][i][3]=1;
    }
}

glEnable(GL_MAP2_VERTEX_3);
glEnable(GL_MAP2_COLOR_4);
glEnable(GL_AUTO_NORMAL);
glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3*model->columnCount(), model->rowCount(), 0, 1, 3, model->columnCount(), &ctrlpoints[0][0][0]);
glMap2f(GL_MAP2_COLOR_4, 0, 1, 4*model->columnCount(), model->rowCount(), 0, 1, 4, model->columnCount(),&ctrlpointsColor[0][0][0]);
glMapGrid2f(20, 0.0, 1.0, 20, 0.0, 1.0);
glEvalMesh2(GL_FILL, 0, 20, 0, 20);
4

0 回答 0