交互式變形是編輯幾何模型的重要手段,目前出現了許多實時、直觀的交互式變形方法。本文介紹一種利用線性混合蒙皮(Linear Blending Skinning,LBS)技術來實現網格變形的方法,線性混合蒙皮技術因爲計算速度優點使得其成爲商業應用中最主要的方法之一。蒙皮算法通常分兩步:第一步用戶在幾何模型上選擇一系列控制單元,並計算幾何模型受這些控制單元的影響權重;第二步用戶拖動控制單元,幾何模型隨控制單元發生相應變形。第一步中權重的計算決定了蒙皮算法的效果,若是想要幾何模型發生天然、高質量的形變,必須得有一種高效準確的權重計算方法。算法
文章[Jacobson et al. 2011]介紹了一種有界雙調和權重(Bounded Biharmonic Weights,BBW)的計算方法,該權重能使得幾何模型發平生滑變形。定義控制單元爲Hj∈Ω,j = 1, … , m,每一個控制單元Hj的仿射變換爲Tj,對於頂點p∈Ω,線性混合蒙皮算法給出變形後p’的位置爲控制單元仿射變換Tj的加權線性組合:app
其中wj(p)爲頂點p受控制單元Hj的權重影響。ide
對於有界雙調和權重wj的計算方法,其數學表達式以下,最小化問題能夠轉化爲求解對應的Euler-Lagrange方程,即雙調和方程Δ2wj = 0,而其同時知足設定的限制條件,所以做者將這種權重命名爲有界雙調和權重。spa
function U = lbs(V,T,W) % Inputs: % V list of vertex positions % T list of transformations for each controls point, for 2D: % 2 by 3 by #controls, for 3D: 3 x 4 by # controls % W weights, # vertices by # handles matrix of weights % Output: % U list of new vertex positions dim = size(V,2); m = size(T,3); TT = reshape(permute(T,[2,1,3]),[dim+1,dim*m])'; VV = [V(:,1:dim)'; ones(1,size(V,1))]; VVV = reshape((TT*VV)',[size(V,1),dim,m]); WW = permute(repmat(W,[1,1,dim]),[1,3,2]); U = sum(WW.*VVV,3); end
可是即便計算獲得精確的權重值以後,線性混合蒙皮算法仍會出現皮膚塌陷的問題。例如假設兩個控制單元分別繞z軸旋轉角度-π/2和π/2,而且這兩個控制單元對某個計算點的影響權重是相同的,都爲0.5。直覺上咱們但願獲得一個單位旋轉矩陣,可是實際上獲得的是一個x方向和y方向退化的旋轉矩陣,這就使得在該計算點處會出現塌陷現象。code
利用對偶四元數來代替旋轉矩陣能夠解決上述塌陷問題。常規四元數只能表示空間旋轉變換,它的數學形式爲q = [cos(θ/2) nxsin(θ/2) nysin(θ/2) nzsin(θ/2)],其中單位向量[nx ny nz]表示經過原點的旋轉軸,θ表示旋轉角度。對偶數的概念相似於複數,它的數學形式爲ẑ = r + dε並知足ε2 = 0,其中r和d分別表示實部和對偶部,ε表示對偶算子。對偶四元數是實部和對偶部都爲四元數的對偶數,又可稱爲八元數。常規四元數只能表示空間旋轉,而對偶四元數能夠表示空間任意旋轉和平移的組合。orm
對偶四元數的數學形式爲:blog
其中qr和qd都爲四元數,ε表示對偶算子。get
利用旋轉和平移信息計算對偶四元數的方法以下:數學
其中r表明旋轉單位四元數,t表明平移四元數,t = [0 tx ty tz]。it
利用對偶四元數計算旋轉和平移的方法以下:
當對偶四元數僅表示空間旋轉變換時,其表達式爲:
當對偶四元數僅表示空間平移變換時,其表達式爲:
利用對偶四元數對點p進行轉換後獲得點p’:
其中q和q*分別表明對偶四元數及對應的共軛對偶四元數。
本文爲原創,轉載請註明出處:http://www.cnblogs.com/shushen。
參考文獻:
[1] Alec Jacobson, Ilya Baran, Jovan Popović, and Olga Sorkine. 2011. Bounded biharmonic weights for real-time deformation. ACM Trans. Graph. 30, 4, Article 78 (July 2011), 8 pages.
[2] Ladislav Kavan, Steven Collins, Jiří Žára, and Carol O'Sullivan. 2008. Geometric skinning with approximate dual quaternion blending. ACM Trans. Graph. 27, 4, Article 105 (November 2008), 23 pages.