如何在OpenGL中创建带有三角形的均匀球体?
有没有公式可以生成顶点位于球体上的三角形的一组坐标 我可能正在寻找类似于如何在OpenGL中创建带有三角形的均匀球体?,opengl,Opengl,有没有公式可以生成顶点位于球体上的三角形的一组坐标 我可能正在寻找类似于gluSphere的东西。然而,我需要用特定的颜色给不同的三角形上色,这样看起来我就不能使用gluSphere 另外:我确实理解,gluSphere沿着具有相同经度和晶格的线绘制边,这意味着三角形在极点比在赤道的尺寸小。现在,如果这样一个公式可以生成三角形,使它们的大小差异最小化,那就太好了。从一个单位二十面体开始。然后应用三角形的多重同质细分,标准化结果顶点到原点的距离。计算法线和uv贴图 幸运的是,在计算球体上的法线时,
gluSphere
的东西。然而,我需要用特定的颜色给不同的三角形上色,这样看起来我就不能使用gluSphere
另外:我确实理解,
gluSphere
沿着具有相同经度和晶格的线绘制边,这意味着三角形在极点比在赤道的尺寸小。现在,如果这样一个公式可以生成三角形,使它们的大小差异最小化,那就太好了。从一个单位二十面体开始。然后应用三角形的多重同质细分,标准化结果顶点到原点的距离。计算法线和uv贴图
幸运的是,在计算球体上的法线时,有一个奇妙的技巧。仔细想想,球体上的法线实际上就是从球体中心到该点的方向!!此外,如果你仔细想想,这意味着法线实际上等于点!i、 就是同一个向量只是别忘了正常化长度,为正常
你可以在这一点上赢得酒吧赌注:“有没有一个形状,所有法线恰好……等于顶点?”乍一看,你会认为,这是不可能的,没有这样的巧合形状可能存在。当然,答案很简单,就是“半径为1的球体!”嘿
关于紫外线。假设以“明显”的方式投影到2D,则在球体上相对容易。在这种情况下,u和v基本上就是任意点的经度/纬度,标准化为0,1
希望有帮助
这是一个经典的网页,完美地解释了如何构建一个icosphere 对于第一个模型,八面体也是一个不错的选择。更多信息:您正在寻找“地球圈生成”。谷歌用这两个词找到了很多信息。无价页面:我支持乔·布鲁对安德烈亚斯·卡勒博客文章的推荐。Kahler提供了C#格式的代码和清晰的描述。请注意,该页面上有几个著名的bug,所以请小心!