Graphics 无强变形的纹理球

Graphics 无强变形的纹理球,graphics,textures,raytracing,Graphics,Textures,Raytracing,我在几场游戏中见过纹理良好的球、行星和其他球形物体,上次是在《UFO:余波》中。如果你只是将一个纹理以u坐标和w坐标的形式飞溅到纬度/长条上,你会得到很多丑陋的纹理扭曲到极点 我认为我自己是实现球面贴图的一种方法,失真最小。用三角形而不是正方形来映射。但我不知道任何算法。如何为此类球体生成顶点和纹理坐标 此外,我没有看到从简单的平面正方形贴图生成完整球形贴图的方法。有没有什么直观的方法可以不用麻烦就画出这样的地图 但是,有没有其他算法可以在不失真或失真最小的情况下渲染球体 光线跟踪和光栅化算法都

我在几场游戏中见过纹理良好的球、行星和其他球形物体,上次是在《UFO:余波》中。如果你只是将一个纹理以u坐标和w坐标的形式飞溅到纬度/长条上,你会得到很多丑陋的纹理扭曲到极点

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

此外,我没有看到从简单的平面正方形贴图生成完整球形贴图的方法。有没有什么直观的方法可以不用麻烦就画出这样的地图

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


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

你可以使用一个矩形地图,其纵向模糊程度在两极附近增加(从赤道无到北纬60度)。结合mip贴图,这应该可以消除您提到的一些影响。

Drew Olbrich想出了一种巧妙的方法。如果增加顶点数,将获得相当不错的球面细分。

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

不要按经度和纬度分割球体。相反,请使用3Ds Max中称为“地球球体”(实际上是一个多面体)的方法。

表示如果球体上没有扭曲纹理的极点,则不可能在球体上定义连续纹理坐标。

Lat/lon“球体”根据定义扭曲。如果你喜欢编程,从一个[四面体](四面体)开始,并根据需要将每个三角形细分为4个三角形,然后在给定半径处从中心重新定位中点

如果您对建模感兴趣,那么GeoSphere(如前所述)或任何类似的工具将解决您的问题

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

还请注意,(闭合)曲面细分将使您能够非常轻松地进行曲面细分

这是另一个故事,但一旦你有了一个好的领域,你的问题就少了

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