【发布时间】:2012-12-20 20:24:11
【问题描述】:
在“严肃”(非游戏)Android 应用程序中添加一些 OpenGL 是否有任何权衡?
我想使用 OpenGL 的原因是为一些视图添加一些 3d 行为。
据此http://developer.android.com/guide/topics/graphics/opengl.html OpenGL 1.0 可用于所有 Android 设备,并且不需要修改清单文件。所以永远不会有兼容性问题。
我能想到的唯一两件事是 1. 其他无法使用 OpenGL 的开发人员的可维护性。并且可能 2. 与其他组件的集成问题/不能很好地重用(虽然,不确定)。
还有其他什么,意想不到的事情,某种开销,并发症等吗?
因为这似乎不是一种非常流行的做法而询问,人们似乎更喜欢用 2d 来“伪造”3d 或放弃它。不知道是不是因为他们不想学OpenGL。
【问题讨论】:
-
如果您打算支持标准的应用程序工作流程,那么使用 opengl 来管理多个屏幕会变得很困难。在最新的设备中,支持硬件加速,可以在可能的情况下将工作推送到 gpu。运行 opengl 所需的启动/拆卸使得切换上下文/活动对最终用户来说非常痛苦。
-
您指的是哪个启动/拆卸?
-
好吧,在您的情况下,向自定义视图添加一些 3d 特定功能可能不会增加显着的开销,但在一个体面的游戏中,设置 glcontext 并将资产加载到内存中需要一些时间。此上下文在暂停时丢失,需要在恢复时重新创建,这会导致一些滞后。这真的取决于你想要完成什么。
-
所以你的意思是位图被加载到与普通内存不同的内存中,这需要更多时间?否则,这将适用于所有类型的游戏/图形密集型应用程序。那么设置 glcontext 需要很多时间呢?
-
就像你说的那样,这可能不适用于我,因为不是非常图形或动画密集。但我很好奇。