我正在研究 OpenGL ES 2.0 着色器,并且我有紧密打包的数据,例如两个字节块内的三个 5 位无符号整数。要解压这些数据,我显然需要位移,但 OpenGL ES 着色语言不支持此操作(请参见第 29 页 http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf)
因此,我执行了许多 *2 和/2 操作来模拟位移。
有谁知道更有效/更优雅的方法来做到这一点?有什么我不知道的技巧吗?
谢谢!
最佳答案
我从未使用过 OpenGL,但如果您的环境支持,最有效的方法是为每种类型使用 16 位查找表。您需要在启动时填充表一次,但这应该非常快。您可以为每种类型使用单独的表或二维表,例如,theTable[65536][3]。
关于performance - 如何在没有 ("<<"的情况下执行位移位 || ">>") 运营商有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3466567/