計(jì)算機(jī)圖形學(xué) - 沈工大作業(yè)管理_第1頁(yè)
已閱讀1頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、三維實(shí)體建模,計(jì)算機(jī)科學(xué)與技術(shù)系,三維圖形的基本問(wèn)題,三維圖形的基本研究?jī)?nèi)容:三維物體的表示 - 建模消除隱藏面與隱藏線 –消隱繪制真實(shí)感圖形方法 – 繪制在二維屏幕上顯示三維物體 –投影,三維物體,三維物體,如加工部件,利用體素幾何變換或集合運(yùn)算曲面形狀的物體,如汽車(chē)、飛機(jī),利用曲面造型自然景物,如樹(shù)、植物,利用分形技術(shù)場(chǎng)景特殊效果,如煙霧、火焰、云,利用物理模型模擬,模型表示,現(xiàn)實(shí)世界中的物體都是三維的。三維繪圖就是要

2、表現(xiàn)三維物體,主要要表現(xiàn)物體的立體感。紙張和屏幕都是二維的。用二維圖形也能畫(huà)出三維物體,但只是視覺(jué)上的假象,且只能靜態(tài)地表現(xiàn)三維物體。 三維繪圖先要建立三維物體的計(jì)算機(jī)模型(Model), 或稱計(jì)算機(jī)表示(Representation)。依照計(jì)算機(jī)模型顯示物體的三維景象。建模技術(shù)(Modeling)是計(jì)算機(jī)視覺(jué)、計(jì)算機(jī)動(dòng)畫(huà)、計(jì)算機(jī)虛擬現(xiàn)實(shí)等領(lǐng)域中建立3D實(shí)體模型的關(guān)鍵技術(shù)。,實(shí)體建模技術(shù),機(jī)內(nèi)表示與顯示是兩回事。計(jì)算機(jī)內(nèi)部可能只

3、是記下了 三個(gè)面,它是人通過(guò)視覺(jué)將顯 示畫(huà)面理解為立方體。由于計(jì)算機(jī)系統(tǒng)依據(jù)三維模型生成畫(huà)面,因此計(jì)算機(jī)模型要準(zhǔn)確地刻畫(huà)三維物體,不能存在這種二義性。,實(shí)體建模技術(shù)是指描述幾何模型的形狀和屬性的信息并存于計(jì)算機(jī)內(nèi),由計(jì)算機(jī)生成具有真實(shí)感的可視的三維圖形的技術(shù)。,三維模型分類(lèi),線框模型表面模型實(shí)體模型,三維模型分類(lèi)-線框模型,只是用幾何體的邊線來(lái)表示物體的外形,模型中只記錄點(diǎn)、邊。不能作消除隱藏線(面)處理,

4、表示的模型有二義性,而且不能繪制明暗效果圖。,三維模型分類(lèi)-表面模型,是利用物體的外表面來(lái)構(gòu)造模型,模型中記錄點(diǎn)、線和面的信息。表面模型的優(yōu)點(diǎn)是可以進(jìn)行面著色,隱藏面消隱,但物體內(nèi)部是空的,缺點(diǎn)無(wú)法進(jìn)行實(shí)體之間的并、交、差運(yùn)算。,三維模型的類(lèi)別,實(shí)體模型模型中記載點(diǎn)、線、面和體的信息,能作消隱處理,也能作體積、重量等物性計(jì)算。實(shí)體模型與表面模型的不同之處在于確定了表面的哪一側(cè)存在實(shí)體。,在表面模型的基礎(chǔ)上,可以采用有向棱邊隱含

5、地表示出表面的外法矢方向。右手螺旋法則:4個(gè)手指沿閉合的棱邊方向,大拇指方向?yàn)楸砻娴耐夥ㄏ蚍较?面表 邊表 點(diǎn)表,實(shí)體模型的基本數(shù)據(jù)結(jié)構(gòu),三表結(jié)構(gòu),,,,,面表和邊表中反映的是拓?fù)湫畔?點(diǎn)表中反映的是幾何信息,實(shí)體建模是基于數(shù)據(jù)結(jié)構(gòu)的,拓?fù)湫畔⑴c幾何信息,拓?fù)湫畔ⅲ好枋鰩缀卧亻g的連接關(guān)系。有人也稱之為非度量幾何。,,,,,,,,,,,,拓?fù)渫?lèi),將拓?fù)湫畔⒑蛶?/p>

6、何信息分開(kāi)放置,有利于表達(dá)形體的變形。,關(guān)于三表結(jié)構(gòu)的討論,簡(jiǎn)單的三表結(jié)構(gòu)還不是實(shí)體模型,因?yàn)椴荒鼙磉_(dá)形體的內(nèi)部。為了表達(dá)形體的內(nèi)部,要引入“環(huán)”的概念,來(lái)定義面的方向。,環(huán)具有(從物體外部看)順時(shí)針或逆時(shí)針的方向。依據(jù)右手法則,確定外環(huán)和內(nèi)環(huán):外環(huán):面的外邊界環(huán)采用逆時(shí)針?lè)较?,(也是物體)的外側(cè)。一個(gè)面只有一個(gè)外環(huán)。內(nèi)環(huán):有孔洞的面,空洞邊界采用順時(shí)針?lè)较?,一個(gè)面可以有多個(gè)內(nèi)環(huán)。,關(guān)于三表結(jié)構(gòu)的討論,加入環(huán)的信息

7、 面表 面號(hào) 環(huán) 1 點(diǎn)號(hào)1 - 點(diǎn)號(hào)2 - 點(diǎn)號(hào)3 - 點(diǎn)號(hào)4 … … 也可表示為,,,,三表結(jié)構(gòu)的實(shí)現(xiàn),三表結(jié)構(gòu)可以用指針、對(duì)象等多種方法實(shí)現(xiàn)。例:在繪制立方體線框圖時(shí)用數(shù)組表示立方體 面點(diǎn)

8、關(guān)系(拓?fù)潢P(guān)系) facePoint [f][i] = pointNum f : 1– 6,面號(hào);i : 1– 4, 第m 個(gè)面的第i 個(gè)點(diǎn); pointNum : 1– 8,點(diǎn)號(hào); 點(diǎn)坐標(biāo)(幾何信息) point[p][j] = zz p : 1– 8,點(diǎn)號(hào); zz:坐標(biāo)值; j = 1

9、/ 2 / 3 表示 x / y / z 坐標(biāo);,static const GLfloat vertex_list[][3] = { -0.5f, -0.5f, -0.5f, //0 0.5f, -0.5f, -0.5f, //1 -0.5f, 0.5f, -0.5f, //20.5f, 0.5f, -0.5f, //3 -0.5f, -0

10、.5f, 0.5f, //40.5f, -0.5f, 0.5f, //5 -0.5f, 0.5f, 0.5f, //60.5f, 0.5f, 0.5f, //7};,static const GLint index_list[][4] = { 0, 2, 3, 1, 0, 4, 6, 2, 0, 1, 5, 4, 4, 5, 7, 6, 1, 3, 7,

11、5, 2, 6, 7, 3, };,for(int i=0; i<6; ++i) //{ glBegin(GL_LINE_LOOP); for(int j=0; j<4; ++j) //glVertex3fv(vertex_list[index_list[i][j]]); glEnd();},正四面體,建立正四面體的伴隨立方體可以很容易地確定正四面體的頂點(diǎn)表和面表。

12、,正四面體幾何模型,正四面體的外接球和其伴隨立方體的外接球是同一個(gè)球;正四面體外接球的直徑就是立方體的對(duì)角線。假設(shè)立方體的半邊長(zhǎng)為a,令V0點(diǎn)為(a,a,a)。,體素的構(gòu)造,體素,定義的簡(jiǎn)單形體對(duì)體素構(gòu)造三表結(jié)構(gòu)如圓錐,轉(zhuǎn)變?yōu)槎噙呅危淳W(wǎng)格, 共有 101個(gè)頂點(diǎn) vertex 290條邊 edge 100個(gè)面 face輸入底面中心坐標(biāo)(x,y,z)、半徑R、

13、圓錐高h(yuǎn),由程序生成上述面 – 環(huán) – 邊 – 點(diǎn)間的關(guān)系。其他體素,如長(zhǎng)方體、棱柱、棱錐、棱臺(tái)、圓柱、圓錐、圓臺(tái),體素的集合運(yùn)算,構(gòu)造復(fù)雜形體要對(duì)體素進(jìn)行集合運(yùn)算,集合 運(yùn)算包括并、交、差運(yùn)算。,B,A,A - B,A∪B,A∩B,集合運(yùn)算的有效性,集合運(yùn)算可能引起降維:產(chǎn)生了無(wú)厚度的二維面(懸面),這在實(shí)體造型中是不允許的。三維空間中有效的形體叫正則實(shí)體,能產(chǎn)生正則形體的集合運(yùn)算叫正則集合運(yùn)算。,A,B,A∩B

14、,,歐拉檢驗(yàn),一般集合運(yùn)算要經(jīng)過(guò)檢驗(yàn),去掉懸點(diǎn)、懸邊和懸面。檢驗(yàn)的方法是通過(guò)歐拉(Euler)公式。 簡(jiǎn)單多面體的歐拉公式: V – E + F = 2 帶孔洞多面體的歐拉公式: V – E + F - H = 2(C – G)其中 V:頂點(diǎn)個(gè)數(shù);E:邊個(gè)數(shù);F:面?zhèn)€數(shù) H :多面體表面上孔的個(gè)數(shù) G :貫穿

15、多面體的孔的個(gè)數(shù) C :獨(dú)立的、不相連接的多面體數(shù),常用的實(shí)體建模方法,常用方法:體素定義和描述+集合運(yùn)算掃描表示構(gòu)造表示- 結(jié)構(gòu)實(shí)體幾何 CSG邊界表示 R-rep,實(shí)體(建模)造型技術(shù)是指描述幾何模型的形狀和屬性的信息并存于計(jì)算機(jī)內(nèi),由計(jì)算機(jī)生成具有真實(shí)感的可視的三維圖形的技術(shù)。,掃描(Sweep)法-體素的擴(kuò)展,一些形體還是不能由簡(jiǎn)單體素 + 正則集合運(yùn)算生成。,掃描方法,掃描(Sweep)法-體素的擴(kuò)

16、展,掃描(Sweep)法-體素的擴(kuò)展,記錄信息(環(huán)、線、點(diǎn))物體面的構(gòu)造(前、后、側(cè)),構(gòu)造實(shí)體幾何 CSG,構(gòu)造實(shí)體幾何:先定義一些形狀比較簡(jiǎn)單的常用體素,然后用集合運(yùn)算并、交、差把體素修改成復(fù)雜形狀的形體。,體素 + 集合運(yùn)算,立方體、圓柱、圓錐等,或半空間,并、交、差,,,構(gòu)造實(shí)體幾何 CSG-Constructive Solid Geometry,構(gòu)造實(shí)體幾何,用有序的二叉樹(shù)表示,其葉結(jié)點(diǎn)或是體素,或是剛體運(yùn)動(dòng)的變換參數(shù)。中間

17、結(jié)點(diǎn)或是正則的集合運(yùn)算或是剛體的幾何變換。,邊界表示(BRep表示),按照體-面-環(huán)-邊-點(diǎn)的層次,詳細(xì)記錄了構(gòu)成實(shí)體的所有幾何元素的幾何信息及其相互連接的拓?fù)潢P(guān)系。邊界表示的一個(gè)重要特點(diǎn)是在該表示法中,描述形體的信息包括幾何信息(Geometry)和拓?fù)湫畔ⅲ═opology)兩個(gè)方面。,拓?fù)湫畔⒚枋鲂误w上的頂點(diǎn)、邊、面的連接關(guān)系,拓?fù)湫畔⑿纬晌矬w邊界表示的“骨架”。形體的幾何信息猶如附著在“骨架”上的肌肉。,邊界表示(BRep

18、表示),Brep表示的優(yōu)點(diǎn)是:表示形體的點(diǎn)、邊、面等幾何元素是顯式表示的,使得繪制Brep表示的形體的速度較快,而且比較容易確定幾何元素間的連接關(guān)系;容易支持對(duì)物體的各種局部操作,比如進(jìn)行倒角。便于在數(shù)據(jù)結(jié)構(gòu)上附加各種非幾何信息,如精度、表面粗糙度等。,邊界表示(BRep表示),Brep表示的缺點(diǎn)是:數(shù)據(jù)結(jié)構(gòu)復(fù)雜,需要大量的存儲(chǔ)空間,維護(hù)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的程序比較復(fù)雜;Brep表示不一定對(duì)應(yīng)一個(gè)有效形體,通常運(yùn)用歐拉操作來(lái)保證Br

19、ep表示形體的有效性、正則性等。Brep表示覆蓋域大,原則上能表示所有的形體,而且易于支持形體的特征表示等,Brep表示已成為當(dāng)前CAD/CAM系統(tǒng)的主要表示方法。,實(shí)例,實(shí)例,曲面體建模,曲面體,如球體、圓柱體、圓錐體、圓環(huán)體等光滑物體曲面體由若干個(gè)三角平面片或四邊形平面片(網(wǎng)格)構(gòu)成,隨著網(wǎng)格數(shù)量增多,較好逼近光滑曲面,光滑物體,多面體是由平面多邊形組成的物體,多面體沒(méi)有方程表示形式,用頂點(diǎn)表和面表直接給出數(shù)據(jù)結(jié)構(gòu)定義。對(duì)于球

20、、圓柱、圓錐、圓環(huán)等光滑物體,表面有確定的參數(shù)方程表示形式。繪制光滑物體時(shí),需要進(jìn)行網(wǎng)格劃分,即把光滑曲面離散為平面多邊形表示,這些多邊形一般為平面四邊形或三角形網(wǎng)格。光滑物體的網(wǎng)格頂點(diǎn)表和面表使用物體的參數(shù)方程離散計(jì)算后得到。,球體,球面表示球體,球面是一個(gè)二次曲面球心在原點(diǎn),半徑為r的球面三維坐標(biāo)系,球面的參數(shù)方程表示為,α為緯度角,從北向南遞增,即,球體,球面可以使用經(jīng)緯線劃分成若干個(gè)小面,稱為經(jīng)緯區(qū)域南北極區(qū)域采用三角網(wǎng)

21、格逼近,其他區(qū)域采用四邊形網(wǎng)格逼近假定將球面劃分為n1=4個(gè)緯度區(qū)域,n2=8個(gè)經(jīng)度區(qū)域。則緯度方向的角度增量和經(jīng)度方向的角度增量均為α=β=45°,共有(n1-1)n2+2 = 26個(gè)頂點(diǎn)。,glutWireSphere(0.8, 8, 4);,glutWireSphere(0.8, 20, 10);,球體網(wǎng)格,球面網(wǎng)格化的方法分為遞歸劃分法,,P1,P2,P0,OpenGL繪制二次曲面,OpenGL的glu庫(kù)提供了以下類(lèi)

22、型的二次曲面繪制:Cylinder, 圓柱體,使用gluCylinder函數(shù)Cone, 圓錐,使用gluCyliner函數(shù)。同CylinderSphere, 球體,使用gluSphere函數(shù)Disk, 碟盤(pán),也就是同心圓,使用gluDisk函數(shù)Partial Disk, 部分同心圓,使用gluPartialDisk函數(shù),GLUquadricObj *qobj;qobj = gluNewQuadric();// 創(chuàng)建二次曲面對(duì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論