2011-11-19 106 views
0

我在OpenGL下面的一段代码:加载对象没有颜色

...main render scene... 
glPushMatrix(); 
    glEnable(GL_TEXTURE_2D); 
    glRotatef(90,1,0,0); 
    drawModel(teapotModel,"teapot.obj",GLM_NONE|GLM_FLAT); 
    glDisable(GL_TEXTURE_2D); 
glPopMatrix(); 

其中teapot.obj是在3ds Max制成并导出为obj文件的文件。 绘图函数为:

void drawModel(GLMmodel *pmodel,char*filename,GLuint mode) 
{ 
    if(!pmodel) 
    { 
     pmodel=glmReadOBJ(filename); 
     if(!pmodel) 
      exit(0); 
     glmUnitize(pmodel); 
     //generate facet normal vectors for model 
     glmFacetNormals(pmodel); 
     //generate vertex normal vectors (called after generating facet normals) 
     glmVertexNormals(pmodel,90.0); 
    } 
    glmDraw(pmodel,mode); 
} 

当运行该示例中,它正确地呈现茶壶对象,但是它的颜色为白色(在3ds Max设计为当它有一个蓝色)。 我能做些什么来呈现对象及其颜色?

+0

是否将分配的材料保存到文件中?它是否被加载? – Bart

+5

仅供参考:此代码每帧加载模型。除非你在别的地方加载它,在这种情况下,在这个'drawModel'函数中加载它没有意义。如果你的函数叫做“draw”,那么你的绘图就是错误的。专家提示。 –

+0

对于每一帧加载模型都是正确的。我使用“init”方法初始化模型。斯蒂尔,模型有白色,而不是蓝色。我没有在其他地方加载模型。 –

回答

0

尝试在模式参数上添加GLM_COLOR/GLM_MATERIAL。