最近接触导入3ds并进行贴图我在网上下了一个FACE的例程。。运行什么的没有问题,,但是把那个3ds文件换成我自己的3ds文件之后贴图就贴不上了。。但是我检查了那个贴图的程序好像也没有什么问题代码如下....
void CreateTexture(UINT textureArray[], LPSTR strFileName, int textureID)
{AUX_RGBImageRec *pBitmap = NULL;
if(!strFileName) // 如果无此文件,则直接返回
return; pBitmap = auxDIBImageLoad("C:/3DS File Loader/滚轮.BMP"); // 装入位图,并保存数据

if(pBitmap == NULL) // 如果装入位图失败,则退出
exit(0); // 生成纹理
glGenTextures(1, &textureArray[textureID]); // 设置像素对齐格式
glPixelStorei (GL_UNPACK_ALIGNMENT, 1); glBindTexture(GL_TEXTURE_2D, textureArray[textureID]); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, pBitmap->sizeX, pBitmap->sizeY, GL_RGB, GL_UNSIGNED_BYTE, pBitmap->data); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR_MIPMAP_LINEAR); if (pBitmap) // 释放位图占用的资源
{
if (pBitmap->data)
{
free(pBitmap->data);
} free(pBitmap);
}  }
我把图片改成256×256.。和128×128都试过了都不行。。还请各路大神帮忙一下在下新手。。分不是很多。。还请见谅。。

解决方案 »

  1.   

    多谢关注!!我也看过用LIB3DS的方法。。也尝试过。。但是下了那个库函数之后。。发现里面的文件太多了。。然后就放弃了
    请问用LIB3DS的话是否也是需要贴图的?
      

  2.   

    你是把自己的3ds文件放在了它的3ds文件目录下么?如果你的3ds文件有单独的纹理图片的话,也是要放到一起去的!
      

  3.   

    感谢关注!!!
    都放在一起了!现在的问题是:我用原来的例子的3ds文件是可以贴上图的。。贴我自己的图也行。。但是用自己的3ds文件却贴不上图。。所以我现在认为是3ds的纹理坐标和本来的3ds文件里面的坐标不匹配的问题。。但是在这方面我是新手。。不知道他们之间的匹配关系是什么。还请帮忙谢谢