如何让 three.js 在 React Native 中运行(没有 WebView)?

Posted

技术标签:

【中文标题】如何让 three.js 在 React Native 中运行(没有 WebView)?【英文标题】:How to make three.js run in React Native (without WebView)? 【发布时间】:2017-01-17 02:54:21 【问题描述】:

我正在寻找将 React Native 与 three.js 集成的解决方案。据我所知,three.js 在 DOM 中运行。有没有办法在不渲染到 DOM 的情况下使用 three.js?我使用 three.js 来渲染 3D 对象。例子可以看https://github.com/tweedegolf/minecraft-character-configurator,需要移植到React Native的解决方案。 谢谢:)

【问题讨论】:

记得有人正在讨论在toxicfork/react-three-renderer Gitter 频道中进行此操作的实验,不知道该项目的结果如何,抱歉我没有更多信息,但是这是一个开始! 我想知道性能,我猜你会从真正的原生 OpenGL API 中得到更好的结果,它应该可以 RNative 一起运行。 感谢@WylieКулик 的建议。我很好奇如何将我从 Cinema4D/3dsmax/Blender 创建的任何模型转换为 OpenGL 代码。你有什么主意吗? :) 我不熟悉 OpenGL 中的高级框架,抱歉。我想通过自定义翻译脚本在某种程度上它是可行和自动化的,但这只是一个猜测,我也猜这将是一件苦差事。 【参考方案1】:

您可以查看 Expo 的 GLView 组件,以及 expo-three,它们的 Three.js 集成。目前它有很多错误,但你可能会得到结果。

【讨论】:

感谢您的回答。我看过一些例子,它似乎不支持从文件(Cinema4D/3dsmax/Blender)加载 3D 模型。 确实,似乎需要将 obj 文件作为 Expo 资产加载,然后再导入。我现在遇到了同样的问题,但我正在与他们论坛上的 expo-three 维护者交谈,他们非常敏感:forums.expo.io/t/missing-gl-interfaces-make-glview-fail/1723/7

以上是关于如何让 three.js 在 React Native 中运行(没有 WebView)?的主要内容,如果未能解决你的问题,请参考以下文章

three.js - 如何让相机在补间期间查看对象

three.js如何让场景中模型跟随鼠标旋转呀

如何从 THREE.js 示例中导入代码?

There.js入门系列之React中使用Three.js

Three.js 打造缤纷夏日3D梦中情岛 🌊

从Webview获取(THREE.js)3D模型到我的Native-React(增强现实)应用程序