GLSL unsinged int中的最大颜色值是什么? [关闭]

问题描述 投票:0回答:1

在我的片段着色器中,我需要使用uvec4

我的着色器:

layout (location = 0) out uvec4 final_color;
void main(void) {

    final_color.r = 0;
    final_color.g = 4294967295;
    final_color.b = 0;
    return;
}

我认为,这将是绿色的,因为unsigned_int max为4294967295。(2 ^ 32-1),但它只是黑色。我尝试了sing int max 2147483647,它也是黑色的。但2137483648有效。边界在哪里?

我想知道最大值,例如255(8bit)或1.0f(float,vec4)。

opengl glsl
1个回答
4
投票

我的程序直接将结果绘制到窗口。我需要看它。

嗯,你不能。 uvec4包含无符号的32位整数。该输出可以only写入使用无符号整数image format的图像。请注意,这是与标准化整数图像格式的不同

您不能创建一个包含非标准化整数,仅包含浮点数和标准化整数的默认帧缓冲区。因此,您不能“看到它”。

因此,该值不是“颜色”;它只是存储在纹理中的数据。这完全取决于您最终将如何使用该纹理中的值来获得可显示的内容。

© www.soinside.com 2019 - 2024. All rights reserved.