【问题标题】:Textured spheres without strong distortion没有强烈失真的纹理球体
【发布时间】:2010-09-17 19:24:18
【问题描述】:

我在几场比赛中看到了纹理良好的球、行星和其他球形物体,最后一次是在 UFO:后果。如果您只是将纹理飞溅到 u 和 w 坐标的纬度/经度中,您会得到很多丑陋的纹理扭曲到极点。

我可以认为自己是一种实现具有最小失真的球形贴图的方法。通过映射三角形而不是正方形。但我不知道任何算法。如何为此类球体生成顶点和纹理坐标?

另外,我看不到从简单的平面方形地图生成完整球面地图的方法。是否有一些直观的方法可以轻松绘制此类地图?

但是,是否有其他算法可以在不失真或失真最小的情况下渲染球体?

光线追踪和光栅化算法都很有趣。

【问题讨论】:

标签: graphics textures raytracing


【解决方案1】:

hairy ball theorem 声明不可能在没有任何扭曲纹理的极点的球体上定义连续纹理坐标。

【讨论】:

    【解决方案2】:

    纬度/经度“球体”根据定义扭曲。如果您正在编程,请尽可能多地从 [四面体](http://en.wikipedia.org/wiki/Tetrahedron Tetrahedron) 和 subdivide 开始,将每个三角形细分为 4 个三角形,并将中点重新定位在距中心的给定半径处。

    如果您热衷于建模,GeoSphere(如前所述)或任何类似产品都可以解决您的问题。

    关键是三角形会有恒定的变形量,与纬度无关。

    另请注意,(封闭的)曲面细分将使您能够相当轻松地拥有(C)LOD

    Texturing 是另一回事,但是一旦你有了一个好的球体,你的问题就会减少。

    希望这能激发你的想象力:)

    【讨论】:

      【解决方案3】:

      您可以使用在两极附近增加纵向模糊的矩形地图(从赤道无到北纬 60 度)。结合 mip-maps 这应该可以消除您提到的一些效果。

      【讨论】:

        【解决方案4】:

        Drew Olbrich 想出了一个漂亮的方法 tesselating a sphere to produce a nonahedron。如果你增加顶点的数量,你会得到一个相当不错的球面镶嵌。

        【讨论】:

          【解决方案5】:

          或者您可以使用立方体贴图。这通常是进行环境映射的首选方式,这基本上就是您所描述的。

          【讨论】:

            【解决方案6】:

            不要按经度和纬度分割球体。而是使用 3Ds Max 中的 GeoSphere。 (其实就是一个多面体,the geodesic sphere。)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-10-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多