在我的片段着色器中,我需要使用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)。
我的程序直接将结果绘制到窗口。我需要看它。
嗯,你不能。 uvec4
包含无符号的32位整数。该输出可以only写入使用无符号整数image format的图像。请注意,这是与标准化整数图像格式的不同。
您不能创建一个包含非标准化整数,仅包含浮点数和标准化整数的默认帧缓冲区。因此,您不能“看到它”。
因此,该值不是“颜色”;它只是存储在纹理中的数据。这完全取决于您最终将如何使用该纹理中的值来获得可显示的内容。