gpt4 book ai didi

c++ - glTexImage*D 参数冗余?

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:48 29 4
gpt4 key购买 nike

为什么 glTexImage1D、glTexImage2D 和 glTexImage3D 函数需要内部格式(即 GL_RGBA8、GL_R32UI 等)和像素格式? (GL_RGBA,GL_RED_INTEGER)

在我看来,像素格式可以很容易地从内部格式中解释出来。我问这不仅仅是出于好奇,而是因为我要确保我编写的 OpenGL 纹理对象和帧缓冲区对象包装器(从内部格式推断像素格式)能够正确提取所有内部格式的像素格式。

最佳答案

像素格式是您提供纹理数据的格式,内部格式是 OpenGL 在内部存储它的方式。 OpenGL 将自动处理转换。

man page for glTexImage2D有一组很好的内部格式布局表,还解释了每种格式的转换方式。

例如,如果您有像素格式 GL_RG 和内部格式 GL_COMPRESSED_RGBA,GL 会将整个蓝色 channel 填充为 0,将 alpha channel 填充为1,然后自己做内部压缩。

Each element is a red/green double. The GL converts it to floating point and assembles it into an RGBA element by attaching 0 for blue, and 1 for alpha. Each component is then multiplied by the signed scale factor GL_c_SCALE, added to the signed bias GL_c_BIAS, and clamped to the range [0,1].

关于c++ - glTexImage*D 参数冗余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15121072/

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