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设计为当它有一个蓝色)。 我能做些什么来呈现对象及其颜色?
是否将分配的材料保存到文件中?它是否被加载? – Bart
仅供参考:此代码每帧加载模型。除非你在别的地方加载它,在这种情况下,在这个'drawModel'函数中加载它没有意义。如果你的函数叫做“draw”,那么你的绘图就是错误的。专家提示。 –
对于每一帧加载模型都是正确的。我使用“init”方法初始化模型。斯蒂尔,模型有白色,而不是蓝色。我没有在其他地方加载模型。 –