关于跨平台 UI 的思考

一:跨平台,这里的跨平台,指的是:Windows、Linux、MacOS、IOS、Andriod。

二:跨平台,首先大家想到的是 Java。虽然众多平台都支持 Java,但 Java 效率低下。2D、3D游戏就没得完了。
      .NET 现在跨平台了,但支持的设备、操作系统都不广。也不是个好的选择(虽然有 UnrealEngine 优秀的游戏引擎)。

三:Flutter,谷歌开源跨平台UI框架。主要针对 Android、IOS 移动端。想跨所有平台,依然不是个好的选择。
       当然,移动端的开发框架还有很多,这里就不一一列举了。

四:DirectX 只是 Windows 平台下高效的图形绘制引擎。其它平台都不支持。
        QT 不是图形绘制引擎。它只是个 C++ 开发框架。和 MFC(微软)、VCL(Borland) 一样。

五:既然是 UI,那必须需要有个众多平台都支持的绘制图形引擎来绘制界面。这个图形绘制引擎要多用 GPU,少用 CPU。
      支持所有平台的图形引擎:OpenGL、Vulkan。
      FireMonkey、QT 都是基于 OpenGL 的开发框架。(RS11 中,FireMonkey 在 Windows 下,已经使用 DirectX 作为图形绘制引擎了)
      OpengGL 越来越落伍了。在者操作系统逐渐都不在支持了。
      看来 Vulkan 是唯一选择了。

六:基于 Vulkan 的图形绘制开发框架有哪些?
      没有。基本没有。等待大侠你的出手了!
      Acid 是一个基于 Vulkan 的跨平台游戏引擎。C++ 编写。
      还不成熟。等以后成熟了,封装封装,弄个 UI 开发框架是不成问题的。
      但是,没有大树(大公司)乘凉,很难成功的。
      OGRECave 公司继 OGRE 引擎之后,又做了一个:OGRE-NEXT(OGRE2) 跨平台游戏引擎。支持 Vulkan 渲染了。
      亚马逊也发布开源游戏引擎 O3DE(Open 3D Engine),跨平台游戏引擎。支持Vulkan、Metal和DirectX 12上的光线追踪。
      DiligentEngine 应该算真正意义上的图形绘制引擎了。支持的系统和使用的图形绘制引擎如下图:
      

 七:Google 的 Chromium  是跨平台的。那么我们可以使用它,封装做出各种控件,这样 UI 就搞定了。CEF 就这么产生了。
       也不用自己考虑什么绘图引擎了,都交给 Chromium 去解决了。
       这也是目前主流的技术。站在巨人的肩膀上,事情就好办多了。
       现在很多跨平台应用软件都是用这个技术做的。比如大名鼎鼎的 VSCode。
       当然,缺点也有。普通应用软件的 UI 是没有什么问题的,3D 游戏肯定就不行了。

八:总之,三种途径可以实现跨平台 UI:
       1、使用跨平台浏览器 Chromium;
       2、使用跨平台游戏引擎;
       3、完全自己从头开始做(既要兼容普通应用程序的 UI,又要兼容 3D 游戏,又要包含浏览器,那是相当的困难);
       看来只能使用前面两种方案了。
       使用 跨平台游戏引擎 + 跨平台浏览器 Chromium 的方式,即兼容 3D 游戏,又兼容普通应用程序的 UI,还包含了对浏览器的支持。
       这种方案,算是最好的解决方案了。但是,现在还没有现成、成熟的开发框架可以使用。

九:GO、Rust、Python,等等跨平台语言,但都没有自已的跨平台 UI 开发框架。看来跨平台 UI 是个难题呀!

十:文中提到的工具源码地址:
      GO      :https://github.com/golang/go.git
      Rust    :https://github.com/rust-lang/rust.git
      Python:https://github.com/python/cpython.git
      Flutter :https://github.com/flutter/flutter.git
      QT      :https://code.qt.io/qt/qt5.git
      Acid    :https://github.com/EQMG/Acid.git
     Ogre2  :https://github.com/OGRECave/ogre-next.git
     O3DE  :https://github.com/o3de/o3de.git
     CEF    : https://github.com/chromiumembedded/cef.git
     chromium       :https://chromium.googlesource.com/chromium/src.git
     UnrealEngine :https://github.com/EpicGames/UnrealEngine.git
     DiligentEngine:https://github.com/DiligentGraphics/DiligentEngine.git

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值