【问题标题】:Near-uniform tessellation of a concave polygon for heightmaps用于高度图的凹多边形的近均匀镶嵌
【发布时间】:2017-09-15 15:03:36
【问题描述】:

我得到了一个不能有孔的凹多边形的轮廓/边界,我需要对其应用高度图。为此,我需要像这样对多边形进行近乎均匀的细分:

如何执行这种细分?理想情况下,该解决方案可以参数化内部顶点的“分辨率”以调整细分的细节。

我正在使用 OpenSceneGraph,因此如果可以使用其内置的曲面细分库以某种方式实现这一点,那将是理想的,但如有必要,我愿意引入额外的(希望是轻量级的)依赖项。

【问题讨论】:

  • 为清晰起见进行了编辑。

标签: c++ c openscenegraph tessellation


【解决方案1】:

非常好!你有没有考虑过为此使用几何着色器? DirectX 11 和 OpenGL 允许使用 GPU 进行“动态”细分。速度会快 20-40 倍,具体取决于您的硬件。

我最喜欢的 VS2015/C# 棋盘格动画起点是

https://github.com/RobyDX/SharpDX_Demo/tree/master/SharpDXTutorial/Tutorial11

如果你更喜欢 C/C++ 和 OpenGL,也有很多例子。

http://prideout.net/blog/?p=48

我的一些,我为高度采样了一个纹理位图。在右侧,您会看到一些由我的小三角形中的小正常错误引起的伪影。要解决这个问题 :)

上面的网格是 32x32 正方形,镶嵌深度为 7。在这里您可以看到扁平网格,显示深度 1 镶嵌:

【讨论】:

    【解决方案2】:

    这个问题并没有引起太大的兴趣,但我使用 Google 难以搜索的 Triangle 库取得了相当不错的结果。

    如果我决定希望三角剖分在多边形内部严格统一,我可能会为 Triangle 提供一组顶点以进一步约束细分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2013-02-24
      • 2015-02-17
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多