我已经在几个游戏中看到过质感良好的球、行星和其他球形物体,上一次是在《UFO:余波》中。如果你只是溅射一个纹理到纬度/经度作为u和w -coordinates,你会得到很多丑陋的纹理扭曲到极点。
我可以认为自己是实现一个变形最小的球面贴图的一种方法。通过在三角形而不是正方形中进行映射。但我不知道任何算法。如何为这样的球体生成顶点和纹理坐标?
此外,我也看不到从一个简单的平面正方形贴图生成一个完整的球面贴图的方法。有没有一些直观的方法来绘制这样的地图而没有真正的麻烦?
然而,有没有其他算法可以在没有或最小失真的情况下渲染球体?
光线追踪和光栅化算法都很有趣。
发布于 2008-10-20 20:03:55
hairy ball theorem声明,如果没有任何会扭曲纹理的极点,则不可能在球体上定义连续的纹理坐标。
发布于 2008-10-21 13:34:00
经度/经度“球体”根据定义扭曲。如果你对编程感兴趣,可以根据需要从tetrahedron和subdivide开始,将每个三角形细分为4个三角形,并在距中心给定半径处重新定位中点。
如果你喜欢建模,GeoSphere (如前所述)或任何类似的工具都能解决你的问题。
重点是三角形将具有恒定的扭曲,这与纬度无关。
另请注意,(闭合的)曲面细分将使您能够相当轻松地获得(C)LOD。
Texturing是另一回事,但是一旦你有了一个好的球体,你就没有那么多问题了。
希望这能激发你的想象力:)
发布于 2008-10-17 17:57:21
您可以使用具有纵向模糊的矩形地图,该地图在两极附近增加(从赤道没有增加到北纬60度)。结合mip-map,这应该会消除您提到的一些影响。
https://stackoverflow.com/questions/213147
复制相似问题