2010-05-04 76 views
1

我們已經有了一個球體,我們希望以3D顯示球體,並給出了一個函數依賴於球座標的顏色。如何使用WPF 3D頂點的值爲網格着色?

球體在(theta,phi)中使用規則網格進行三角化,但是這會在杆子附近產生很多小三角形。爲了減少極點上的三角形數量,我們改變了網格生成,以在表面上生成更均勻大小的三角形。

第一種三角測量方法的優點是我們可以輕鬆地創建紋理並將其覆蓋在曲面上。看起來在WPF中,不可能像在OpenGL或Direct3D中那樣爲頂點分配顏色。

對於第二種三角測量方法,由於頂點不再與網格對齊,所以不清楚如何去生成紋理和設置紋理座標。

也許可以創建一個包含每個頂點的顏色的線性紋理,但那麼這將如何影響着色?它是否仍然能夠平滑地在三角形表面上渲染,正如人們通過應用每個頂點着色所期望的那樣?

回答

1

我已經將算法轉換爲使用線性紋理,它實際上只是查找色彩映射。這似乎工作得很好,比以前的解決方案好得多。而不是創建一個尺寸爲ThetaSamples * PhiSamples的紋理,我現在只創建了256 x 1的固定紋理。

+3

您認爲您可以共享您開發的算法嗎?我試圖在這裏解決同樣的問題。我試圖用漸變畫筆作爲紋理進行繪圖,將(0,0)和(1,0)之間的(U,V)映射到我的頂點,但無法得到近似我想要的Gouraud類型着色的結果。你究竟做了什麼? – 2010-07-22 05:20:14

+0

我想知道更多信息。 – 2011-06-01 19:59:16