问题标签 [threecsg]

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 回答
611 浏览

three.js - Dynamic Clipping or CSG operations in Three.js

I've taken a look at the Clipping examples in the Threejs site, and the ThreeCSG operations, but I am not able to find an example that has "both".

To be more specific, I require a PlaneGeometry of PlaneBufferGeometry that applies a CSG operation as smooth as a Clipping, but this PlaneGeometry could be moving, changing its position and orientation.

As an example, a Sphere and a Plane are on the scene, the Plane starts facing in Z and is spinning in Y, cutting one side of the sphere at all times, but the plane could be a box or any other object.

Is it possible?

0 投票
2 回答
1035 浏览

javascript - Three.js:克隆后如何强制更新矩阵?(与 CSG ThreeBSP 一起使用)

我正在尝试克隆然后缩放网格,但缩放似乎并没有立即在克隆的对象上起作用,用于使用 CSG ThreeBSP 进行编程。我想我应该在缩放之后调用一个函数来强制矩阵或其他内部变量立即重新计算,而不是等待渲染端的完整更新循环。

我的代码看起来像这样:

我错过了什么?也欢迎提出建议:)

0 投票
1 回答
6617 浏览

three.js - 三个 CSG 的 3D 布尔运算

按照此处的示例:

http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/

并将 Three.js 与https://github.com/chandlerprall/ThreeCSG结合使用,我正在尝试对模型中的节点进行 3D 布尔运算。例如,如果我有一堵带窗户的墙,我想在上面做invert()只是得到窗户。

我有一个函数可以返回节点多边形的所有顶点,这是一个没有孔的对象的顶点示例https://pastebin.com/8dhYzPwE

我正在像这样使用 ThreeCSG:

但这就是我要进入的geometryCsg

我认为这是因为geometry.faces.length0

如何使顶点数组正确Three.Geometry,以使面不会为空?Geometry.elementsNeedsUpdate不起作用...

有没有使用形状的多边形作为 Vector3s 数组并将其转换为 csg 的示例?

0 投票
0 回答
66 浏览

3d - 具有 ThreeCSG 的 3D 形状的 Inverse()

我正在尝试使用ThreeCSG反转 3D 形状(获取原始形状的空白),但看起来它们没有包含原始 CSG的反函数:

我尝试像这里的其他功能一样自行实现它:

但它不起作用。我还尝试制作一个大的THREE.BoxGeometry并从中减去(实现减去)我的形状,但我只取回没有任何孔或形状的大盒子。

关于如何实现反转的任何想法?

0 投票
1 回答
1142 浏览

javascript - Three.js 2D CSG - 相交、联合、相减

我将 csg.js 与 three.js 一起使用,它似乎只支持 3D CSG。检查 这个

我想相交和联合 2D (three.js) 几何。有什么办法可以用 three.js 做 2D CSG 吗?

0 投票
1 回答
475 浏览

3d - threeJS / threeCSG - 在使用 EdgesGeometry 时,在 threeCSG 布尔函数之后共面的杂散边

我正在使用 EdgesGeometry 来显示网格的外边缘:EdgesGeometry(geometry, thresholdAngle)。

这通常可以按预期工作,但是在使用threeCSG“减去”或“联合”然后在生成的网格上生成EdgesGeometry之后,即使我将“thresholdAngle”增加到“180”,我也会在共面面上出现各种杂散边缘度”,它们仍然存在。

这就是发生的事情 - 在此处输入图像描述

这是我的代码:(a & b 是盒子几何的网格)

有人有什么想法吗?谢谢

更新

下面是'WireframeGeometry'的样子...... 在此处输入图像描述

0 投票
1 回答
361 浏览

three.js - ThreeCSG减法无法正常工作

我有:

门高8宽8

墙高16,

我将门放在底部,但是当我执行“减法”时,而不是仅移除墙的一部分,它仅沿门的高度执行,而是沿墙的整个高度执行减法

这是图像

0 投票
1 回答
182 浏览

javascript - 在 Three.js 中控制自定义几何图形的缩放

我有一个自定义对象,它是两个网格的减法。这种减法创建了一个类似框架的对象。

现在,只要大小发生变化,我就会动态地缩放这个框架。问题是.scale只使用让我的对象拉伸,而我希望它保持框架的宽度(在这种情况下为 4)。

是否可以指定对象应该如何缩放(比如编写我自己的缩放函数实现)或者是否有一个属性/方法可以使用它会导致保留“空白”与“对象”部分?先感谢您。

0 投票
1 回答
65 浏览

javascript - 预期体积结果时的 Threecsg 平边

问题:

如图所示,从球体中减去立方体会得到 z 轴保留体积,但 y 轴和 x 轴产生扁平圆盘的结果。我不确定为什么球体在这些方面会失去体积。我正在使用带有threeCSG的典型减法。

代码:

我使用的是 v 103,但这个问题似乎与版本无关,因为 77 显示了同样的问题。

问题: 为什么结果的边是平的?在减法操作之前,我是否需要以某种方式转换几何?

这是盒子和球体上方的结果: 在此处输入图像描述

0 投票
0 回答
263 浏览

javascript - 将 ThreeCSG 与 BufferGeometry 一起使用给了我奇怪的结果 - 缺少面孔

当尝试减去或合并两个网格(TextGeometry 和 BufferGeometry)时,结果网格缺少面和相反的结果,我正在使用应支持缓冲区几何的ThreeCSG,我尝试转换为普通几何,结果是相同的。

工会:

在此处输入图像描述

减去 :

在此处输入图像描述

这是我的代码:

如果我取消注释这两行,我会得到不同的结果:

结果如下所示:

联合法线几何:

在此处输入图像描述

减去前面:

在此处输入图像描述

减去:

在此处输入图像描述

有什么我想念的想法吗?