跨平台3D引擎嵌入iOSAndroid-View?

跨平台3D引擎嵌入iOSAndroid-View?,第1张

概述对于我的新应用程序,我想要一个原生的iOS或 Android UI,以及一个显示一些图形的3d视图.虽然我最初计划在WebView中使用CSS转换来实现所需的3D效果但是失败了,因为性能并非接近可用,我正在寻找另一种解决方案.以下是我认为的选择: 1.在OpenGL ES中重新创建场景 我将在OpenGL中重新创建我们的图形引擎.这肯定是可能的,但对于像我这样以前从未做过3D编程的人来说可能很难做 对于我的新应用程序,我想要一个原生的iOS或 Android UI,以及一个显示一些图形的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)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的框架.

总结

以上是内存溢出为你收集整理的跨平台3D引擎嵌入iOS / Android-View?全部内容,希望文章能够帮你解决跨平台3D引擎嵌入iOS / Android-View?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1034508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存