Three.js是一个轻量级的跨浏览器JavaScript库/ API,用于在Web浏览器上创建和显示动画3D计算机图形。 Three.js脚本可以与HTML5 canvas元素,SVG或WebGL结合使用。
有没有办法获取由 OrbitControls 操纵的相机的位置?
所以,我想知道是否有一种方法可以获取由 Three.js 中的 OrbitControls 操纵的相机的位置。 我向场景添加了控件: this.controls = new OrbitControls(this.camera, this.
我目前正在开发一个项目,在 Threejs 中对 Snake 进行编程(是的,我知道有更简单的方法)。一切似乎都工作正常,但是当蛇达到一定大小时,CPU ...
我尝试在 THREE.JS 中制作第一人称射击旋转系统。 我的相机停了一下,又回来了,这很奇怪。 (在一定的轮换中,我不知道为什么(我只知道如果我做...
在 Three.js Shader 中从 OffscreenCanvas 渲染动态纹理时出现问题
我正在开发一个 React Three Fiber 项目,在该项目中,我尝试从在 WebWorker 中更新的 OffscreenCanvas 渲染动态纹理。然而,我得到的只是我的黑色渲染......
如何镜像图像使其处于正确的方向? 我遵循@Piotr Adam Milewski 对于这个堆栈问题的解决方案:how-to-curve-a-plan-entity-to-match-a-sphere-surface。
所以我给自己买了一个雨伞的 3D 模型,它已经带有打开和关闭它的动画。现在我使用 Three.js 将其导入到我的项目中并播放动画。 使用代码我...
我的地图标记如下所示: 正如您所看到的,蓝色标记的中心实际上是我想要的坐标,有没有办法将标记稍微向上偏移一点,以便标记的尖端...
Three.js - OrbitControls 阻尼在按下鼠标时起作用,但在鼠标停止移动时没有阻尼
这可能很难解释: 在 Three.js 中使用 OrbitControls 并启用阻尼以实现鼠标平滑旋转。它部分起作用。我点击,我拖动,阻尼效果很好,但是一旦...
在THREE.js中,有没有一种方法可以使用ExtrudeGeometry(),使挤出深度倾斜上升。例如,假设我画了一个奇怪的形状: 造型设计 然后我将它向上挤压成网格。因斯特...
我想在我的 Three.js 项目中使用 ShaderToy 的这个着色器,但我无法让它工作。 你能帮我转换一些值并设置fragmentShader、vertexShader 和uniforms 吗? 我是...
我正在使用3D(Three.js)和物理(Rapier),我想用箭头键像汽车一样控制盒子的运动,但我很难用物理将运动固定在正确的方向上。 她...
如何使用可以通过轨道控制移动的正交相机在react-三/光纤中拖动x和z上约束在y上的对象?
我希望能够使用 React-三纤维和正交相机在画布中将对象拖动到平面上(想象棋盘上的棋子)。 这是一个例子(不是我的)......
我正在尝试创建一个面上有不同颜色的圆柱体。我可以使用 Three.js 来完成此操作。但是当我尝试在 r3f 上实现这一点时,我无法做到这一点。 我正在尝试创建一个面上有不同颜色的圆柱体。我可以使用 Three.js 来完成此操作。但是当我尝试在 r3f 上实现这一点时,我无法做到这一点。 <Canvas frameloop="demand" camera={{ position: [75, 1, 0.1], zoom: 20 }}> <mesh> <cylinderGeometry /> <meshBasicMaterial color={0xff0000} /> <meshBasicMaterial color={0x00ff00} /> </mesh> <OrbitControls /> </Canvas> 我可以通过将材质作为数组传递到网格来在 Three.js 上做到这一点。我不知道如何在 r3f 中执行此操作。 代码沙盒:这里 试试这个 import "./styles.css"; import { Canvas } from "@react-three/fiber"; import { OrbitControls } from "@react-three/drei"; const colors = [0x00ff00, 0xff0000, 0x0000ff]; export default function App() { return ( <div className="App"> {/* eslint-disable */} <Canvas frameloop="demand" camera={{ position: [75, 1, 0.1], zoom: 15 }}> <mesh> <cylinderGeometry /> {colors.map((color, index) => ( <meshBasicMaterial key={index} attach={`material-${index}`} color={color} /> ))} </mesh> <OrbitControls /> </Canvas> {/* eslint-enable */} </div> ); } https://codesandbox.io/p/devbox/圆筒-forked-yl47v5?file=%2Fsrc%2FApp.js%3A7%2C32 https://github.com/pmndrs/react- Three-Fiber/blob/484c6787bd4862d50a6fd38e436413f06f394fdb/docs/tutorials/v8-migration-guide.mdx#unified-attach-api
如何使用 React Three Rapier 将紧密刚体物理附加到挤压 SVG
我也在 Three.js Discourse 上问过这个问题。 我试图在挤压的 SVG 几何体上从 @react- Three/rapier 的 获得紧密的推断网格,就像这个
我找到了一种在 VR 中始终将对象保持在摄像机正前方的方法:我不会将其直接添加到场景中,而是添加到摄像机中(然后将其与其子级一起添加到场景中)。通过做...
在此示例中:https://thirdjs.org/examples/games_fps.html 此行将一个对象添加到八叉树: worldOctree.fromGraphNode( gltf.scene ); 假设我生成了一个玩家身体,它被破碎了,我......
我正在从事一个 3D 项目并学习 Threejs。我能够管理任何设计模型的渲染和材质。 现在我面临着一些网格物体未渲染的问题......
场景中有两个立方体: const Material1 = new THREE.MeshBasicMaterial({color: '#00ff00'}); constcube1 = new THREE.Mesh(几何体,材质1); 立方体1.position.set(0,0,0); 常量材料2...
Threejs Box3().getSize() 方法的正确用法是什么?
stackoverflow 上的Everywhere 等人似乎都同意 Box3() getSize() 方法的正确使用如下: const 几何 = new THREE.BoxGeometry( 10, 10, 10 ); 常量材料=新三。
我仍然是整个 Three.js 生态系统的菜鸟,所以即使我找到非常接近解决方案的东西,我也会遇到困难。例如,我终于找到了解决方案