纹理贴图

一.纹理贴图主要用到的一些函数

1.glGenTextures作用是生成纹理对象名称,其函数原型为:void glGenTextures(GLsizei n, GLuint *textures);

其中n表示用来生成纹理的数量;textures表示存储纹理索引。其函数返回n个纹理索引。

2.glBindTextures作用是绑定纹理对象,且没有被删除, 则返回TRUE,但是如果没有被删除则返回FALSE.

其函数原型为:void glBindTexture(GLenum target, GLuint textureName);target表示指定其维数取值

须是GL_TEXTURE_1D,GL_TEXTURE_2D,GL_TEXTURE_3D。textureName表示纹理对象名称,也就是glGenTextures

函数生成的纹理对象。glBindTextures函数就把生成的纹理对象激活绑定。绑定纹理对象后就可以对纹理对象

进行参数的设置。

3.glTexParameteri是纹理过滤函数,其函数为:void glTexParameteri(GLenum target,GLenum pname,GLint param);

target表示指定这些参数将要应用在哪个纹理上,它可以是GL_TEXTURE_1D,GL_TEXTURE_2D,GL_TEXTURE_3D

pname指定需要设置哪些纹理参数,它可以是:

GL_TEXTURE_MIN_FILTER表示缩小过滤;GL_TEXTURE_MAG_FILTER表示放大过滤;GL_TEXTURE_WRAP_S表示S方向的贴图模式

GL_TEXTURE_WRAP_T表示T方向上的贴图模式。

param表示用于设置特定的纹理参数值,它可以是:GL_LINEAR表示线性过滤, 使用距离当前渲染像素中心最近的4个纹素加权

平均值.GL_NEAREST表示最邻近过滤。比如glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);

表示操作2D纹理,使用最近邻过滤,且是放大过滤。

4.glTexImage2D表示生成一个2D纹理,其函数原型为:

glTexImage2D(GL_TEXTURE_2D, //此纹理是一个2D纹理

0,                         //代表图像的详细程度, 默认为0即可                              

3,                         //颜色成分

TextureImage[0]->sizeX,    //纹理的宽度
TextureImage[0]->sizeY,    //纹理的高度
0,                         //边框的值
GL_RGB,                    //告诉OpenGL图像数据由红、绿、蓝三色数据组成
GL_UNSIGNED_BYTE,           //组成图像的数据是无符号字节类型
TextureImage[0]->data);     //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据

5.glTexCoord2f函数功能是用于绘制图形时指定纹理的坐标。其函数原型为glTexCoord2f(GLfloat s, GLfloat t)

s和t 代表坐标   s为 X轴坐标,t为Y轴坐标, 第一个参数是X坐标,0.0是纹理的左侧,0.5是纹理的中点,

1.0是纹理的右侧。第二个参数是Y坐标,0.0是纹理的底部,0.5是纹理的中点,1.0是纹理的顶部。


如上图的2维纹理坐标值,用glTexCoord2f映射到3D的一个面,此函数和glVertex3f一起共用,这样就可以把一个纹理

贴到一个3D的一个面。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值