我一直在学习有用的dual contouring algorithm,因为它允许曲面包含光滑和锐利的边缘。我对输入数据的使用方式感到有些困惑。我相信如果我理解了如何定义最小的尖锐立方体,我会更好地理解这一点。
花了很长时间阅读各种资源我开始相信下列其中一个想法是正确的,但我无法确定哪一个。为避免混淆,我们可以将曲面称为立方体,任何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/