【正文】
為了得到投影點(diǎn) , 需要除 qw分量。(l, r, b, t, n, f): Left, Right, Bottom, Top, Near, Far planes. ? 該矩陣把由這些平面構(gòu)成的 AxisAligned Bounding Box (AABB)變換為與軸對(duì)齊的立方體 x y z b t l r n x y z T(t) x y z S(s) 對(duì)應(yīng)的矩陣 ??????????????????????????????????????????????????????????????????????????????????100020002000210002100201020011000020000200002)()(nfnfnfbtbtbtlrlrlrnfbtlrnfbtlrotTsSPDirect X中的正交投影 ? 在 DirectX中, z的值域?yàn)?[0,1],而不是 [1,1],此時(shí)正交矩陣為 ???????????????????????????????????????????????1000001000011000100020002]1,0[nfnnfbtbtbtlrlrlroP透視投影 ? 特征: 平行線投影后不再平行。該系統(tǒng)稱為“ indexed vertex blending”。整個(gè)多邊形網(wǎng)格常稱為骨架上的“ skin”(外皮 ) vertex blending 例子 頂點(diǎn)混合的數(shù)學(xué)表示 0 1 ,)()(10110?? ???????iniiiinii tt ??? ,=其中PMΒu? p為原始頂點(diǎn), u(t)為變換后的頂點(diǎn), n為影響 p的關(guān)節(jié)數(shù)目 ? Mi: 把第 i個(gè)關(guān)節(jié)骨架的 初始坐標(biāo)系 變換到世界坐標(biāo)系 ? Bi(t): 第 i個(gè)關(guān)節(jié)隨時(shí)間變化的世界變換,通常是一系列矩陣的連乘 ? wi:第 i個(gè)關(guān)節(jié)骨架作用于 p的權(quán)因子 vertex blending 例子 ? 頂點(diǎn)混合可在 CPU上實(shí)現(xiàn)。這種基本技術(shù)有時(shí)也稱為“ Stitching”。 ? 解決方法: Vertex Blending (其它稱呼: Skinning, Enveloping, Skeletonsubspace Deformation) 采用一個(gè)物體模擬,關(guān)節(jié)處應(yīng)是柔性的。u,cos216。 (1) 首先計(jì)算單位旋轉(zhuǎn)軸 u=(s t)/|| s t || (2) e==cos(2216。 ? q和 q表示相同的旋轉(zhuǎn) ? q和 r的復(fù)合旋轉(zhuǎn)為 rq 矩陣轉(zhuǎn)換 ? 把 q轉(zhuǎn)化為旋轉(zhuǎn)矩陣,可得到 ( 設(shè) s=2/n(q) ): 對(duì)于單位四元數(shù),上式簡(jiǎn)化為 ???????????????????????????10000)(1)()(0)()(1)(0)()()(1222222yxxwzyywzxxwzyzxzwyxywzxzwyxzyqqqsqqqqsqqqqsqqqqsqqsqqqqsqqqqsqqqqsqqsM???????????????????????????10000)(21)(2)(20)(2)(21)(20)(2)(2)(21222222yxxwzyywzxxwzyzxzwyxywzxzwyxzyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqM旋轉(zhuǎn)矩陣到四元數(shù)的轉(zhuǎn)換 ? 由 Mq可得到 故若得到 qw,則 qx、 qy、 qz便可得。 uq, cos248。)t=e248。uq ? 對(duì)數(shù)運(yùn)算: log(q)=log(e248。 = ei248。)=sin248。 (q+r)*= q*+ r* 。 ?????????????????010)c os (0)s i n ()s i n (0)c os (hrhrhrhrF矩陣分解 應(yīng)用需求: ? 獲取比例縮放因子 ? 對(duì)于特殊系統(tǒng),獲取基本變換(如 VRML采用Transform節(jié)點(diǎn),不支持任意 4X4矩陣) ? 決定一個(gè)變換是否剛體變換 ? 當(dāng)只有矩陣信息時(shí),動(dòng)畫中關(guān)鍵幀插值問題 ? 從一矩陣中剔除錯(cuò)切部分 平移獲取很容易, rotation, scaling, shears獲取較復(fù)雜 繞任意軸旋轉(zhuǎn) x y z r s t x y z r s t x y z r s t M MT Rx(α) ? 繞任意單位軸 r旋轉(zhuǎn)角度 α 是一個(gè)很有用的操作 ? 思想 : (1).由 r構(gòu)造一正交坐標(biāo)系 (2).變換坐標(biāo)系,使得 r與 x軸重合 (3).繞 x軸旋轉(zhuǎn) (4).變換回去 正交坐標(biāo)系的構(gòu)造 srtssss?????