问题标签 [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.

0 投票
1 回答
229 浏览

reactjs - 通过 props 禁用效果 react-three-fiber

我使用npm 包创建了具有react-three-fiber效果的场景。EffectsComposerGlitchreact-postprocessing

我想使用 html 输入复选框来切换效果的active状态,但是,切换道具的状态不会禁用效果。禁用复选框输入效果的正确方法是什么?Glitchactive

我在这里设置了一个有问题的沙箱 https://codesandbox.io/s/tender-star-lw07h?file=/src/App.tsx:0-1488

这是代码。

0 投票
1 回答
669 浏览

reactjs - react-three-fiber 3D 对象(.obj)模型不投射任何阴影

我目前是新手,正在学习three.js。我react-three-fiber用 React 来实现它,但我偶然发现了一个问题。它不能给模型投下任何阴影。我也尝试obj.castShadow = true在父母和孩子身上使用,但没有区别。

这是我的沙盒链接:
https ://codesandbox.io/s/sleepy-satoshi-8eckc?file=/src/components/Model.js

任何帮助,将不胜感激。谢谢你。

0 投票
1 回答
359 浏览

javascript - Three.js - 模型无法接收任何阴影

我目前是新手,正在学习three.js。我react-three-fiber用 React 来实现它,但我偶然发现了一个问题。但是,该模型不能从另一个模型接收任何阴影。我也尝试在父级和子级上使用obj.castShadow = trueobj.receiveShadow = true接收阴影模型对象之一,但它没有显示任何区别。有没有办法给另一个模型投下阴影?

和影子..看起来很粗糙。有什么办法可以抚平吗?

1

这是我的沙箱:
https ://codesandbox.io/s/modest-newton-np1sw

代码:

任何帮助,将不胜感激。
非常感谢。

0 投票
1 回答
512 浏览

reactjs - react-three-fiber 自定义着色器中的 WebGL 在道具更改或窗口调整大小时冻结

我在反应三纤维场景中有一个自定义着色器材质,它在着色器材质本身中发生了一些动画。我还使用 useUpdate 挂钩将制服设置为在暗模式切换上进行更新。但是,每当我调整窗口大小或切换暗模式时,着色器材质中的动画都会冻结并且暗模式不会切换。然而,平面缓冲区几何体上的轨道控制仍然有效,因此被冻结的不是场景,而只是着色器材质本身。如果我切换了暗模式并进行了热重载,则着色器材质会更新,并且我会看到着色器材质处于其暗模式状态,但这是我实现这一目标的唯一方法。每当我从原始状态切换暗模式时,它就会冻结。即使我打开开发工具并从中调整窗口大小,着色器动画也会冻结。

我已经在互联网上搜索了遇到此问题的任何人,除非我的措辞不正确,否则我似乎找不到任何东西。

有谁知道这是什么原因造成的?除了这个着色器材质在任何状态变化时冻结之外,其他一切似乎都运行良好。

0 投票
2 回答
641 浏览

javascript - 在 react-three-fiber 中调用几何方法

如何在几何组件上调用 .rotateZ (不能开箱即用)或 .center (不接受任何参数)之类的方法。

0 投票
2 回答
1005 浏览

javascript - 将 GLTF 模型添加到简单的 React 三纤维场景中

我只是想将具有漫反射和凹凸纹理的模型添加到 React 3 光纤中的简单场景中。

我真的不知道我做错了什么。

继承人沙箱:https ://codesandbox.io/s/three-point-lighting-in-react-three-fiber-forked-qeqlx?file=/src/index.js

该模型是一个 GLTF 月亮,其中包含烘焙的纹理。月亮只是一个球体,但我想使用 GLTF 模型。目前,场景显示背景和灯光,但没有模型。

如果您对此有任何见解,我将不胜感激!

0 投票
1 回答
348 浏览

reactjs - React Three.js .GLTF 烘焙纹理未出现在模型上

我有一个简单的场景,包括一个带有月亮漫反射和凹凸纹理的球体模型烘焙到“.GLTF 文件”中。我用GLTFJSX导入了模型,但只出现了模型。我打开了照明,但这似乎并没有解决问题。我把这个完全相同的模型放在另一个场景中,纹理加载得很好。

问题沙箱:https ://codesandbox.io/s/patient-framework-3holn?file=/src/App.js

0 投票
2 回答
1298 浏览

reactjs - threejs + vanilla js 和 react-three-fiber + create-react-app 的颜色差异

这一直困扰着我一段时间。为什么react-three-fiber中的材质颜色比threejs中的要暗淡

  • 两个实现中的对象及其属性是相同的。
  • threejs 版本相同。
  • 在新引导的 create-react-app 中实现,没有额外的依赖项。

三人行

在此处输入图像描述

反应三纤维

在此处输入图像描述

0 投票
0 回答
723 浏览

reactjs - 使用 react-three-fiber 和 react-spring 动画 bufferAttribute

我有带有自定义着色器和缓冲区几何图形的简单点网格。

几何图形具有位置、大小和颜色属性。在指针悬停时,悬停的顶点变为红色。

到目前为止,一切都很好。

现在我想为悬停顶点的颜色变化设置动画。

这是 Points 网格的代码片段:

完整的代码和示例可在代码沙箱上找到

当我尝试animProps.colors在 bufferAttribute 中使用颜色时,它无法更改颜色。

我究竟做错了什么?如何使它正确?

我知道我可以创建开始和目标颜色属性,将它们传递给着色器并在那里进行插值,但这会超出使用 react-three-fiber 的目的。

有没有办法在 react-three-fiber 中为缓冲区属性设置动画?

0 投票
1 回答
671 浏览

javascript - 使用map方法创建three.js组件

我创建了一个 react-three-fiber 功能组件来加载带有动画的蝴蝶的 glb 文件,并且我正在返回一个原语,其中 glb 的场景作为对象道具传递。它嵌套在网格中,即嵌套在场景中,即嵌套在组中。

然后在数组的每次迭代中以单独的函数返回该组件。

然而,这个函数只返回一只蝴蝶而不是 100 只。

单只蝴蝶

我认为我的问题与蝴蝶组件中的返回有关。我尝试只返回带有道具和参考的原语,但这不会渲染任何东西。我已经尝试通过 glb 文件的 console.log 并找到几何形状,并尝试将其作为道具与材质一起传递给网格,但这只会渲染白色蝴蝶形状而没有场景中的动画。为什么这只返回 1 个蝴蝶而不是 100 个?