游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3831|回复: 2

请教 OPENGL中纹理贴图问题~

[复制链接]

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2007-11-25 16:24:00 | 显示全部楼层 |阅读模式
请大家帮我看看问题出在哪?
下边是浩淼同学的一段程序,我想研究一下并修改自己使用,但执行过 File=fopen(Filename,"r");  这的时候我发现File指针的值还是0x00000000,初步判断为文件打开失败,我想打开的文件是自己修改的一个bmp格式的、大小为64*64像素的图片,不知道问题出在哪?
请明白的人帮我看一下,在这里十分的感谢~~



int CMubanView:oadGLTextures()
{
       int Status=FALSE;   //状态参数跟踪是否能够载入位图以及能否创建纹理
       AUX_RGBImageRec* TextureImage[1];        //设置纹理数组
       memset(TextureImage,0,sizeof(void*)*1);  //清除图像记录,将指针设置为NULL
       if (TextureImage[0]=LoadBMP("it.bmp"))  //载入位图
       {
              Status=TRUE;
              glGenTextures(1,&m_texture[0]);  //创建纹理
              
              glBindTexture(GL_TEXTURE_2D,m_texture[0]);      //根据来自位图的数据创建NEAREST纹理
              glTexImage2D(GL_TEXTURE_2D,                     //产生的是2D纹理
                     0,                                        //图像的详细程度,一般为0
                     3,                                    //图像的成分,为RGB
                     TextureImage[0]->sizeX/2,             //图像宽
                     TextureImage[0]->sizeY/2,              //图像高
                     0,                                     //图像边框
                     GL_RGB,                                //图像是RGB三色组成
                     GL_UNSIGNED_BYTE,                      //图像数据是无符号字节类型
                     TextureImage[0]->data);                 //图像数据来源
              
              //采用GL_LINEAR使得纹理从很远处到离屏幕很近时都平滑显示
              glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // 线形滤波
              glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); // 线形滤波

       return Status;
}

AUX_RGBImageRec* CMubanView::LoadBMP(char *Filename)
{
       FILE *File=NULL;
       if (!Filename)               //文件名是否存在(判断结果---文件名是存在的)
       {
              return NULL;
       }
       File=fopen(Filename,"r");    //读取文件
       if (File)                      //文件读取成功
       {            
              fclose(File);                  //关闭文件流
              return auxDIBImageLoad(Filename); //载入位图并返回指针
       }
       return NULL;
}                 [em4]

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2007-11-25 19:09:00 | 显示全部楼层

Re:请教 OPENGL中纹理贴图问题~

解决了~换了下图片的大小~~

0

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2007-12-6 01:36:00 | 显示全部楼层

Re:请教 OPENGL中纹理贴图问题~

遇过类似的问题……不过我的是把文件名字取错了-_-|||,看来除了问题不光要只盯着代码看呢,很可能是其他的细节问题漏掉了~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 19:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表