OpenGL 纹理相关API 以及纹理坐标
图片在屏幕上的显示,最终都是解码成位图,然后进行显示的。
一个图形在帧缓存区中的存储空间,可以根据如下公式计算,
纹理是一种图形数据,主要用于在屏幕上包装不同的物体,就像新房装修,需要贴不同的墙纸,此时的墙纸就是我们所说的纹理。
下面介绍下纹理中常用的API
纹理的使用主要有以下三个步骤
像素格式、像素数据类型参见下方表格内容
常用的一般是 glTexImage2D ,因为屏幕上的图形时2D的。
纹理的生成主要包括两步
主要是设置纹理的缩小/放大的过滤方式、x/y轴上的环绕方式,这些参数的设置都是通过下列方法进行设置,可以理解为ios中 NSAttribute 对富文本参数的设置,都是通过指定参数,并设置对应的值
==> 邻近过滤(GL_NEAREST):根据字面意思就是选择离当前位置最近的颜色
==> 建议:纹理缩小时,使用邻近过滤,纹理放大时,使用线性过滤
纹理过滤方式
纹理的环绕方式
4种环绕方式的效果如图所示
OpenGL像素格式
常用的 GL_RGB、GL_RGBA 等
OpenGL像素数据的书籍类型
常用的是 GL_UNSIGNED_BYTE
这个API用的很少,一般很少去改变OpenGL中像素的存储方式,主要都是使用默认的方式
例如: glPixelStorei(GL_UNPACK_ALIGNMENT,1);
更新纹理
参数的说明参考载入纹理API的参数说明
插入替换纹理
参数的说明参考载入纹理API的参数说明
使用颜色缓冲区家在数据,形成新的纹理
注: 不存在glCopyTexImage2D,主要是因为无法从3D颜色缓存区中获取体积数据
删除绑定纹理、测试绑定纹理是否有效
纹理坐标就是纹理与图形的映射关系,图形中每个顶点都会关联一个纹理坐标,表示顶点需要从该位置读取纹理图像的数据。
2024-11-30 广告