我对OpenGL很新(实际上并不像没经验那么新),而我要做的第一件事就是编写一个带有.obj文件的代码(现在我和#39; m使用this one)并显示它。 This是我得到的(例如,您可以看到头部部件被映射到躯干,但它完好无损,所以我认为这不是&#39}完全错了。)
(绘制多边形没有问题,所以我只是跳到纹理。)使用我下载的.obj文件,我得到了一些.tga文件,一个.dae文件和一个.mtl文件。我想(如果我错了,请纠正我),因为映射是在.obj文件中描述的,所以我真正需要的是正确的.tga(Stormtrooper_D,在这种特殊情况下)。
至于.tga加载,我遵循NeHe Productions的教程到一定程度,所以我不认为这是我的问题的根源。我正在做的是:
" f 1/2/3 4/5/6 7/8/9"这是一个三角形。 1,4和7是顶点索引。 2,5和8是纹理索引。
我将纹理和顶点保存在它们各自的向量中,以及我从它们的面线中得到的索引。
加载.tga后,我使用以下序列绑定它:
glGenTextures(1,& text.texID);
glBindTexture(GL_TEXTURE_2D,text.texID);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,3,text.width,text.height,0,GL_RGB,GL_UNSIGNED_BYTE,text.imageData);
我用glTexCoord2f绘制它们,然后用glVertex3f绘制三角形的每个顶点。我这样做之前会调用glEnable,当我完成之后我会调用glDisable。
所以我的(第一个?)问题很明显;从我描述的程序来看,有什么显而易见的我做错了吗?我不能完全确定的一件事是我使用正确的文件。或者甚至是他们。我只使用三种.tgas中的一种,而不使用.dae和.mlt。
如果我没有(但应该)披露任何其他信息,请告诉我,我会添加它。