OpenGL 之 纹理贴图

概念

1、图元:其实就是SurfaceView
2、纹理映射:为图元每个顶点指定纹理坐标,通过纹理坐标在纹理图确定纹理区域,最后将纹理区域的内容映射到图元上
3、纹理采样:图元上的每个片元在片元着色器根据纹理坐标的易变变量,从纹理图中提取对应位置颜色的过程
4、纹理图片:宽高必须是 2的n次方
5、多重纹理:对同一个图元采用多幅纹理图

核心函数

1、glGenTextures函数 (GLsizei n, GLuint * textures);
n——生成纹理id的个数
textures——一个纹理数组的内存地址

2、glBindTexture函数 (GLenum target,GLuint texture);
target——只能取GL_TEXTURE_1D或者GL_TEXTURE_2D;
texture——纹理名称,一个应用不能用两次

3、glTexImage2D函数(
GLenum target,
GLint level,
GLint components,
GLsizei width,
GLsizei height,
GLint border,
GLenum format,
GLenum type,
const GLvoid *pixels );
target ——指定目标纹理,必须为GL_TEXTURE_2D;
level —— 指定图像级别的编号,0表示基本图像
components —— 纹理中颜色组件的编号,1或2或3或4;
width —— 纹理图像的宽度;
height —— 纹理图像的高度;
border —— 纹理图像的边框宽度,必须是0或1;
format —— 指定像素数据的格式,一共有9个取值;
type —— 像素数据的数据类型;
pixels —— 内存中像素数据的指针。

4、glTexParameteri函数 ( GLenum target,GLenum pname, GLfloat param );
或者是glTexParameterf函数(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
target —— 目标纹理,必须为GL_TEXTURE_1D或GL_TEXTURE_2D;
pname —— 用来设置纹理映射过程中像素映射的问题等
另外还有两个同类函数:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
功能就是实现线形滤波的功能,可能会过滤掉显示不正常的纹理像素。

5.glEGLImageTargetTexture2DOES函数
//类似glTexImage2D的功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值