问题标签 [react-three-fiber]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - react-three-fiber如何提取和播放动画
好吧,我有 .gltf 动画模型。我成功加载了模型,但无法播放嵌入的动画。我想知道是否可以通过任何方式解决它。顺便说一句,我正在对此做出反应。先感谢您。
在这里您可以找到模型 https://drive.google.com/file/d/1ZVyklaQuqKbSliu33hFxdyNpg4EQtcBH/view?usp=sharing
这是我尝试过的代码。
reactjs - 无法从 Three.js 导入后处理
每当我尝试在我的 React 应用程序中运行此代码时,它都会失败并显示:
SyntaxError: 不能在模块外使用 import 语句
javascript - React Hooks,重新渲染时重新初始化的变量
我正在尝试在重新渲染时保留非 usestate 变量的数据
我有一个主要组件,它有一个子组件。
子组件包含一个状态并返回一个Cube。它还包含useFrame(),对每一帧执行一个操作。
我使用它根据方向变量(每 3 秒改变一次方向)对立方体进行旋转。我还有另一个变量,时间由每帧上的增量递增。
问题是,当我单击Cube 时,子组件被重新渲染(正常),但我在此过程中丢失了时间和方向值,它们被重新初始化。
有没有办法不丢失数据?不重新初始化它们?我认为useEffect可以解决问题,但我不能将它放在useFrame(或useFrame中的useEffect)。也尝试了useMemo,但失败了,它没有保留更新的值,但我不太确定能很好地使用它吗?是否可以根据他自己的变化进行更新?
制作了一个codesandbox https://codesandbox.io/s/cube-rotation-sdfv8?file=/src/App.js:290-300
在这个例子中,我可以使用 setInterval,但这不是我的意思,这只是一个例子。我想使用useFrame来移动对象,例如,做一些“去那里,然后回来”。
使用 state/setState 也可以,但我会失去巨大的性能,因为它每秒完成 60 次。我可以有很多对象。
reactjs - 如何在反应三纤维中将相机嵌套在一组中
我在反应三纤维中不知所措。我想为相机创建一个装备(这在 three.js 中很简单)。我把相机放在一组里面。如果我想绕 Y 轴旋转相机,我改变父组的旋转。如果我想绕 X 轴旋转它,我会旋转相机本身。这样,我不处理万向节问题(例如,如果 y 旋转为 180 度,则 x 旋转反转)。
在three.js中我会做:
但在 react-three-fiber 我不知道。
我有一台我正在使用的相机,来自 useThree
javascript - 渲染时暂停,但当我使用 react-three-fiber 中的 useLoader 时未指定后备 UI
我正在尝试为我的 ThreeJS 对象使用纹理。我收到错误:
地球.js:
index.js:
reactjs - React 中的 Webpack 无法加载带有 GLTF 扩展的 3D 模型,显示 404 not found
我正在尝试在 React with Typescript 中加载带有 .gltf 扩展名的 3D 模型。3D 模型文件夹中的文件为 .gltf、.png 和 .bin 文件。用于此任务的工具是来自 drei 库的 webpack 和 useGLTFLoader。我尝试过不同的工具。主要来自三个.js 库,没有效果。错误显示未找到 3D 模型 404(如下所示),并且在应放置 3D 模型的位置没有出现任何内容。
我用于渲染 3D 模型的组件如下所示:
下面我分享我的 webpack 配置。
我的 webpack.config.js 文件位于项目的根目录中。assets 文件夹位于 src 文件夹中。最后,带有 React 代码的文件位于 src/components/ThreeDimensionComponent/ThreeDimensionComponent.tsx 中(因此它的路径是正确的)。
reactjs - react-three-fiber:旋转四面体“面朝下”
我正在尝试旋转四面体,使它们的一侧朝下,就像它们放置在地板上的物理对象一样。
通过为四面体提供 applyMatrix 属性应用接受的答案后,我的代码如下所示:
然而,我的四面体的旋转并没有改变。我究竟做错了什么?
这是我当前的代码:小提琴
three.js - 在高层次上,我将如何在 react-three-fiber 中渲染一堆网格,所有这些网格都需要随时知道它们的位置?
基本上我需要几十个(基本)网格同时在屏幕上移动,而且它们都必须始终知道它们的位置。我尝试过的方法在大约 10 个网格时会减慢速度,并且慢到 30 个网格时非常慢。在高层次上,我将如何处理?当然有可能,对吧?