標籤:three.js webgl 圖形 javascript web3d
商域無疆 (http://blog.csdn.net/omni360/)
本文遵循“署名-非商業用途-保持一致”創作公用協議
轉載請保留此句:商域無疆 - 本部落格專註於 敏捷開發及移動和物聯裝置研究:資料視覺效果、GOLANG、Html5、WEBGL、THREE.JS,否則,出自本部落格的文章拒絕轉載或再轉載,謝謝合作。
俺也是剛開始學,好多地兒肯定不對還請見諒.
以下代碼是THREE.JS 源碼檔案中objects/Bone.js檔案的注釋.
更多更新在 : https://github.com/omni360/three.js.sourcecode
/** * @author mikael emtinger / http://gomo.se/ * @author alteredq / http://alteredqualia.com/ * @author ikerr / http://verold.com *//*///Bone是骨骼對象,是蒙皮對象的一部分,用來製作支援骨骼動畫,當前有兩種模型動畫的方式:頂點動畫和骨骼動畫。頂點動畫中,每幀動畫其實就是模型特定姿態的一個“快照”。通過在幀之間插值的方法,/// 引擎可以得到平滑的動畫效果。在骨骼動畫中,模型具有互相串連的“骨骼”組成的骨架結構,通過改變骨骼的朝向和位置來為模型產生動畫。/// 骨骼動畫比頂點動畫要求更高的處理器效能,但同時它也具有更多的優點,骨骼動畫可以更容易、更快捷地建立。不同的骨骼動畫可以被結合到一起——比如,/// 模型可以轉動頭部、射擊並且同時也在走路。一些引擎可以即時操縱單個骨骼,這樣就可以和環境更加準確地進行互動——模型可以俯身並向某個方向觀察或射擊,/// 或者從地上的某個地方撿起一個東西。多數引擎支援頂點動畫,但不是所有的引擎都支援骨骼動畫。/// 一些引擎包含面部動畫系統,這種系統使用通過音位(phoneme)和情緒修改面部骨骼集合來表達面部表情和嘴部動作。*////<summary>Bone</summary>///<param name ="belongsToSkin" type="SkinnedMesh">蒙皮對象</param>///<returns type="Bone">骨骼對象</returns>THREE.Bone = function ( belongsToSkin ) {THREE.Object3D.call( this );//調用Object3D對象的call方法,將原本屬於Object3D的方法交給當前對象Bone來使用.this.skin = belongsToSkin;//包含次骨骼的皮膚.this.accumulatedRotWeight = 0;//旋轉權重遞增步長this.accumulatedPosWeight = 0;//位移權重遞增步長this.accumulatedSclWeight = 0;//縮放權重遞增步長};/*****************************************************下面是Bone對象的方法屬性定義,繼承自Object3D**************************************************/THREE.Bone.prototype = Object.create( THREE.Object3D.prototype );/*///updateMatrixWorld方法對當前骨骼對象及其子物件的matrix屬性應用全域位移,旋轉,縮放變換.///NOTE: 在updateMatrixWorld方法中如果參數force為true,將對其子物件應用同樣的全域變換.*////<summary>updateMatrixWorld</summary>///<param name ="force" type="Boolean">true或者false</param>///<returns type="Object3D">返回新的Object3D對象</returns>THREE.Bone.prototype.updateMatrixWorld = function ( force ) {THREE.Object3D.prototype.updateMatrixWorld.call( this, force );//繼承Object3D對象的updateMatrixWorld方法,// Reset weights to be re-accumulated in the next frame// 重新設定權重,在下一幀重新遞增步長this.accumulatedRotWeight = 0;this.accumulatedPosWeight = 0;this.accumulatedSclWeight = 0;};
商域無疆 (http://blog.csdn.net/omni360/)
本文遵循“署名-非商業用途-保持一致”創作公用協議
轉載請保留此句:商域無疆 - 本部落格專註於 敏捷開發及移動和物聯裝置研究:資料視覺效果、GOLANG、Html5、WEBGL、THREE.JS,否則,出自本部落格的文章拒絕轉載或再轉載,謝謝合作。
以下代碼是THREE.JS 源碼檔案中objects/Bone.js檔案的注釋.
更多更新在 : https://github.com/omni360/three.js.sourcecode
three.js 源碼注釋(六十三)objects/Bone.js