2008年6月11日
摘要: 在骨骼動畫網格模型中,骨骼的變動導致軀體網格模型的改變,于是就有了骨骼動畫。網格模型是由一個個頂點構成的,如果任意一個頂點只受一塊骨骼影響,那么網格模型在運動時很容易出現裂縫,特別是在一些結合部位,如肩關節、肘關節等。盡管可以使用縫合技術縮小這些裂痕,但當關節的旋轉比較極端時,例如前臂繞肘關節旋轉120度時,就會在肘關節處出現一個較大的剪缺。這是因為只有一個多邊形跨越在上臂和前臂之間的整個間隙,間隙越大,裂縫就越大,最終的渲染效果也越差。
閱讀全文
摘要: 使用cAnimMesh類包含3個步驟,首先在回調函數OnCreateDevice()中創建cAnimMesh類的實例,接著在回調函數OnFrameRender()中渲染網格模型,最后在回調函數OnDestroy()中釋放網格模型。
閱讀全文
摘要: 類cAnimMesh是最關鍵的一個類,所有與骨骼動畫相關的具體實現細節都封裝在該類中,該類還定義了類cAllocateHierarchy的一個對象m_alloc_hierarchy,該對象完成從文件中加載動畫網格模型的骨骼層次結構、動畫數據以及其他用于繪制模型的幾何數據。
閱讀全文
摘要: 為了方便加載.x文件中的框架和網格模型數據,Direct3D提供了一個ID3DXAllocateHierarchy接口,該接口中有4個純虛函數:用來創建框架的CreateFrame(),創建網格容器的CreateMeshContainer(),銷毀框架的DestroyFrame(),銷毀網格容器的DestroyMeshContainer()。應用程序會在相應的時機自動調用這些對應的函數,以構建或者銷毀對應的框架或網格模型。
閱讀全文
摘要: 骨骼動畫是目前最流行也最復雜的角色動畫,它包含以下幾個重要元素:骨骼、動畫。骨骼動畫思想的起源很簡單,自然界中的大多數動物都擁有一套骨骼,身體的皮毛血肉都依附于骨骼,當骨骼開始運動的時候,依附于對應骨骼的皮毛血肉都隨骨骼一起運動。在三維圖形編程領域,角色的軀體是由網格模型來表示的,網格模型通常由大量三角形圖元組成,而三角形又是由頂點組成的。為了模仿現實世界中角色自身的動作,就需要為角色網格模型添加一套骨骼,同時需要確定哪些頂點依附于哪塊骨骼,這樣當骨骼運動時就能牽引依附骨骼的頂點一起運動,這就是骨骼動畫的基本原理。
閱讀全文