【发布时间】:2009-02-18 13:47:04
【问题描述】:
我在这里问了一些问题,并且在其他测地线形状中多次提到过这个几何形状,但我很好奇我将如何生成关于点 xyz 的几何形状?
【问题讨论】:
-
有教程here.
-
@MarkPattison 链接断开
我在这里问了一些问题,并且在其他测地线形状中多次提到过这个几何形状,但我很好奇我将如何生成关于点 xyz 的几何形状?
【问题讨论】:
有教程here。
基本思想是从一个二十面体(有 20 个三角形面)开始,然后将每个三角形面反复细分为更小的三角形。在每个阶段,每个新点都会径向移动,因此它与中心的距离是正确的。
阶段的数量将决定生成多少个三角形,从而确定生成的网格与球体的接近程度。
【讨论】:
Here 是我用于细分二十面体的参考之一,基于 OpenGL 红皮书。 BSD 许可的source code 到我的iPhone 应用程序Molecules 包含用于生成简单二十面体并将它们加载到OpenGL ES 的顶点缓冲区对象的代码。我还没有合并细分来提高渲染质量,但它在我的计划中。
【讨论】:
为了细分球体,大多数人将点线性细分,但这不会产生圆形。
对于圆形镶嵌,通过一系列旋转旋转两个点。
对于每个接近 0 的位置附近的值也有一些数学考虑,例如北极和南极,最右边和最左边,最前面和最后面的位置,所以检查如果它们在这些位置,则首先执行 pi/4(45 度)的额外旋转。这可以防止浮点数学库出现异常并为 atan2() 和其他三角函数生成异常的字符值。
希望这会有所帮助! :-)
【讨论】: