OpenGL显示图片

显示一个正方形位图文件pictest.bmp。
举例:
 LoadT8("images/pictest.bmp", iTex);
 glTranslatef(0,0,-10);
 texture(iTex); 
 tPic(3.0f);

 

附:各个函数的源码:
//绘制正方形
void tPic(float e)
{
 glBegin(GL_QUADS);
  glTexCoord2f(0.0f, 0.0f); glVertex3f(-e, -e,  0.0f);
  glTexCoord2f(1.0f, 0.0f); glVertex3f( e, -e,  0.0f);
  glTexCoord2f(1.0f, 1.0f); glVertex3f( e,  e,  0.0f);
  glTexCoord2f(0.0f, 1.0f); glVertex3f(-e,  e,  0.0f);
 glEnd();
}
//加载位图
bool LoadT8(char *filename, GLuint &texture)

 AUX_RGBImageRec *pImage = NULL;
 
 //加载图片内容
 pImage = auxDIBImageLoad(filename); 
 if(pImage == NULL) 
  return false;
 
 //创建纹理
 glGenTextures(1, &texture);  
 glBindTexture    (GL_TEXTURE_2D,texture);
 //生成2维映射
 gluBuild2DMipmaps(GL_TEXTURE_2D,4, 
       pImage->sizeX,   
       pImage->sizeY, 
       GL_RGB, GL_UNSIGNED_BYTE,
       pImage->data   
      );
 //释放内存
 free(pImage->data);     
 free(pImage); 
 return true;     
}
//绑定纹理
void texture(UINT textur)
{
 //绑定纹理
 glBindTexture  (GL_TEXTURE_2D, textur);
 //指定贴图方式和滤波方式
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,

GL_LINEAR_MIPMAP_NEAREST);
}
(感谢《学OPENGL编3D游戏》课件 来自www.gameres.com

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值