glTexImage2D()和gluBuild2DMipmaps()和glTexParameteri()纹理过滤函数

glTexImage2D()和gluBuild2DMipmaps()

说明:两者的都是生成纹理,即:将载入的位图文件(*.bmp)转换成纹理贴图。

glTexImage2D()的用法举例

glTexImage2D(GL_TEXTURE_2D, //此纹理是一个2D纹理
0,                                         //代表图像的详细程度, 默认为0即可
3,                                         //颜色成分R(红色分量)、G(绿色分量)、B(蓝色分量)三部分,若为4则是R(红色分量)、G(绿色分量)、B(蓝色分量)、Alpha
TextureImage[0]->sizeX,          //纹理的宽度
TextureImage[0]->sizeY,          //纹理的高度
0,                                         //边框的值
GL_RGB,                                 //告诉OpenGL图像数据由红、绿、蓝三色数据组成
GL_UNSIGNED_BYTE,                //组成图像的数据是无符号字节类型
TextureImage[0]->data);          //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据

gluBuild2DMipmaps()的用法举例

gluBuild2DMipmaps(GL_TEXTURE_2D,//此纹理是一个2D纹理
3,                                              //颜色成分R(红色分量)、G(绿色分量)、B(蓝色分量)三部分,若为4则是R(红色分量)、G(绿色分量)、B(蓝色分量)、Alpha
TextureImage[0]->sizeX,               //纹理的宽度
TextureImage[0]->sizeY,               //纹理的高度
GL_RGB,                                     //告诉OpenGL图像数据由红、绿、蓝三色数据组成
GL_UNSIGNED_BYTE,                    //组成图像的数据是无符号字节类型
TextureImage[0]->data);              //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据

使用注意事项

使用glTexImage2D()时所采用的位图文件分辨率必须为:64×64、128×128、256×256三种格式,如果其他大小则会出现绘制不正常。

gluBuild2DMipmaps()支持任意分辨率位图文件。

glTexParameteri()纹理过滤函数

glTexParameteri()纹理过滤函数.
图象从纹理图象空间映射到帧缓冲图象空间(映射需要重新构造纹理图像,这样就会造成应用到多边形上的图像失真),
这时就可用glTexParmeteri()函数来确定如何把纹理象素映射成像素.
你这里的参数功能说明如下:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
GL_TEXTURE_2D: 操作2D纹理.
GL_TEXTURE_WRAP_S: S方向上的贴图模式.
GL_CLAMP: 将纹理坐标限制在0.0,1.0的范围之内.如果超出了会如何呢.不会错误,只是会边缘拉伸填充.
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
这里同上,只是它是T方向
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
这是纹理过滤
GL_TEXTURE_MAG_FILTER: 放大过滤
GL_LINEAR: 线性过滤, 使用距离当前渲染像素中心最近的4个纹素加权平均值.
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
GL_TEXTURE_MIN_FILTER: 缩小过滤
GL_LINEAR_MIPMAP_NEAREST: 使用GL_NEAREST对最接近当前多边形的解析度的两个层级贴图进行采样,然后用这两个值进行线性插值.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值