gpt4 book ai didi

opengl - GL_R16 和 GL_R16UI 之间的区别?

转载 作者:行者123 更新时间:2023-12-01 16:28:07 34 4
gpt4 key购买 nike

根据wiki ,区别在于R16是标准化的,而R16UI不是。这实际上意味着什么?它们在内部都以相同的方式存储,就像无符号整数一样,事实上,一个应该表示标准化整数,一个应该只是一个整数,这一事实并没有真正告诉我任何事情。当您在着色器中对这两种类型进行采样时,您仍然会得到 0 到 1 范围内的标准化值,对吗?那么有什么区别呢?

最佳答案

你对它们进行了不同的采样。对于 R16 纹理,您的着色器中将包含如下内容:

uniform sampler2D tex;
in vec2 texCoord;
...
float val = texture(tex, texCoord).r;

对于 R16UI 纹理,它将如下所示:

uniform usampler2D tex;
in vec2 texCoord;
...
uint val = texture(tex, texCoord).r;

所以对于R16UI,采样时读出的是整数值。另一方面,R16 的行为与 R8 和类似格式(RGBA8 等)非常相似,只是它的内部精度是 R8 的两倍。

请注意,所有整数纹理(包括 R16UI)仅支持 NEAREST 过滤,或用于缩小过滤器的 NEAREST_MIPMAP_NEAREST。

当整数纹理用作渲染目标时,还有其他限制。例如,不支持混合。在使用整数渲染目标之前请查阅规范,以避免出现意外。

关于opengl - GL_R16 和 GL_R16UI 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23533749/

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