问题标签 [csg]

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

javascript - 经过 CSG.js 流程后,如何将纹理添加到 three.js?

这是我的代码:

如何为减法生成的对象添加纹理?

0 投票
0 回答
519 浏览

javascript - 如何在 Three.js 中创建带孔的空心几何体(没有 CSG.js?)

我想在 Three.js 中创建一个带有一些孔的空心盒子。

目前,我设法通过创建规则几何形状并手动推动三角形来创建一个空心盒子(我创建了内盒和外盒并将两者合并在一起)。

我想知道的是是否有一个更简单的解决方案也可以让我在立方体上创建孔。

现在,我对这个问题做了一些研究,发现了CSG.js。虽然这个库看起来非常适合我的需求,但我不太愿意将它合并到我的代码库中,因为它在 4 年多的时间里没有更新(最后一次提交是在 2012 年 8 月 20 日完成的.

所以我的问题是 - 有没有(实用的)方法可以在不使用 CSG.js 的情况下实现我想要的?

另外,如果您有任何方法可以解决我对 CSG.js 的担忧,我将不胜感激。

PS:我也希望能够控制孔的形状 - 但为简单起见,假设我说的是菱形(菱形)孔。

0 投票
1 回答
240 浏览

javascript - CSG - 使用 CSG.Plane 的布尔运算

我可以CSG.Plane用 anormal和一个常量定义 a ,w如下所示:

我现在如何在布尔subtract运算中使用这个 CSG 平面?

我想我必须以某种方式将飞机转换为 a CSG.Node,但我不知道如果没有任何顶点该怎么办......

0 投票
0 回答
340 浏览

javascript - ThreeJS:CSG(包装器?)

我一直在使用独立的 ThreeCSG.js ( https://github.com/chandlerprall/ThreeCSG ) 创建不同的形状,但是我尝试创建的某些形状出现错误:超过最大调用堆栈。

似乎 repo 没有更新,所以我尝试了 CSG-wrapper ( https://github.com/kraag22/csg-wrapper ),它可以毫无问题地创建形状,但对于 THREE.JS 来说已经过时了。

您可以使用任何其他 CSG 库吗?或者是最新的 CSG ( https://github.com/evanw/csg.js )包装器?

我关于回购的两份报告:

https://github.com/kraag22/csg-wrapper/issues/3 https://github.com/chandlerprall/ThreeCSG/issues/23

0 投票
1 回答
828 浏览

c++ - OpenVDB中网格上的转换和CSG操作

OpenVDB 看起来真的很神奇,节点的寻址真的很聪明。有些操作我不明白,特别是CSG操作。这是一个示例代码。它接受两个参数作为输入:

  • 一个只有一个网格的 vdb 输入文件,表示从三角形网格开始创建的水平集,
  • 存储操作结果的 vdb 输出。

该算法应该接受输入,

  1. 在 gridA 中创建 deepCopy
  2. 在 gridB 中创建 deepCopy
  3. 沿 M_PI/4.0f 的 Y 轴旋转 gridB
  4. 在 gridA 和 gridB 之间执行 csgUnion
  5. 将所有网格保存在 vdb 输出文件中。

我正在尝试使用 VDB 网格作为数据容器来代替经典八叉树算法,用于在碰撞中需要高度详细信息的物理模拟。

我理解世界坐标和网格坐标之间转换的概念,我不明白的是如何在树内执行数据的转换,比如平移或旋转水平集,就像一个刚性对象。在这个例子中,我认为我只是在改变世界和格子之间的转换。

这是结果(水平集和体积相同):gridA 应该是原始加载的网格Initial Grid gridB 是旋转了 45 度的网格,实际上是Trasformed 网格,似乎执行了旋转...与工会的结果网格......但没有运气......没有最终结果?

你有什么建议吗?

附:一个例子和一个链接到我正在使用的LINK REMOVED(对不起,它是 133MB ......)

0 投票
0 回答
463 浏览

python - 如何在 python 中使用 CSG 和 VTK?

我想在 python 中使用 CSG 和 VTK 来执行减法。
我已经安装了VTK。

对于我正在考虑安装的 CSG:https ://pypi.python.org/pypi/pycsg 。

我将如何将它用于自定义 PolyDatas 以便从另一个对象中减去一个对象?我不介意它是否有点慢,或者我必须将数据导出到.STL文件中。

我已经知道vtkBooleanOperationPolyDataFilter,但它根本不足以满足我的需要,所以也许 CSG 会更好地做减法。

0 投票
0 回答
114 浏览

android - 使用 libgdx 根据另一个挖掘多边形

我实际上在 Android 上开发了一个 3D 应用程序,并且我操作 3D 对象。

我想根据立方体或圆柱体等另一种多边形形式来挖掘多边形。在下图中,您可以想象我有两个叠加的多边形,一个圆柱体和一个长方体。如果我得到这两个多边形的交集并计算逆(包含在矩形长方体中),我会得到一个新多边形,该多边形有一个圆柱形状的孔,如图所示。

我不知道如何使用 libGDX 实现这一点,我知道 Intersector 类,但我不知道如何检索两个多边形之间交集的反向。

在此处输入图像描述

0 投票
0 回答
47 浏览

unity3d - 从现有 3DR 中查找网格更改/差异

假设在受控房间中使用 Tango (Unity) 设备,其中所有物体和墙壁都是静止的并且是预先知道的。
您对房间进行 3DR 扫描,并拥有良好的 ADF。

你怎么能只检测/跟踪新的/更改的对象?
例如,在房间中添加了一把椅子。

以前有人做过这项工作吗?或者你能建议你解决问题的方法吗?

到目前为止,我最好的想法是在生成的新网格上使用“构造实体几何”库,与预先捕获的网格相比……尽管看起来与其他所有东西一起实时运行可能太昂贵了。 .

0 投票
2 回答
1035 浏览

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

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

我的代码看起来像这样:

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

0 投票
1 回答
728 浏览

javascript - 在 Three.js 中将 3D 文本减去几何

我想将我的 3D 文本转换为 Geometry,以便我可以将它与 CSG 一起使用(我也使用了 Three.js CSG 包装器)从另一个对象中减去它,就像在这个问题中一样。

我的 3D 文本:

我想为 3D 文本做减法(但这里来自圆圈):

但问题是,我认为,我需要将我的文本转换为真正的几何图形,这样我才能减去它?