three.js相关内容

检查直线和网格在Three.js中是否相交

我在场景中放了一些卷烟。当用户点击一些特定点时,我在这些点之间画了一条线(THREE.Line)。我需要检查这条线是否与任何线条(THREE.Mesh)相交。 这不起作用 myLine.intersectObjects( arrayOfCilinders , true) 可以在这条线上画一条射线吗?在这种情况下,我可以使用 myRay.intersectObjects( ar ..
发布时间:2022-09-06 09:50:09 前端开发

使用单个透明平面进行透明度Z战斗

我正在尝试让透明度在波浪形平面地形中工作 这是我的演示: 数据-lang=“js”数据-隐藏=“假”数据-控制台=“真”数据-巴贝尔=“假”> console.clear() const t = THREE //////////////////////////////////// const scene = new t.Scene() const renderer = new t ..
发布时间:2022-08-06 17:21:35 其他开发

TS表达式生成的联合类型太复杂,无法用Material-UI和@Reaction-Three/Fibre表示

我创建了一个Next.js应用程序,它使用Material-UI和@Reaction-Three/Fibre库。 我最近将Material-UI传递给V5,出现错误。 以下是错误: 我搜索了所有内容以将其删除,但什么也没有找到。 所以我尝试使用Material-UIV5创建一个新项目,并逐个安装其他依赖项。在开始时未显示错误,但在安装@react-three/fiber和@re ..

Js-如何防止块抖动/摇晃?

我将Cannon.js与Three.js一起使用。我已经设置了一个场景,它有5列,每列4个块,彼此堆叠在一起。 我希望这些对象可以与我计划添加到场景中的其他对象交互。然而,列中的块似乎导致了大量的微碰撞,随着时间的推移,抖动偏离了位置。我希望他们完全保持一致,直到他们与之互动。 如果您查看代码并等待大约20/30秒,您将看到块开始移动。我需要在这些块上设置什么特定内容以防止这种情况发生 ..
发布时间:2022-07-17 12:28:57 其他开发

在窗口调整大小事件中,HTMLdiv高度保持增长

我有一个简单的Three.js场景(画布),我想在窗口调整大小事件(特别是改变屏幕宽度,保持高度不变)时响应它。 在正常情况下,我使用window.innerWidth,window.innerHeight属性来设置画布的大小以匹配窗口大小。 然而,我想在html中嵌入三个场景。 所以我在 中放了三个画布。 在下面的代码中,当我调整窗口 ..
发布时间:2022-07-11 21:22:30 前端开发

Three.js函数-转换为接受不同的初始旋转

我正在尝试将此处http://benchung.com/smooth-mouse-rotation-three-js/找到的代码转换为AFrame组件。 如果初始旋转为‘0 0 0’,这一切都很好,但现在我正在尝试设置不同的初始旋转。 @Piotr请为我准备一份fiddle 但基本上我希望能够设置初始旋转,然后使用函数的其余部分在单击和拖动时旋转对象。 AFRAME.reg ..
发布时间:2022-06-19 10:14:04 前端开发

使用A帧显示立体图像的GL_OUT_OF_Memory

我已经创建了一个概念验证SPA(source code/demo),它从Web服务器加载立体图像,并使用A-frame的aframe-stereo-component以立体3D形式呈现它们。 在Oculus浏览器和Firefox Reality的Quest 2上进行了测试,效果很好:通过WebXR以沉浸式VR模式查看时,每个图像都以3D形式显示。 但是,在滚动浏览多个图像(通常为8到12个 ..
发布时间:2022-06-19 09:42:45 其他开发

GLTF模型与包围盒大小的匹配

我希望将导入的GLB模型缩放到与场景中的立方体相同的大小。需要确保模型位于阴影投射区域内,并且足够大以使阴影可见。 我已经计算了两个对象的边界框: // shadowcasting area var sceneExtent = new THREE.BoxGeometry( 4, 4, 4 ); var cube = new THREE.Mesh( sceneExtent, mater ..
发布时间:2022-04-09 12:07:15 前端开发

如何使用三个ejs加载Fabrijs作为obj的纹理

我正在尝试使用三个ejs为我的3D模型添加SVG作为我的3D模型的纹理,目前我的3D模型使用SVG作为纹理,它工作得很好,除非我将Fabricjs映射为SVG将移除的纹理,所以我认为最好将SVG放到Fabricjs画布上。 function set_materials(response) { var baseSvg = document.getElementById("svgCon ..
发布时间:2022-04-07 14:03:31 前端开发

将数据存储为纹理以在实例化几何体的顶点着色器中使用(三个JS/GLSL)

我使用的是THREE.InstancedBufferGeometry,我希望访问已编码到纹理中的顶点着色器中的数据。 我要做的是为每个实例创建一个具有一个像素的数据纹理,它将存储每个实例的位置数据(然后在稍后的阶段,我可以使用带有流场的模拟来更新纹理以设置位置的动画)。 我正在努力从顶点着色器中的纹理访问数据。 const INSTANCES_COUNT = 5000; // ..
发布时间:2022-03-24 19:29:02 其他开发

使用Three.js创建凹半球体

我是一名Web开发人员,有很好的JavaScript经验,目前正在探索Three.js的可能性。但是,我对3D形状和词汇不是很熟悉,我想不出如何构建我需要的形状。 我要创建一个半球体,并且能够在此球体内投影视频。我有一个全景球形视频,我需要将其扭曲以使其看起来像平面。 多亏了Paul的教程,我已经画了一个球体,并将我的视频投影到上面。但是外球面是凸的,我需要一个凹的!我怎样才能做到这一 ..
发布时间:2022-02-22 13:48:40 其他开发

三个JS-在3D中旋转箭头以跟踪鼠标

我正在学习三个Js,我有以下问题:我有一个固定长度的箭头r居中位置(x, y, z),我希望箭头旋转以跟踪鼠标。如果鼠标离中心的距离比r远,我希望箭头的z分量为0,但如果鼠标距离中心r,我希望箭头的z分量设置为剩余长度,即Math.sqrt((arrowLength * arrowLength) - (dx*dx) - (dy*dy))。 如何执行此操作? 我的问题与this ques ..
发布时间:2022-02-22 13:46:13 其他开发

Three.js中的自定义形状

在我的项目中,我创建的形状是球体,并且我使用图像作为材质的纹理. 如何创建自定义形状(不是球体、矩形等)?例如,如何创建半球体? 我当前的代码: // create a texture texture = THREE.ImageUtils.loadTexture('red.png'); // create a sphere shape geometry = new THREE. ..
发布时间:2022-02-22 13:43:41 前端开发

将 WebGL 非连续行渲染为单个对象

我有多个要渲染的 WebGL 行,它们都具有相同的渲染样式.因此,为了提高性能,我想在一次绘制调用中将它们全部渲染为一个对象. 但问题是这些线路并非都相互连接. 在此处查看示例:http://jsfiddle.net/b6jgS/6/p> 你可以看到环连接,但我不希望它们连接.但是我仍然想在一次绘制调用中绘制它们. 相关代码是这样的,它只是为一些环生成一些几何图形: # ..
发布时间:2022-01-24 11:16:56 前端开发

如何制作 TextGeometry 多线?如何将它放在一个正方形内,以便它像 html 文本一样包裹在 div 内?

我正在使用 WebGL、three.js 和 THREE.TextGeometry 制作一些 3D 文本.到目前为止工作正常.我能够创建单行 3D 文本. 现在我想创建多行文本,比如一个短段落.最好是,当它到达放置它的框/矩形的边框时,我希望它自然地换行.我想要标准 HTML 文本在 div 内时具有的类似行为,换行当它到达其父 div 的边缘时变为多行. 这是我创建单行的方式: ..
发布时间:2022-01-24 10:39:31 前端开发