我注意到在一台Android设备上运行没有问题的程序不会总是在另一台设备上运行。
从GPU到GPU的OpenGL ES 2.0实现有何不同?遗憾的是,我没有发现实现之间表面,纹理,变量声明(类型,精度等)的使用变化的任何好的总结,因此它使OpenGL ES 2.0调试非常痛苦。大多数SO答案是:“也许你可以做到这一点,或那个或那个。”在使用OpenGL ES 2.0时存在很多矛盾和误解。
反正。有没有人有足够的经验在多个平台上使用OpenGL ES 2.0来枚举不同GPU实现之间可以改变的列表,以及是否有良好实践来最大化设备之间的兼容性?示例:可以在设备之间处理OES外部纹理变化吗?设备是否为纹理单元使用不同的逻辑?
答案 0 :(得分:2)
我对跨设备的Android GL ES问题没有任何直接经验,但我的理解是最常遇到的问题与GLSL编译器问题有关。
这是由于每个GPU供应商都在实施和提供GLSL编译器,因此GLSL程序可能由各种编译器编译,每个编译器都有其缺陷和限制。
例如,请参阅http://bitiotic.com/blog/2013/09/24/opengl-es-shading-language-potholes-and-problems/。