glpixelstorei

转载 2012年03月27日 09:43:21
glPixelStorei(GL_UNPACK_ALIGNMENT, 1)用法
2011-02-23 20:12

這個函数是對應著 glDrawPixels 而來的, 因為效率考慮, 所以,

OpenGL 預設, 你給 glDrawPixels 的圖檔資料, 它的每一個 row 的大小 ( 以 byte 來算 ), 也是可以給 4 整除的.

假設你的圖檔是 150x150, 每一個 row 的大小就會是 150 * 3 = 450 , 450 不能被 4 整除的. 如果要強行把它換成可以被 4 整除, 一般的做法, 就是在每一個 row 多加 2 bytes 沒用途的資料 (這個步驟我們叫 padding ), 如此 450 就會變成 452, 452 就可以被 4 整除了.

但是, 每 row 大小, 需要是多少的倍數, 雖然預設了是 4, 但是, 你是可以把它改成 1, 2, 4, 8, 其中任意一個的, 如果你設成 1, 這麼你就可以不用管 padding 的問題了 ( 因為什麼整數也可以被 1 整除呀 ), 但是, 懶散的結果, 就是程式 run-time 時慢一點點.

最好的做法, 應該直接使用 寬 可被 4 整除的圖.

 

相关文章推荐

glPixelStorei

对齐像素字节函数:glPixelStorei。 glPi

深入了解OpenGL——纹理基础

在前几讲,我们介绍了OpenGL基本的图元绘制方法、顶点线性变换、光照以及其它着色技巧,现在我们将讲述OpenGL中一个非常大的话题——纹理(texture)。 有些教材喜欢在一开始就把纹理贴图带一...
  • nogodoss
  • nogodoss
  • 2014年05月29日 09:35
  • 10333

OpenGL学习笔记4:纹理

原始图像数据像素包装图像数据在内存中很少以紧密包装的形式存在。在许多硬件平台上,处于性能上的考虑,一幅图像的每一行都应该从一种特定字节对齐地址开始。绝大多数编译器会自动把变量和缓冲区放置在一个针对该架...
  • ylbs110
  • ylbs110
  • 2016年06月30日 22:33
  • 4168

glPixelStore

本文转载自 ZwqXin http://www.zwqxin.com/archives/opengl/opengl-api-memorandum-2.html 像glPixelStor...

OpenGL ES 理解纹理与纹理过滤

1.理解纹理 OpenGL中的纹理可以用来表示图像,照片,甚至由一个数学算法生成的分形数据。每个二维的纹理都由许多小的纹理元素组成,它们是小块的数据,类似于我们前面讨论过的片段和像素。要...

OpenGL ES 2.0升级到3.0配置win32环境以及编译所遇bug

OpenGL ES2.0升级到3.0配置win32环境以及编译所遇的坑。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:glpixelstorei
举报原因:
原因补充:

(最多只允许输入30个字)