在OpenGL ES 3.0上对32位整数或浮点纹理进行纹理过滤

时间:2014-02-21 08:35:33

标签: opengl-es opengl-es-3.0

我有一个大的32位整数纹理(R32I),我需要对它进行双线性过滤。我天真地认为我只需要在纹理上启用过滤,但似乎整个过程并不那么简单。 OpenGL ES 3.0 specification在第129-131页上有一个纹理格式列表,R32I格式未标记为纹理可过滤。所有整数格式似乎都是不可过滤的,浮点格式也大于16位。我可以使用整数或浮点格式,但16位对我的数据来说根本不够精确。

现在我可以在着色器中手动执行过滤,但我想知道是否有GPU可以实际过滤这些格式以及我如何检测GPU是否能够执行此操作?

在着色器中手动执行双线性过滤是否存在严重的性能缺陷?或者仅仅是方便,那么我没有理由尝试让自动过滤为我的纹理工作。

1 个答案:

答案 0 :(得分:1)

检查您的GPU是否支持此扩展程序https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float_linear.txt

它应该做的伎俩。我认为配备新Adreno 420的全新摩托罗拉Nexus 6应该支持它。