最后三个参数glTex(Sub)Image定义像素传输到OpenGL的方式.如果你有4个8位值,顺序,在ARGB顺序,那么我会建议如下:
glTexImage2D(..., GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, *);
Run Code Online (Sandbox Code Playgroud)
要处理字节序转换问题,请使用glPixelStore参数.具体来说,GL_UNPACK_SWAP_BYTES.以上是为小端机器设计的,所以如果你在大端机器上,你应该glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_TRUE);在调用这个函数之前调用,然后再将它设置回来GL_FALSE.
注意:我知道你没有提到它,但是如果你正在考虑移动平台,请记住OpenGL ES 不是 OpenGL.Desktop OpenGL要求实现能够在传输操作中处理各种像素排列.GL ES几乎完全相反.像素传输格式必须与纹理的内部格式完全匹配.因此,如果您正在进行GL ES开发,则必须自己进行字节交换.
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |