问题标签 [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 - 通过 props 禁用效果 react-three-fiber
我使用npm 包创建了具有react-three-fiber
效果的场景。EffectsComposer
Glitch
react-postprocessing
我想使用 html 输入复选框来切换效果的active
状态,但是,切换道具的状态不会禁用效果。禁用复选框输入效果的正确方法是什么?Glitch
active
我在这里设置了一个有问题的沙箱 https://codesandbox.io/s/tender-star-lw07h?file=/src/App.tsx:0-1488
这是代码。
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
任何帮助,将不胜感激。谢谢你。
javascript - Three.js - 模型无法接收任何阴影
我目前是新手,正在学习three.js。我react-three-fiber
用 React 来实现它,但我偶然发现了一个问题。但是,该模型不能从另一个模型接收任何阴影。我也尝试在父级和子级上使用obj.castShadow = true
和obj.receiveShadow = true
接收阴影模型对象之一,但它没有显示任何区别。有没有办法给另一个模型投下阴影?
和影子..看起来很粗糙。有什么办法可以抚平吗?
这是我的沙箱:
https ://codesandbox.io/s/modest-newton-np1sw
代码:
任何帮助,将不胜感激。
非常感谢。
reactjs - react-three-fiber 自定义着色器中的 WebGL 在道具更改或窗口调整大小时冻结
我在反应三纤维场景中有一个自定义着色器材质,它在着色器材质本身中发生了一些动画。我还使用 useUpdate 挂钩将制服设置为在暗模式切换上进行更新。但是,每当我调整窗口大小或切换暗模式时,着色器材质中的动画都会冻结并且暗模式不会切换。然而,平面缓冲区几何体上的轨道控制仍然有效,因此被冻结的不是场景,而只是着色器材质本身。如果我切换了暗模式并进行了热重载,则着色器材质会更新,并且我会看到着色器材质处于其暗模式状态,但这是我实现这一目标的唯一方法。每当我从原始状态切换暗模式时,它就会冻结。即使我打开开发工具并从中调整窗口大小,着色器动画也会冻结。
我已经在互联网上搜索了遇到此问题的任何人,除非我的措辞不正确,否则我似乎找不到任何东西。
有谁知道这是什么原因造成的?除了这个着色器材质在任何状态变化时冻结之外,其他一切似乎都运行良好。
javascript - 在 react-three-fiber 中调用几何方法
如何在几何组件上调用 .rotateZ (不能开箱即用)或 .center (不接受任何参数)之类的方法。
javascript - 将 GLTF 模型添加到简单的 React 三纤维场景中
我只是想将具有漫反射和凹凸纹理的模型添加到 React 3 光纤中的简单场景中。
我真的不知道我做错了什么。
继承人沙箱:https ://codesandbox.io/s/three-point-lighting-in-react-three-fiber-forked-qeqlx?file=/src/index.js
该模型是一个 GLTF 月亮,其中包含烘焙的纹理。月亮只是一个球体,但我想使用 GLTF 模型。目前,场景显示背景和灯光,但没有模型。
如果您对此有任何见解,我将不胜感激!
reactjs - React Three.js .GLTF 烘焙纹理未出现在模型上
我有一个简单的场景,包括一个带有月亮漫反射和凹凸纹理的球体模型烘焙到“.GLTF 文件”中。我用GLTFJSX导入了模型,但只出现了模型。我打开了照明,但这似乎并没有解决问题。我把这个完全相同的模型放在另一个场景中,纹理加载得很好。
问题沙箱:https ://codesandbox.io/s/patient-framework-3holn?file=/src/App.js
reactjs - 使用 react-three-fiber 和 react-spring 动画 bufferAttribute
我有带有自定义着色器和缓冲区几何图形的简单点网格。
几何图形具有位置、大小和颜色属性。在指针悬停时,悬停的顶点变为红色。
到目前为止,一切都很好。
现在我想为悬停顶点的颜色变化设置动画。
这是 Points 网格的代码片段:
完整的代码和示例可在代码沙箱上找到
当我尝试animProps.colors
在 bufferAttribute 中使用颜色时,它无法更改颜色。
我究竟做错了什么?如何使它正确?
我知道我可以创建开始和目标颜色属性,将它们传递给着色器并在那里进行插值,但这会超出使用 react-three-fiber 的目的。
有没有办法在 react-three-fiber 中为缓冲区属性设置动画?
javascript - 使用map方法创建three.js组件
我创建了一个 react-three-fiber 功能组件来加载带有动画的蝴蝶的 glb 文件,并且我正在返回一个原语,其中 glb 的场景作为对象道具传递。它嵌套在网格中,即嵌套在场景中,即嵌套在组中。
然后在数组的每次迭代中以单独的函数返回该组件。
然而,这个函数只返回一只蝴蝶而不是 100 只。
我认为我的问题与蝴蝶组件中的返回有关。我尝试只返回带有道具和参考的原语,但这不会渲染任何东西。我已经尝试通过 glb 文件的 console.log 并找到几何形状,并尝试将其作为道具与材质一起传递给网格,但这只会渲染白色蝴蝶形状而没有场景中的动画。为什么这只返回 1 个蝴蝶而不是 100 个?