我有一个大的32位整数纹理(R32I
),我需要对它进行双线性过滤。我天真地认为我只需要在纹理上启用过滤,但似乎整个过程并不那么简单。 OpenGL ES 3.0 specification在第129-131页上有一个纹理格式列表,R32I
格式未标记为纹理可过滤。所有整数格式似乎都是不可过滤的,浮点格式也大于16位。我可以使用整数或浮点格式,但16位对我的数据来说根本不够精确。
现在我可以在着色器中手动执行过滤,但我想知道是否有GPU可以实际过滤这些格式以及我如何检测GPU是否能够执行此操作?
在着色器中手动执行双线性过滤是否存在严重的性能缺陷?或者仅仅是方便,那么我没有理由尝试让自动过滤为我的纹理工作。
答案 0 :(得分:1)
检查您的GPU是否支持此扩展程序https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float_linear.txt
它应该做的伎俩。我认为配备新Adreno 420的全新摩托罗拉Nexus 6应该支持它。