52得票3回答
什么原因会导致glDrawArrays生成GL_INVALID_OPERATION错误?

我一直在尝试编写一个两遍GPU实现Marching Cubes算法的程序,类似于GPU Gems 3第一章中详述的方法,使用OpenGL和GLSL。但是,在我的第一遍处理中,调用glDrawArrays总是会失败并抛出GL_INVALID_OPERATION错误。 我已经查阅了所有能找到的文...

16得票3回答
Marching Cube算法中的歧义问题与Marching Tetrahedron算法

我已经成功实现了Marching Cubes算法。 我使用标准材料作为参考,但完全从头开始重新编写了它。它能够工作,但我发现其中存在的模糊性会导致网格中出现洞。 我正在考虑使用Marching Tetrahedrons算法,据说这种方法不会存在模糊性。但是我看不懂这怎么可能。 Marchi...

14得票1回答
在Python中从3D数组创建.obj文件

我的目标是使用Python从nifty(.nii)格式获取.obj文件,并将其用于Unity。我知道“scikit-image”包有一个叫做“measure”的模块,其中实现了Marching cube算法。我将Marching cube算法应用到我的数据上,并获得了我期望的结果:verts,...

10得票1回答
计算三角网格的SDF的最有效方法

你好。 在过去的一个月里,我一直在不断搜集各种信息,但没有找到适合解决我的问题的想法。以下是问题的表述: 给定一个以缓冲几何体(32位顶点坐标和顶点索引的数组+附加数组,如顶点法线、UV或切线)的形式呈现的网格,在围绕几何体的均匀网格点上计算带符号距离函数(signed distanc...

8得票2回答
如何将 bool[,,] 转换为多边形?

如果有人在乎,我正在使用WPF…… 故事开始: 我得到了一系列灰度图像(模型的切片)。用户输入一个灰度值“范围”,以构建3D模型。因此,我创建了一个3D布尔数组,以便更容易地构建3D模型。这个数组表示像素盒子,指示每个像素是否应该被构建/生成/填充。 关联: 使用bool[,,],我想...

8得票1回答
使用Marching Cubes算法进行CSG运算的隐式表面

我使用Marching Cubes(或者marching squares,因为这是2D)来渲染等值面,并且想要进行集合操作,如差集、交集和并集。我以为这很容易实现,只需从两个不同的隐式表面中选择两个顶点标量即可,但事实并非如此。 在我的初始测试中,我尝试了两个球圆形,并进行了集合操作diff...

8得票1回答
三角网格化,体素,需要一些建议

我正在尝试构建一个适当的可摧毁地形,只是为了研究目的。 一切都进行得很好,但分辨率还不够令我满意。 我看到了许多人如何实现MC算法的例子,但大多数, 据我所知,使用函数来三角化最终网格,这对我来说并不合适。 我会简要地解释一下我如何构建我的地形,也许有人 可以给我建议如何改进或增加最终地形的...

7得票1回答
Haskell OpenGL中的不良阴影问题

我用Haskell OpenGL画了Barth六次曲线,但出现了问题。我也用R(使用rgl和misc3d包)画了它,没有问题。两个算法(Haskell和R)非常相似。Barth六次曲线是一个隐式曲面,在Haskell中,我使用了由misc3d的marching cubes算法翻译成Haskel...

7得票4回答
如何加速Marching Cubes算法?

我正在使用这个 marching cube 算法绘制3D等值面(移植到C#,输出MeshGeometry3D,但其他方面相同)。生成的表面看起来很好,但计算时间很长。 有什么方法可以加速 marching cubes 算法吗?最明显的方法是简单地减少空间采样率,但这会降低生成网格的质量。我想...

7得票2回答
双重轮廓和二次误差函数

我已经用C#实现了 marching cubes、dual marching cubes 和自适应 marching cubes,但我发现我需要 dual contouring 来达到我的目的。我已经阅读了所有关于 dual contouring 的资料,但是我还没有完全理解 dual con...