2010-03-02 21 views
5

我正在爲我工​​作的公司開發可視化引擎。我們爲飛機外部創建貼圖。因此,我們希望能夠在我們支持的飛機上可視化我們的貼花。物理上真實的貼花

所以問題是這樣的:在現實生活中,如果我將貼花應用到飛機外部,我會選擇一個固定位置(比如說在機身左側的中心),然後解決從那裏,允許貼花環繞飛機的身體,因爲它認爲合適。當然,我們正在將二維貼圖「圖像」映射到三維表面,因此它會圍繞飛機蒙皮包裹一些變形,但這是預期的,並在原始設計中進行了說明。

但是,我試圖在3D中重現此問題。我嘗試以下方法:

UV貼圖 - 通過拆模型一樣複雜的東西,我們將是非常困難的,而且似乎有點大材小用。飛機的側面接近平坦,所以看起來更簡單的「貼花投影」方法會更好地工作

立方體貼圖 - 然而,當貼花在臉上時,它會變得非常接近,真的很接近。飛機的一側,在某些時候對模型的頂部的面將開始映射立方圖的頂部...然後我們得到剪切.....

任何想法?什麼是最好的方式去做這件事,在這一點上我沒有設置OpenGL vs DirectX,所以兩者的答案都可以正常工作。

+0

下面是關於這背後的概念的優秀的博客文章:http://blog.wolfire.com/2009/06/how-to-project-decals/ – Ricket 2010-03-11 04:55:59

回答

5

也許我失去了一些明顯的..但你不能只使用projective texture mapping?

當然其缺點是,可能過度,翹曲作爲項目和表面法線接近90度之間的角度。

除此之外,爲什麼紫外線解開這樣一個壞計劃?假設模型的紋理未被扭曲,這將是一個非常簡單的解決方案。 Microsoft提供了一個非常有用的工具,用於解包here

+1

其實這差不多是我最後一起去。在Blender中,我能夠對此進行原型設計,效果很好。確實,模型頂部有一些翹曲,但我要分別紋理模型的每一側 UV展開的問題在於難以準確地匹配「真實世界」貼花。當你在模型上放置貼花時,你不會拿刀並將其裁剪以匹配UV解開的接縫......或者至少你不應該這樣做。無論如何,它看起來像上面的例子會很好。 – 2010-03-03 14:09:42

1

我會建議使用cylindrical texture map。假設你不想試圖跨越邊緣(即:在翼上等),這應該工作得很好。對於機身上的貼花,這應該是完美的,並且實現起來非常簡單。

-1

我需要至少15個字符,Ptex只有4。但它是所有你需要知道的。

1

你想要的是一個匹配測地距離的UV座標。 測地距離基本上是表面上的距離,而不是歐幾里得距離,歐氏距離是兩點之間的最短距離(如果需要的話,通過模型)。 製作測地圖的全球解決方案非常複雜。 但是,在本地它可能會更容易...

由於您將貼花應用於或多或少平坦的表面,或者至少有點彎曲而沒有真正的起重機和凹槽,您可以應用簡單的解決方案。 我不確定它是否能正常工作,但您已經想到了解決方案。

您可以簡單地在網格中取一個頂點,並且A *或從該頂點前進到所有附近的頂點,同時計算測地距離並以此方式計算UV。 它不會完全準確,但在您的情況下可能會足夠好。

還有一些更健壯的方式可以做到這一點,比如使用多維縮放進行展平。 如果你的表面的拓撲結構或多或少類似於一架飛機,它將工作得很好。

http://en.wikipedia.org/wiki/Multidimensional_scaling