跨平台3D引擎嵌入iOS / Android-View?

时间:2011-12-13 09:29:34

标签: android ios 3d cross-platform unity3d

对于我的新应用,我希望拥有原生的iOS或Android用户界面,以及显示一些图表的3D视图。虽然我最初计划在WebView中使用CSS转换来实现所需的3D效果,但由于性能不是很接近,所以我失败了,我正在寻找另一种解决方案。以下是我认为的选择:

1。在OpenGL ES中重新创建场景
我完全在OpenGL中重新创建了我们的图形引擎。这肯定是可能的,但对于像我这样以前从未做过3D编程的人来说可能很难做到。是否可以将为iOS编写的OpenGL代码移植到Android?或者我必须两次创建引擎?

2。使用像Unity3d这样的现成3D引擎
我偶然发现了Unity3d,Marmalade和类似的工具,这些工具可能会帮助我更轻松地创建3D场景。但是,乍一看似乎我必须在相应的创作系统中创建整个应用程序。除了三维视图之外,我还要使用原生控件。那些工具可以吗?如果是,是否可以将3D从iOS移植到Android,反之亦然?

我是否提出了正确的问题;我做出了正确的假设吗?你觉得有什么不对吗?我错过了什么?

这些都是我的选择吗?或者是否有其他东西,某种混合解决方案?

我应该选择哪个选项?

编辑:为了澄清,我不想在3D视图中显示iOS或Android控件,而是围绕它:用户界面将是原生的,3d部分将是包含在一个视图中。

1 个答案:

答案 0 :(得分:2)

相当复杂; - )

(1)OpenGL与引擎:

我认为有可能以可移植的方式编写OpenGL代码的主要部分,例如在C ++中使用iOS上的Objective-C ++和Android上的NDK(只是一个想法,从未使用过NDK)。现在它取决于图形部分去哪里。如果你说图形,你的意思是你“只”需要功能图来在屏幕上绘图吗?或者你有更多的对象,如游戏或建筑应用程序,以在OpenGL中显示?

如果是后者,那么更大的问题似乎是模型的无缝集成。每个包含多个立方体的场景都是在建模工具中设计的,可以导出为多种格式(obj,dae,fbx,...)。但是你需要将它导入你的应用程序。无论是Unity,SIO2,Bork,Unreal,Oolong,......都是游戏引擎发挥作用的地方......

如果您需要绘制图表,可能需要考虑手动OpenGL解决方案。虽然即便如此,对现有引擎的一些研究也许是有用的,因为OpenGL不是那么直观,你需要一些时间来交朋友。我在直接使用OpenGL的iPhone应用程序中绘制了多个带缩放,着色等图形的图,但这是一个纯粹的研究项目,可移植性不太重要。

(2)将OpenGL与GUI元素混合

基本上,无法在OpenGL视图中显示标准UIButton。但您可以拥有OpenGL视图和常规UI视图,并在它们之间切换。我不知道有任何工具允许你同时执行基于OpenGL的东西和常规的GUI编程,还可以进一步独立于平台。

因此,一方面,您需要在您选择的工具中创建3D内容,然后集成本机UI代码。对于Unity和iOS,有一些资源如何执行How to access Unity assets natively on Android or iPhone?Mixing Unity generated code with Objective-C in iOS?

另一方面,您需要一个独立于平台的框架来完成常规GUI编程,以便您可以在Android和iOS上运行它。我不熟悉这个主题,但我听说过基于Mono的框架。

相关问题