学习 opengl_OpenGL学习 - 纹理

OpenGL学习 - 纹理

常用函数:

9969adf91e6e6a894b4c9153ed440747.png
常用函数

纹理

纹理只是一种能够应用到场景中的三角形上的图像数据,它通过经过过滤的纹理单元(texture,相当于基于纹理的像素)填充到实心区域。

一、原始图像数据

1、像素包装

图像存储空间 = 图像的高度 * 图像的宽度 *每个像素的字节数

改变或恢复像素的存储方式

void glPixelStorei (GLenum pname, GLint param);
void glPixelStoref (GLenum pname, GLfloat param);

例:紧密包装像素数据,则调用函数:
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

参数1: GL_UNPACK_ALIGNMENT 指定OpenGL 如何从数据缓冲区中解包图像数据。
参数2:表示参数GL_UNPACK_ALIGNMENT 设置的值,指内存中每个像素行起点的排列请求,允许设置为:1(byte排列)、2(排列为偶数byte的行)4、(字word排列)、8(行从双字节边界开始)
下表中(glPixelStore参数)列出了这个函数支持的像素存储模式的完整列表

glPixelStore 参数

ab0f6129388c3de8d4807aaf4aca09e9.png
glPixelStore 参数

2、像素图

/**
 * 将颜色缓冲区内容作为像素图直接读取
 * void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
 * @param x         : 矩形左下角的窗口坐标x
 * @param y         : 矩形左下角的窗口坐标y
 * @param width     : 矩形的宽度,以像素为单位
 * @param height    : 矩形的高度,以像素为单位
 * @param format    : OpenGL 的像素格式,参考,表6-1
 * @param type      : 解释参数pixels指向的数据,告诉OpenGL使用缓存区中的什么数据类型来存储颜色分量,像素数据的数据类型,参考表6-2
 * @param pixels    : 指向图形数据的指针
 */

OpenGL像素格式

7add0b71c146dcd888de5cda7a3c4300.png
OpenGL像素格式

最后3个格式GL_STENCIL_INDEX、GL_DEPTH_COMPONENT和GL_DEPTH_STENCIL用于对模板缓冲区和深度缓冲区直接进行读写。参数type解释参数pixels指向的数据,它告诉OpenGL使用缓冲区中的什么数据类型来存储颜色分量。如表:像素数据的数据类型

像素数据的数据类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值