freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于directx的三維人體建模與運(yùn)動(dòng)仿真結(jié)題報(bào)告-免費(fèi)閱讀

  

【正文】 的偏角對(duì)應(yīng)的旋轉(zhuǎn)變換相同的變換矩陣,從而達(dá)到相同的控制效果。在骨骼動(dòng)畫中模型的控制就是使用絕對(duì)控制的方式來實(shí)現(xiàn)的,即,在不同的時(shí)間點(diǎn)上,用 .X 文件中動(dòng)畫數(shù)據(jù)的變換矩陣,分別直接賦給相應(yīng)框架的變換矩陣?yán)?,然后更新框架信息和網(wǎng)格,繪制出具有特定形態(tài)的新模型。 在具體的變換矩陣的設(shè)置中,根據(jù)是否繼承原有的變換矩陣,網(wǎng)格模型的控制又分為絕對(duì)控制和相對(duì)控制兩種形式。而在蒙皮網(wǎng)格模型中,則需要為這個(gè)獨(dú)立變換,在網(wǎng)格容器中額外添加一組變換矩陣變量,并且這些矩陣變換的作用是不傳給與之連接的下層網(wǎng)格的。 同樣的,由上文蒙皮網(wǎng)格的存儲(chǔ)方式可知,從 .X 文件中我們可以得到原始的完整的人體網(wǎng)格,將人體網(wǎng)格分解成不同骨骼部位的骨骼變換矩陣,以及將各個(gè)骨骼重新 拼接成人體模型的重組變換矩陣。所以在繪制一個(gè)關(guān)節(jié)時(shí),首先調(diào)用 SetTransform()函數(shù),以封裝該關(guān)節(jié)的網(wǎng)格信息的框架包含的綜合變換矩陣( XSSFRAME_EX 中的 matCombined 矩陣)為參數(shù),設(shè)置好繪制方式,然后才調(diào)用 ID3DXMesh::DrawSubset()方法繪制相應(yīng)的網(wǎng)格。在對(duì)數(shù)據(jù)對(duì)象的解析過程中,首先由GetObjectGUID()功能函數(shù)獲取數(shù)據(jù)對(duì)象的 GUID,此處的 GUID正是 .X文件開始處的模板定義中所說的全局唯一標(biāo)識(shí)號(hào)( GUID: Globally Unique Identification Number);然后根據(jù)標(biāo)識(shí)號(hào)區(qū)分出所解析的數(shù)據(jù)對(duì)象由哪一種模板定義,從而將各數(shù)據(jù)對(duì)象分門別類,與此同時(shí)通過 GetObjectName()和 GetObjectData()功能函數(shù)將數(shù)據(jù)對(duì)象中的信息導(dǎo)出并記錄到不同的數(shù)據(jù)容器里。 public: // Constructor and destructor CXInternalParser()。 DWORD m_LoadFlags。 // Count the number of Meshes in the x file 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 19 void Count(DWORD *Num)。 DWORD nMeshType。 }XSSD3DXFRAME_EX, *LPXSSD3DXFRAME_EX。 // Reset transformation matrices to Original Config void ResetToOriginalConfig()。 DWORD nRangeIndex。 // Scaling Transformation to configure the dummy D3DXMATRIX matControlT。 [2] 其中 XSSD3DXFRAME 的定義如下: 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 17 // Declare an extended version of D3DXFRAME // that contains a constructor and destructor // as well as a bined transformation matrix typedef struct XSSD3DXFRAME_EX : public D3DXFRAME { D3DXMATRIX matCombined。 } 用于 定義骨骼影響權(quán)重。FrameTransformMatrix 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 15 template FrameTransformMatrix { F6F23F41768611cf8F520040333594A3 Matrix4x4 frameMatrix。 ② 轉(zhuǎn)換矩陣,本地轉(zhuǎn)換矩陣,初始化最初動(dòng)作狀態(tài)。模板的名稱只是在 .X 文件的數(shù)據(jù)對(duì)象定義中時(shí)起到模板類型的代稱的作用。 數(shù)據(jù)模板定義 .X 文件中的數(shù)據(jù)模板 用于定義 .X 文件中數(shù)據(jù)對(duì)象的布局。此處不再贅述。假定頂點(diǎn) P 受骨骼 2 影響的權(quán)重值為α,受骨骼 3 影響的權(quán)重值為β,骨骼 2 運(yùn)動(dòng)后計(jì)算出的頂點(diǎn) P的局部坐標(biāo)為 XLocal_2,骨骼 3 運(yùn)動(dòng)后計(jì)算出的頂點(diǎn) P 的局部坐標(biāo)為 XLocal_3,那么頂點(diǎn) P 最終的坐標(biāo)應(yīng)該為 XLocal_2α +XLocal_3β,其中α +β = 1。設(shè)旋轉(zhuǎn)后的骨骼 2 世界坐標(biāo)變換矩陣為 W2,頂點(diǎn)旋轉(zhuǎn)后的世界坐標(biāo) Xworld_new 和骨骼坐標(biāo) Xframe_new 滿足關(guān)系式 Xworld_new = Xframe_new*W2,由于頂點(diǎn)相對(duì)于它的骨骼坐標(biāo)系的坐標(biāo)在旋轉(zhuǎn)過程中保持不變,從而 Xframe_new = Xframe_0,因此有 Xworld_new = Xframe_0*W2。 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 11 世界坐標(biāo)系世界坐標(biāo)系(頂點(diǎn)的世界坐標(biāo) Xwo r l d)局部坐標(biāo)系 1局部坐標(biāo)系 M (網(wǎng)格頂點(diǎn)的局部坐標(biāo) 原始坐標(biāo) Xl o c al)某低層骨骼坐標(biāo)系 n (網(wǎng)格頂點(diǎn)的骨骼坐標(biāo) Xn)世界根 F r ame第 2 層 F r ame第 M 層 F r ame (整體組合)第 n 層 F r ame (低層骨骼)…………某高層骨骼坐標(biāo)系 m (網(wǎng)格頂點(diǎn)的骨骼坐標(biāo) Xm)第 m 層 F r ame (局部組合)……* ( AnAn 1…Am…AM +1) 1* ( AnAn 1…Am…AM +1)* ( AnAn 1…Am 1)* ( AmAm 1…AM +1)* ( AMAM 1…A2)* ( A1)注:矩陣 An為骨骼矩陣矩陣 AN為局部變換矩陣 圖 6 蒙皮網(wǎng)格模型的變換矩陣作用原理 講解圖三 其中,矩陣“ (An An1…Am…AM+1)1 ”稱為骨骼的權(quán)重矩陣,是從局部坐標(biāo)系所在的框架開始遍歷到該骨骼,通過各層的骨骼矩陣左乘,然后求逆計(jì)算出來的。 在角色網(wǎng)格中相繼點(diǎn)擊鼠標(biāo),為角色網(wǎng)格設(shè)置一系列的骨骼。在重新顯示完整的人體模型時(shí),再次通過變換矩陣 Bn 將各個(gè)骨骼還原到原來的位置上。其中標(biāo)準(zhǔn)網(wǎng)格模型只是單純地以每一個(gè)關(guān)節(jié)部位為單元,存儲(chǔ)對(duì)應(yīng)的所有的頂點(diǎn)、相應(yīng)的材質(zhì)、紋理信息,以及一組變換矩陣;因此在這種網(wǎng)格模型中,修改變換矩陣所帶來的影響是針對(duì)一個(gè)部位所有的頂點(diǎn),并且作用的程度是完全一樣的。 三維人體模型結(jié)構(gòu)剖析 根據(jù)真實(shí)人體結(jié)構(gòu),我們知道當(dāng)我們舉起下手臂時(shí),與之連接的手掌是一起被舉起來的,而當(dāng)我們舉起同樣與下手臂連接的上手臂時(shí),則是手掌和下手臂都一起連帶著被舉起;當(dāng)我們扭動(dòng)脖子時(shí),與之連接的頭部便隨之轉(zhuǎn)動(dòng)一定角度,而當(dāng)我們轉(zhuǎn)動(dòng)與同樣與脖子連接的脊椎時(shí),則脖子和頭部都將隨之轉(zhuǎn)動(dòng)一定角度。然而 DirectX 中 Direct3D 應(yīng)用程序的開發(fā),以游戲編程領(lǐng)域基于 Win32 的應(yīng)用程序?yàn)橹?,結(jié)合 MFC 應(yīng)用程序框架的Direct3D 應(yīng)用程序的開發(fā)并不多見,所以熟練掌握 MFC 與 Direct3D 的結(jié)合方法至關(guān)重要。歸屬于某一模型部位的頂點(diǎn)組成一個(gè)集合,一個(gè)集合對(duì)應(yīng)一 組變換矩陣。 基于 DirectX 三維人體運(yùn)動(dòng)仿真的原理簡(jiǎn)介 所謂運(yùn)動(dòng)仿真,初步地說,可以看作是讓一個(gè)人體模型做出真實(shí)人體能夠做出的運(yùn)動(dòng)狀態(tài);高級(jí)地說,還需嵌入一些重力、機(jī)械動(dòng)力學(xué)等物理因素到其中,使之更貼切地模擬真實(shí)世界中人體的運(yùn)動(dòng)。 總之, DirectX 的主要好處有兩個(gè):為軟件開發(fā)者提供與硬件的無關(guān)性;為硬件開發(fā)提供策略。 DirectDraw 主要負(fù)責(zé) 2D 加速,以實(shí)現(xiàn)對(duì)顯卡內(nèi)存和系統(tǒng)內(nèi)存的直接操作;Direct3D 主要提供三維繪圖硬件接口,它是開發(fā)三維 DirectX游戲的基礎(chǔ)。 2. 概述 DirectX 簡(jiǎn)介 DirectX 是微軟推出的一套基于 Windows 系統(tǒng)的多媒體應(yīng)用程式接口 APIs 函式。然而,在三維設(shè)計(jì)中,商業(yè)領(lǐng)域,有 3Ds MAX、 MAYA 兩大軟件;在工程運(yùn)用上,有 AutoCAD、 Solid Works 等專業(yè)建模工具。本人授權(quán) 大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。 關(guān)鍵詞: 剖析 .X文件 結(jié)合 MFC 與 Direct3D 骨骼動(dòng)畫 4x4 變換矩陣剖析 中圖分類號(hào): 1. 引 言 近年來,三維仿真技術(shù)被廣泛的應(yīng)用。所以深入研究三維模型的建模規(guī)則,熟練掌握 DirectX 的使用方法,實(shí)現(xiàn)對(duì)三維模型的靈活編輯控制,尤其將 Direct3D 與同用的 MFC 應(yīng)用程序框架相結(jié)合,可以使得 3D 仿真技術(shù)在信息處理領(lǐng)域的運(yùn)用變得更加方便。 DirectX 包含如下 組件: DirectX Graphics(包含 DirectDraw amp。 DirectSound 主要提供音頻捕捉、回放、音效處理、硬件加速、直接設(shè)備訪問等功能。好在微軟公司等為這些大型三維建模軟件研發(fā)了模型格式轉(zhuǎn)換插件,使得用戶可以在 3Ds MAX等常用三維建模軟件中設(shè)計(jì)優(yōu)質(zhì)的三維模型,然后利用第三方插件,將建好的模型導(dǎo)出到 .X 文件中,如 就是用于將 3Ds MAX 建模軟件生成的 .max 文件轉(zhuǎn)換為 .X 文件的插件之一。其中常見的三個(gè)頂點(diǎn)確定一張三角平面,按這三點(diǎn)的某一種“繞序”確定該張平面的法向量,逆其法向量觀察平面可見,順其法向量觀察平面則不可見。在模型編輯與控制過程中,對(duì)應(yīng)于頭部,我們只能夠做到使之點(diǎn)頭扭頭等以整個(gè)頭部為控制單元的動(dòng)作,而不能夠使之皺眉頭、扮笑臉、轉(zhuǎn)眼珠之類的動(dòng)作;要實(shí)現(xiàn)這些目的,只能通過將建模的單元細(xì)化到能表現(xiàn)這些特征的程度,比如將眼珠作為一個(gè)部位存儲(chǔ),那么通過單獨(dú)改變與之相應(yīng)的變換矩陣,使得眼珠的方位相對(duì)于眼眶發(fā)生變化,便可以實(shí)現(xiàn)“轉(zhuǎn)眼珠”的效果了。比如,當(dāng)我們只想要一個(gè)女性模型的上手臂細(xì)一些,而保持其臂長(zhǎng)及其他部位的形狀,那么我們需要對(duì)手臂在垂直于手臂方向上的尺度分量做縮減,在手臂方向上的尺度分量保持不變;并且在這個(gè)問題上,對(duì)上臂的編輯所帶來的影響不期望被傳遞,一面影響模型的其他部位。這便體現(xiàn)了人體關(guān)節(jié)運(yùn)動(dòng)的關(guān)聯(lián)特性。 蒙皮網(wǎng)格模型中變換矩陣的作用原理 蒙皮網(wǎng)格模型的存儲(chǔ)方式 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 9 蒙皮網(wǎng)格模型在建立過程中便如繪畫一般將模型以一個(gè)整體的形式構(gòu)建起來,得到一個(gè)完全靜態(tài)的,不具備受控能力的完整的人體模型。 逐次在上臂、前臂和手掌的 Mesh 內(nèi)部選定骨骼,形成圖中的 3 條骨骼。 由于任意兩個(gè)父子骨骼的坐標(biāo)系,一定存在一個(gè)坐標(biāo)變換矩陣 Aframe,使得子骨骼蒙皮上頂點(diǎn)的骨骼坐標(biāo) Xchild 與該頂點(diǎn)在父骨骼坐標(biāo)系中的坐標(biāo)Xfather 滿足如下關(guān)系式 Xfather = Xchild*Aframe,矩陣 Aframe 稱為子骨骼的骨骼矩陣。由此看出,應(yīng)用反應(yīng)父子相對(duì)關(guān)系的骨骼矩陣來存儲(chǔ)骨骼動(dòng)畫的運(yùn)動(dòng)變化,需要較少的數(shù)據(jù)更新。如圖 7 的點(diǎn) P 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 12 圖 7 蒙皮網(wǎng)格模型的變換矩陣作用原理 講解圖四 當(dāng) 模型伸手 取物時(shí),骨骼 2 和骨骼 3 均會(huì)同時(shí)繞著各自的關(guān)節(jié)點(diǎn)抬起,此時(shí)關(guān)節(jié)點(diǎn) 3 附近的頂點(diǎn) P,會(huì)隨著前臂的骨骼 2 和手掌的骨骼 3 的運(yùn)動(dòng)而運(yùn)動(dòng)。在構(gòu)建完整的人體模型時(shí),首先依據(jù)所要?jiǎng)?chuàng)建的人體模型的尺度特征,對(duì)各個(gè)關(guān)節(jié)分別作一次比例變換 An;其次再利用由旋轉(zhuǎn)變換和平 信息科學(xué)與技術(shù)學(xué)院 電子工程與信息科學(xué)系 ( EEIS) 13 移變換組合成的變換矩陣 Bn 分別將它們遷移到世界坐標(biāo)系中的不同的部位,拼接到一起得到人體模型的樣子。 從文件整體結(jié)構(gòu)上 .X 文件分為文件頭、數(shù)據(jù)模板定義和數(shù)據(jù)對(duì)象三個(gè)方面。依據(jù)模板是否嵌套定義,嵌套的原則如何,模板分為普通模板和嵌套模板,其中嵌套模板又分為封閉式、開放式和受限式三種。Frame template Frame { 3D82AB4662DA11cfAB390020AF71E433 [...] } 用于 定義框架容器,可用來裝載 Mesh 對(duì)象,也可以包含子框架。 array MeshFace faces[nFaces]。 array DWORD vertexIndices[nWeights]。而標(biāo)準(zhǔn)網(wǎng)格模型中對(duì)應(yīng)一個(gè)關(guān)節(jié)便有一個(gè)套完整的網(wǎng)格數(shù)據(jù),并且這些數(shù)據(jù)又分別被封裝在不同的子框架中,不同的關(guān)節(jié)間的連接及層次關(guān)系則由用于封裝的子框架之間的嵌套關(guān)系來體現(xiàn)。 // New Transformation for Specifying the Dummy D3DXMATRIX matFeatureT。 // To store separate Rotate T
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1