问题标签 [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 回答
2414 浏览

geometry - 雕刻 CSG 库

有没有人成功编译和使用 Carve CSG 库?我正在尝试在一个项目中使用它,但我无法让它工作。此外,文档非常糟糕。我一直在查看 Blender 源代码,它似乎成功地使用了 Carve,但我在复制它时遇到了麻烦。

这是我一直在尝试使用的代码,只是为了创建一个与 Carve 一起使用的立方体:

它似乎卡在最后一行,陷入长时间运行的循环,然后出现段错误。

0 投票
1 回答
368 浏览

php - 用 PHP 构建 3D 几何?

我需要构建与 一起使用的 3D 模型Three.js,但我也需要对它们进行 CSG(构造实体几何)操作。我设法为此使用了该ThreeCSG.js库,但我发现这很慢(大约 5 秒从一个复杂的形状中切出大约 30 个孔)。

不知何故,我需要缓存构造的几何图形,但是由于现在 3D 几何图形的构造仅发生在浏览器的客户端(使用 Javascript)上,因此我无法在使用 PHP的服务器上执行此操作。

  • PHP 中是否有任何 3D 库(也可以执行 CSG)?
  • 预先计算 3D 模型以供以后在 Three.js 中使用的最佳方法是什么?
0 投票
1 回答
1152 浏览

javascript - csg操作后如何保持原色(使用ThreeCSG.js)

在 html 中,我使用 JSONLoader 加载我的 obj(从 Blender 2.66 导出的 .js 文件)。加载我的 obj 后,我使用 ThreeCSG 减去一个立方体。我想要达到的效果就像横截面一样。现在 csg 操作工作正常。问题是csg操作后我不能保持原来的颜色。

比如A减B之后,我希望mesh保留A的材质,有点类似csg.js网站显示的image(a.subtract(b))。不同的是我希望它都是红色的(A的材料)。但是,它可能更复杂,因为我的 obj 有多种颜色和更复杂的几何形状。

这是我的代码的一部分。

three.js 的版本是 R55。

对不起我的英语不好。我真的需要一些帮助。希望你能明白我的意思。

谢谢你们。

0 投票
1 回答
1143 浏览

opengl - MSAA 的抗锯齿问题,用深度和 FBO 绘制 CSG

我已经为现代 OpenGL 版本重新实现了 OpenCSG

PixelFormat属性:

FBO 规格:(尝试使用多重采样渲染到 FBO,但线条变得更加强烈和可见,请看底部的屏幕截图)
- 创建的纹理为 2,GL_RGBA(尝试 GL_RGBA8 和 GL_RGBA32F)
- GL_DEPTH24_STENCIL8(尝试 GL_DEPTH32_STENCIL8,没有结果)


简单算法Goldfeather:


在着色器中,我有用于合并的代码(来自 FBO 的结果纹理重叠在渲染之上进行测试,在OpenCSG 中它是 setupProjectiveTexture):

在此处输入图像描述

看起来像在 FBO 获得不够清晰的纹理或尺寸不合适之后。

编辑:
这些线只出现在减去网格的重叠位置。

编辑 2:
修复了渲染到非 MSAA FBO 并在结果上应用 FXAA。

0 投票
1 回答
129 浏览

javascript - ThreeCSG 扩展提供了错误的网格

我正在尝试在 csg 模型上使用 ThreeCSG 扩展功能创建一个圆形立方体,但生成的网格看起来是错误的。我无法弄清楚问题是什么。有没有人有 ThreeCSG 的经验,看看发生了什么?谢谢。编码:

生成的网格在这里:

网
(来源:jvanderspek.com

谢谢,

乔纳森

0 投票
1 回答
415 浏览

javascript - Three.js Mesh 或 Geometry 内容

我是 Three.js 的新手;有没有办法从 Mesh 或 Geometry 对象中获取单独的对象(元素/壳)?

如果没有本地方法可以做到这一点,我如何实现一种方法来分离未连接到整体的面,然后将它们分离,以便它们形成自己的 Mesh 对象?

背景:我正在加载一个 3d 模型,并希望能够使用 ThreeBSP 统一这个模型,我需要在应用布尔运算之前分离对象。

谢谢

0 投票
0 回答
303 浏览

3d - 三.js CSG库导致未捕获的TypeError

我已经开始使用 Three.js 创建漂亮的 3d 对象。现在我正在尝试在给定示例中进行减法: https ://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/CSG.html 但我遇到了一个错误在图书馆:

我想要实现的是一个四分之一的圆减去一个较小的圆(以创建弓形)。

这是plunkr。 http://plnkr.co/edit/lUxq0Oh1aXbRVd4c2rKG?p=preview

知道为什么会导致错误吗?

0 投票
0 回答
323 浏览

javascript - 用于画布的 JS 2D 构造立体几何

嗨,我正在编写 Web 应用程序的一部分,该应用程序在 2D 画布上创建自定义形状,我想知道如何使用 JS 中的形状坐标执行构造立体几何。有没有我可以使用的预制库?

0 投票
1 回答
426 浏览

3d - 查找立方体和 CSG 对象之间的交集以进行八叉树细分

我正在尝试构建一个表示最初由 CSG(构造实体几何)树描述的体积的八叉树。

我最初的计划是从一个包含整个对象的大立方体开始,然后对八个子立方体中的每一个进行测试,哪些是完全在外部的,哪些是完全在对象内部的,哪些是内部的和外部的。然后这些“中间”立方体将被递归细分。

我的问题可能很愚蠢,但我无法设计一种方法来找到立方体和 CSG 对象的交集,以便能够如上所述对立方体进行分类。

我的 CSG 结构是由诸如立方体、球体和圆柱体(未来可能还有环面)之类的基元构建的,具有并集、交集和减法的布尔运算。

除了 CSG 的显式树结构之外,从它的表示来看,我还有一种距离函数d(x,y,z),它可以告诉我该点(x,y,z)是在对象外部 (>0) 还是在对象内部 (<0)。

如何找到一个立方体是否与 CSG 结构所描述的对象相交?

0 投票
3 回答
8367 浏览

computational-geometry - 构造实体几何与边界表示

我想对非凸多面体对象实现布尔运算,并想用 OpenGL 渲染它们。我已经阅读了对多面体进行布尔运算的两种主要技术:边界表示(BReps)和构造实体几何(CSG)。根据一些论文,使用 CSG 实现布尔值应该更容易,所以我考虑使用 CSG 而不是 BReps。我知道 BReps 通过顶点和多边形来描述几何图形,而 CSG 使用基本的原始对象,例如在树结构中组合的圆柱体或球体。我知道在 BReps 上执行布尔值是通过切割相交的多边形并删除那些不需要的多边形来实现的(取决于操作是联合还是差异或......)。但是在 CSG 方面,布尔运算是如何实现的呢?如何实现 CSG 布尔运算?例如,我已经在互联网上查看并找到了这个http://evanw.github.io/csg.js/https://www.andrew.cmu.edu/user/jackiey/resources/CSG/CSG_report.pdf 奇怪的是这些算法只是使用 BReps布尔值。所以我不明白 CSG 的优势应该在哪里,或者为什么 CSG 布尔值应该更容易实现。