标签: implicit-surface

自适应隐式曲面多边形

由于这里发现的Bloomenthal,我一直在使用一种较老的隐式曲面算法,基本上是基于四面体的算法.这种方法效果很好,但有一个缺点.由于它使用固定网格,因此根据所选的网格大小,它会浪费多边形或忽略细节.

所以我的问题是,我有哪些改进方案?是否有任何可自由使用的(源或良好描述)隐式曲面算法,它们更适应模型的曲率?我遗失的任何选项?

到目前为止,我找到了一篇看起来很有前景的论文,对其他人的建议将不胜感激.

algorithm computational-geometry implicit-surface

8
推荐指数
1
解决办法
2001
查看次数

具有行进立方体的隐式曲面上的CSG操作

我使用行进立方体渲染等值面(或者可能是行进的正方形,因为这是2D),我想做集合操作,如设置差异,交集和联合.我认为这很容易实现,只需在两个不同的隐式曲面中选择两个顶点标量,但事实并非如此.

对于我的初步测试,我尝试了两个球体圆圈,以及设置的操作差异.即A - B.一个圆圈正在移动而另一个圆圈是静止的.这是我在选择顶点标量时以及在将角顶点分类为内部或外部时尝试的方法.代码是用C++编写的.OpenGL用于渲染,但这并不重要.没有任何CSG操作的正常渲染确实给出了预期的结果.



       void march(const vec2& cmin, //min x and y for the grid cell
                  const vec2& cmax, //max x and y for the grid cell
                  std::vector<vec2>& tri, 
                  float iso,
                  float (*cmp1)(const vec2&), //distance from stationary circle
                  float (*cmp2)(const vec2&) //distance from moving circle
)
{
  unsigned int squareindex = 0;
  float scalar[4];
  vec2 verts[8];
  /* initial setup of the grid cell */
  verts[0] = vec2(cmax.x, cmax.y);
  verts[2] = vec2(cmin.x, cmax.y); …
Run Code Online (Sandbox Code Playgroud)

math graphics marching-cubes implicit-surface

7
推荐指数
1
解决办法
1455
查看次数