11

我计划开发一个带有 Three.js 页面的 HTML5,这样我就可以使用它实现 3D 屏幕,并以跨平台方法轻松支持移动平台。我读到 Three.js 使用 WebGL,但是 iOS 和 Android 浏览器不支持它,所以我无法开发这样的组合应用程序。

有人可以建议,我是否可以使用 Three.js 页面开发 HTML5 以在 iOS 和 Android 应用程序上实现 3D 交互或不作为 Web 应用程序?如果没有,请给我官方链接,其中提到它不受支持。

谢谢你。

4

5 回答 5

9

Three.js 可以在没有 WebGL 的情况下正常工作。您可以使用 Canvas 渲染器——它在 Three.js 文档中有所描述,我相信您可以使用 google 甚至 Bing 在 github 上找到它。它不如使用 WebGL 快,但没有人在日产 Sentra 上参加蒙特卡洛比赛。

您不应该期望在任何移动平台上都能获得高性能的 3D —— 主要是因为 javascript 的性能可能非常缓慢。尝试使用移动设备(有和没有 webgl)访问一些不同的 Three.js 示例,以了解性能。

于 2013-04-20T18:18:52.120 回答
6

我试图在我的 iPad Air 上运行 Three.js Canvas 演示,结果很糟糕。通常 Safari 会崩溃,即使渲染正常,它也会执行 2-3 fps。所以看起来它现在在 iOS 设备上非常原始

于 2014-02-16T07:38:35.730 回答
5

iOS Safari 和 Android Chrome 已经支持 WebGL 好几年了。

您可能指的问题是 Android 的 WebView 或 iOS 的 UIWebView(您可以放入本机应用程序以显示网页的控件)可能支持也可能不支持 WebGL。从 Android 5.0 开始,WebViews 显然支持 WebGL,尽管人们遇到了问题

另一种选择是使用类似CocoonJS的东西。他们显然为 Android 4.0+ 和 iOS 8+提供了自定义 webview 实现。

至于性能,three.js 在简单的移动场景中表现得很好。有很多例子。一般而言,移动设备上的 3D 需要相对于桌面,尤其是使用three.js 优化的资产(更低的多边形模型、更小的纹理、更简单的着色器、更少的灯光等...)

于 2017-01-07T06:08:56.490 回答
4

iOS 和 Android 浏览器对 webgl 的支持不如 Web 浏览器,有时您可以减少渲染效果使其工作。通常这样做。对于应用程序,android webview 渲染能力较低。ios有更好的。

你可以在你的应用程序中插入一些渲染引擎,例如 XWalkView,这是我的一篇文章,如何在我的 android4.2.0 应用程序中使用它来渲染 3D 模型。对于IOS,也有相关的解决方案。

于 2017-01-01T00:43:42.653 回答
3

此问题的所选答案建议使用Three.js CanvasRenderer,但如 Three.js 文档中所示 CanvasRenderer 已被弃用:

注意:Canvas 渲染器已被弃用,不再是 Three.js 核心的一部分。

需要注意的是,它仍然可以用于简单的 3d 场景,可以在 Github 上找到这里

Androids WebView v36 及更高版本支持 WebGL,如下所示。或者,对于较旧的 Android Chrome 浏览器,可以通过在浏览器中键入:chrome://flags并选择出现在浏览器窗口中启用 WebGL标题下的启用链接,或通过从 Android Google Play 商店更新 webview 来启用 WebGL。

自 iOS 8.0b 起,Mobile Safari 就支持 WebGL。

mobilehtml5.org,您可以查看哪些移动设备版本支持特定的 HTML5 功能:

移动 WebGL 支持

Sony Xperia Android 2.3 也支持 WebGL。

于 2017-01-07T21:28:28.557 回答