6

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

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

另外,我看不到从简单的平面方形地图生成完整球形地图的方法。有没有一些直观的方法可以在没有真正麻烦的情况下绘制这样的地图?

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

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

4

6 回答 6

5

球定理指出,在没有任何扭曲纹理的极点的情况下,不可能在球体上定义连续的纹理坐标。

于 2008-10-20T20:03:55.443 回答
3

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

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

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

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

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

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

于 2008-10-21T13:34:00.427 回答
2

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

于 2008-10-17T17:57:21.113 回答
2

Drew Olbrich 想出了一个巧妙的方法来镶嵌一个球体以产生一个九面体。如果你增加顶点的数量,你会得到一个相当不错的球形镶嵌。

于 2008-10-17T18:04:10.943 回答
2

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

于 2008-10-17T18:46:49.267 回答
1

不要按经度和纬度分割球体。而是使用 3Ds Max 中的 GeoSphere。(实际上是一个多面体,测地球。)

于 2008-10-17T18:46:53.150 回答