【问题标题】:How to create an even sphere with triangles in OpenGL?如何在OpenGL中创建一个带有三角形的均匀球体?
【发布时间】:2018-02-26 01:08:38
【问题描述】:

是否有一个公式可以生成一组顶点位于球体上的三角形坐标?

我可能正在寻找类似于gluSphere 的东西。然而,我需要用特定颜色为不同的三角形着色,这样我就不能使用gluSphere

另外:我知道gluSphere 沿经度和纬度相等的线绘制边缘,这意味着与赤道处的三角形相比,两极处的三角形较小。现在,如果这样的公式能够生成三角形以使它们的大小差异最小化,那就太好了。

【问题讨论】:

  • 您正在寻找“地圈生成”。谷歌用这两个词找到了很多信息。
  • 我赞同 Joe Blow 对 Andreas Kahler 博客文章的推荐。 Kahler 提供 C# 代码和清晰的描述。
  • 请注意,该页面上有几个著名的错误,所以要小心!

标签: opengl


【解决方案1】:

计算法线uv贴图

幸运的是,有一个惊人的技巧可以计算球体上的法线。如果你仔细想想,球体上的法线确实无非就是从球体中心到那个点的方向!!此外,如果您仔细考虑,这意味着法线实际上等于点!即,它是同一个向量! - 只是不要忘记将长度标准化,因为正常。

你可以在那个上赢得赌注:“有没有一种形状,所有的法线恰好……等于顶点?”乍一看你会认为,这是不可能的,不可能存在这样的巧合形状。但答案当然只是“半径为 1 的球体!” 嘿!

关于紫外线。假设您以“明显”的方式投影到 2D,a "rectangle-style" map projection 在球体上相对容易。在这种情况下,u 和 v 基本上只是任意点的经度/纬度,归一化为 0,1。

希望对你有帮助!

这是一个历史悠久的经典网页,它精美地解释了如何构建一个 icosphere .. http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html

【讨论】:

    【解决方案2】:

    从一个单位二十面体开始。然后应用三角形的多个同质细分,归一化生成的顶点到原点的距离。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多