在 iOS 上,我发现大多数(所有?)设备的 GL_MAX_VARYING_VECTORS 为 8。我还阅读过(请参阅此处的注释),即使 swizzle 操作也算作依赖纹理读取。总之,这些限制似乎意味着你不能拥有超过八个元素的卷积核(至少,不是一个最有效的)。
有没有一种方法可以评估超过 8 个元素的卷积核,而不会产生相关的纹理读取?
编辑:如果有什么不同,我的内核是一个旋转的正方形:
•
• • •
• • • • •
• • •
•
我目前的策略是创建两个版本的纹理——一个相对于另一个偏移 (1, 1)——并使用这个内核:
•
• • •
• • •
•
我不知道加倍的数据流是否会超过避免依赖纹理读取的好处。正如@TraxNet 建议的那样,我可能只需要测量它。