我一直在学习双轮廓算法,该算法很有用,因为它允许表面同时包含光滑和锐利的边缘。我对如何使用输入数据感到有些困惑。我相信如果我了解最小锐角立方体是如何定义的,我会更好地理解这一点。
花了很长时间阅读各种资源后,我开始相信以下想法之一是正确的,但我无法确定哪个是正确的。为避免混淆,我们将表面称为立方体,将任何 8 个相邻网格点称为一个单元格。非常感谢您提供插图以帮助说明构造。
想法#1 - 一个最小的尖锐立方体由一个 2x2x2 网格定义,其中每个网格点等于形成的立方体的一个角。
+---+
| |
+---+
2x2x2 grid points / 1 grid cell
想法 #2 - 一个最小的尖锐立方体由 3x3x3 网格定义,其中每个网格单元包含一个所谓的“特征点”,并且需要 8 个特征点来形成立方体。
+---+---+
| . | . | +---+
+---+---+ ===> | |
| . | . | +---+
+---+---+
3x3x3 grid points / 8 grid cells
想法#3 - 一个最小尖锐立方体由一个 1x1x1 网格定义,其中一个特定密度的网格单元导致形成一个最小尖锐立方体。
+
1x1x1 grid points / 0 grid cells
这是另一个可能对未来读者有用的参考:http: //upvoid.com/devblog/2013/05/terrain-engine-part-1-dual-contouring/