gpt4 book ai didi

OpenGL 纹理上传 : UNSIGNED_BYTE vs UNSIGNED_INT_8_8_8_8

转载 作者:行者123 更新时间:2023-12-04 02:59:39 28 4
gpt4 key购买 nike

我正在调用 glTexSubImage2D。如果我的像素格式是 GL_RGBA ,然后是像素类型 GL_UNSIGNED_BYTEGL_UNSIGNED_INT_8_8_8_8完全等效?

另外,这两对是等价的吗?

  • Format = GL_RGBA, Type = GL_UNSIGNED_INT_8_8_8_8
  • Format = GL_BGRA, Type = GL_UNSIGNED_INT_8_8_8_8_REV

  • 我试过阅读 OpenGL 规范和 GL_EXT_packed_pixels 规范,但老实说我无法理解它们。

    最佳答案

    答案是否定的。您必须考虑计算机中的字节顺序。如果您有 GL_RGBAGL_UNSIGNED_INT_8_8_8_8 ,这意味着像素以 32 位整数存储,并且颜色在这样的整数中按逻辑顺序 RGBA,例如红色在高位字节中,阿尔法在低位字节中。但是如果机器是 little-endian(与 Intel CPU 一样),那么内存中的实际顺序是 ABGR。而,GL_RGBAGL_UNSIGNED_BYTE无论计算机是小端还是大端,都将按 RGBA 顺序存储字节。
    GL_BGRAGL_UNSIGNED_INT_8_8_8_8_REV将按逻辑顺序 ARGB 以整数形式存储颜色,但是在小端机器上,您会在内存中获得 BGRA 顺序。

    关于OpenGL 纹理上传 : UNSIGNED_BYTE vs UNSIGNED_INT_8_8_8_8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786187/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com