2008-10-17 63 views
6

我已經在幾場比賽中看到質感良好的球,行星和其他球形物體,上次在不明飛行物:後果。如果你只是將紋理潑到緯度/經度上,就像u和w座標一樣,你會得到很多難看的紋理變形。沒有強烈變形的紋理化球體

我可以認爲自己是一種實現具有最小失真的球形貼圖的方法。通過映射三角形而不是正方形。但我不知道任何算法。如何產生這些球體的頂點和紋理座標?

此外,我沒有看到從一個簡單的平方形地圖生成完整球面地圖的方法。有沒有一些直觀的方式繪製這樣的地圖沒有真正的麻煩?

儘管如此,還有其他算法渲染一個沒有或者失真最小的球體嗎?

光線跟蹤和光柵化算法都很有趣。

+0

參見[使用C領域的三角形鑲嵌採用細分++](http://stackoverflow.com/a/29139125/2521214) – Spektre 2015-10-13 11:36:05

回答

2

您可以使用縱向模糊的矩形地圖,該地圖在極點附近增加(從赤道上沒有地方向北60度)。與mip-maps一起,這應該消除你提到的一些效果。

2

或者您可以使用立方體貼圖。這通常是進行環境映射的首選方式,這基本上就是您所描述的。

1

不要按經度和緯度分割球體。相反,在3Ds Max中使用所謂的GeoSphere。 (實際上是一個多面體,the geodesic sphere。)

3

緯度/經度「球體」按定義扭曲。如果您正在進行編程,可以根據需要從[四面體](http://en.wikipedia.org/wiki/Tetrahedron四面體)和subdivide開始,將每個三角形細分爲4個三角形,並在距中心給定半徑處重新定位中點。

如果您正在進行建模,則GeoSphere(如前所述)或任何類似工具都可以解決您的問題。

重點是三角形將有一個恆定的失真量,這與緯度無關。

另請注意,(封閉)曲面細分將使您能夠輕鬆地獲得(C)LOD

Texturing是另一回事,但一旦你有一個良好的領域,你有更少的問題。

希望這火花你的想象力:)