2012-06-06 23 views
4

我目前正在研究一種實現骨骼頂點權重(聯合變形的皮膚權重)平滑的方法,並且在用戶設置的參數距離內使用頂點之間的測地線(表面)距離的方法上實現空洞。
到目前爲止,有人提到可能使用Dijkstra算法獲得近似測地距離 - 但它對某些類型的網格拓撲有限制。
我在這個問題上發現的唯一論文(所謂的「骨骼頂點權重平滑」)使用拉普拉斯平滑蒙皮網格上的權重,但它只考慮到每個頂點的單環鄰近頂點滿足我需要包括頂點最多的距離(最短測地距離):如何使用頂點的測地距離來平滑骨骼頂點權重?

L(Wi) = 1/m * Sum(j from 0 to m-1)(Wj - Wi) 

其中頂點ij被認爲相對於頂點im是鄰居頂點的數量和W是在重量頂點。

我想象的是一種改進的拉普拉斯平滑,其中使用了所有發現在參數距離內的頂點,但距離也需要是一個因子。也許只是乘以參數距離的權重影響減去當前頂點與總和中使用的頂點之間的距離。這樣的事情,也許:

Wmj = Wj * (maxDistance - Dji) 

L(Wi) = 1/m * Sum(j from 0 to m-1)(Wmj - Wi) 

成使平滑的通過Wj的影響是由它的頂點距離(Dji)減小(衰減)。當然,maxDistance的頂點不會有任何影響,並且可能需要作爲m的一部分被忽略。

會這樣嗎?

+1

此問題可能更適合http://math.stackexchange.com/。 –

回答

2

我想到的第一個想法是投影。首先獲取代表起點和終點(穿過網格)之間歐氏距離的線。然後將其投影到網格上。但是我意識到這在某些情況下不起作用。爲了其他人的利益,一種情況是,如果起點是深坑的一側,而目標位於另一側,則最短距離將在邊緣周圍,而不是直通。這對你來說可能是足夠的,這取決於你正在使用的網格類型,所以如果這對你來說足夠好,我可以詳細闡述一個更完整的方法。

那麼我的想法是細分,然後使用搜索。我會使用自適應細分,即分割邊緣,直到所有邊緣小於某個閾值。從這一點開始,您可以使用Dijkstra's或A *或任何其他數量的搜索方法。這解決了瘦身三角形的問題,因爲邊緣會被細分直到它們很小,所以不會有長而窄的邊緣。