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

正文內(nèi)容

虛擬現(xiàn)實(shí)中的碰撞檢測(cè)技畢業(yè)論文(參考版)

2025-06-22 05:04本頁(yè)面
  

【正文】 實(shí)驗(yàn)中 各參數(shù)值如圖 51 所示:。在碰撞檢測(cè),以及物體三維顯示中, 模型文件來(lái)建立的。每個(gè)物體的 .mod 文件均包括了每個(gè)三角面片的三個(gè)頂點(diǎn)在空間位置的坐標(biāo),以及每個(gè)物體劃分的三角面片的個(gè)數(shù)等等信息。因此,本實(shí)例虛擬場(chǎng)景中物體形狀的選擇具有代表性和典型性。一般情況下采用面模型表示物體,尤以三角形模型為最優(yōu)。虛擬環(huán)境中物體所用的模型有體模型和面模型。下面將詳細(xì)介紹這三種技術(shù)。虛擬場(chǎng)景是描述一個(gè)多面體從空中做自由落體運(yùn)動(dòng),碰到地面上的物體發(fā)生碰撞摔成碎片的過(guò)程。打開(kāi) Visual C++,選擇“工程”菜單,在下拉菜單下選擇 “設(shè)置”,出現(xiàn)“project setting”界面,然后選擇 “l(fā)ink”選項(xiàng),最后在“對(duì)象/庫(kù)模塊 ”中添加“、 ”三個(gè)庫(kù)文件,最后單擊“確定” 按鈕,這樣 OpenGL庫(kù)文件添加完畢。類只向外界公布其具有public 屬性的數(shù)據(jù)和代碼,并構(gòu)成類與外界的接口,程序的其他部分只能訪問(wèn)類的接口,只要保持類的接口不變,改變類的內(nèi)部結(jié)構(gòu)、工作方式和實(shí)現(xiàn)就不會(huì)對(duì)整個(gè)程序產(chǎn)生附加的影響,因此,改變類內(nèi)部實(shí)現(xiàn)方式能夠達(dá)到優(yōu)化的目的。對(duì)于程序設(shè)計(jì)者來(lái)說(shuō),某種功能的實(shí)現(xiàn)隨著它的發(fā)展會(huì)不斷的優(yōu)化和改變,如果能夠通過(guò)只是改變某一部分程序而能實(shí)現(xiàn)它,且不影響其他部分的功能的實(shí)現(xiàn),就會(huì)大大提高程序設(shè)計(jì)的可修改性。而面向?qū)ο蟮幕舅枷刖褪潜M量對(duì)客觀世界的直觀化反映,所見(jiàn)即所得,它與圖形處理的要求相符,同時(shí)符合程序設(shè)計(jì)者的思維方式,以便程序設(shè)計(jì)者集中精力進(jìn)行三維圖形處理的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。從而很輕松的維護(hù)管理此類的數(shù)據(jù),提高代碼的可重用性,避免了代碼的重復(fù)。面向?qū)ο蟪绦蛟O(shè)計(jì)用類(class)來(lái)表示具有相同屬性的所有對(duì)象的邏輯原型,是對(duì)象設(shè)計(jì)的規(guī)則。面向?qū)ο蟮木幊谭椒ň哂幸韵滤膫€(gè)基本特征:抽象、繼承、封裝、多態(tài)。消息是向某對(duì)象請(qǐng)求服務(wù)的一種表達(dá)方式,對(duì)象內(nèi)有方法和數(shù)據(jù),外部的用戶或?qū)ο髮?duì)該對(duì)象提出的服務(wù)請(qǐng)求稱為向該對(duì)象發(fā)送消息。類是具有相同操作功能和相同的數(shù)據(jù)格式(屬性)的對(duì)象的集合。 面向?qū)ο蟮木幊淌褂?VC++開(kāi)發(fā) windows 環(huán)境下 OpenGL 應(yīng)用程序,采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,便于維護(hù)管理三維數(shù)據(jù),使開(kāi)發(fā)出來(lái)的源代碼具有很好的可調(diào)試性、可維護(hù)性以及可重用性。glDisable(GL_DEPTH_TEST)。當(dāng)一個(gè)實(shí)體(不透明)對(duì)象放置在另一個(gè)對(duì)象前的時(shí)候,前面那個(gè)對(duì)象就會(huì)遮住后面對(duì)象的一部分或者全部。深度緩沖區(qū)經(jīng)常用來(lái)執(zhí)行隱藏面的刪除。深度通常用視點(diǎn)到物體的距離來(lái)度量,這樣帶有較大深度值的象素就會(huì)被帶有較小深度值的象素替代。每個(gè)值都代表了像素與觀察者之間的距離,并按比例去填滿當(dāng)前的近處/遠(yuǎn)處剪貼空間。指定紋理坐標(biāo)的 OpenGL 函數(shù)為glTexCoord。對(duì)于二維紋理圖,紋理坐標(biāo)在兩個(gè)方向上的取值范圍都是~。用同樣的參數(shù)調(diào)用函數(shù) glDisable 則禁止一維紋理或二維紋理。3.啟動(dòng)紋理繪制 要進(jìn)行紋理繪制,首先必須啟動(dòng)紋理繪制。OpenGL 提供了三種紋理映射方法:一種是簡(jiǎn)單地把紋理的顏色作為最終的顏色來(lái)使用;另一種方法是使用紋理來(lái)調(diào)節(jié)目標(biāo)區(qū)的顏色,以獲得最終顏色;最后一種是使用紋理顏色與目標(biāo)區(qū)顏色相融合。要在 OpenGL 中定義 2D 紋理圖像,可以調(diào)用 glTexImage2D,它除了含有參數(shù) height之外,其他參數(shù)與 glTextImage1D 相同,如下所示:Void glTextImage1D(GLenum target,Glint level,Glint ponents,GLsizei width,GLsizei height, Glint border,GLenum format,GLenum type,const GLvoid *pixels)與 glTexImage1D 一樣,參數(shù) width 和 height 必須為 2 的冪數(shù)。在在OpenGL 中一個(gè)簡(jiǎn)單的函數(shù)定義 1D 紋理:glTexImage1D,一個(gè)簡(jiǎn)單的函數(shù)定義 2D 紋理:glTexImage2D函數(shù)定義如下:Void glTextImage1D(GLenum target,Glint level,Glint ponents,GLsizei width,Glint border,GLenum format,GLenum type,const GLvoid *pixels) [17]Target 參數(shù)指定應(yīng)該定義哪一個(gè)紋理,這一參數(shù)必須為 GL_TEXTURE_1D;level參數(shù)指出紋理圖像的詳細(xì)級(jí)別,并且通常為 0;ponents 參數(shù)指定每一個(gè)像素顏色值的數(shù)字。有一維紋理圖像、二維紋理圖像。使用紋理繪制的一般步驟為:1.定義紋理定義紋理是指設(shè)定紋理圖像。生成顏色紋理的一般方法是在一平面區(qū)域上預(yù)先定義紋理圖案,然后建立物體表面的點(diǎn)與紋理空間的點(diǎn)之間的對(duì)應(yīng)。//關(guān)閉光源 OpenGL 紋理映射現(xiàn)實(shí)世界中的物體表面很少是光滑和單調(diào)的,往往具有各種紋理,通過(guò)顏色色彩或明暗的變化體現(xiàn)出來(lái)的表面細(xì)節(jié),這類紋理稱為顏色紋理。glEnable(GL_LIGHT0)。//啟用光源glDisable(GL_LIGHTING)。參數(shù) light 是光源的標(biāo)識(shí),例如 GL_LIGHT0,GL_LIGHT1,……,GL_LIGHT7pname 代表需設(shè)置的屬性。物體的材質(zhì)屬性決定了物體反光的性質(zhì)。OpenGL 提供了 glLightModel 函數(shù)用于完成這一工作。不過(guò),每引入一個(gè)光源,都會(huì)給 OpenGL 帶來(lái)大量計(jì)算工作,最終會(huì)影響繪圖的性能,因而光源的使用需要慎重。OpenGL 提供 glLightv 函數(shù)用于定義光源,并允許同時(shí)最多 8 個(gè)光源。OpenGL 由此可計(jì)算出每個(gè)頂點(diǎn)接受來(lái)自光照的光強(qiáng)度。OpenGL 光照模型考慮光源和物體材質(zhì)屬性兩個(gè)方面的因素,同時(shí)光照效果又細(xì)分為環(huán)境光、漫射光和鏡面反射光等方面的效果。比如當(dāng)一束白光照到一個(gè)會(huì)閃光的紅色塑料球上時(shí),我們會(huì)看到這樣的效果:大部分球體看上去是紅色的,但高度處則是白色。反射和散射定義了材質(zhì)的顏色,并且二者在典型的情況下是相同的或者是相似。另外,不同的材質(zhì)有不同的環(huán)境、散射和反射顏色,它們決定了材質(zhì)的環(huán)境、散射和鏡面反射顏色。對(duì)于較光滑物體,其鏡面反射光的高光區(qū)域小而亮;相反,粗糙表面的鏡面反射光呈發(fā)散狀態(tài),其高光區(qū)域大而不亮。  就光源而言,一般來(lái)說(shuō),反射光可以分成三個(gè)分量,即環(huán)境反射、漫反射和鏡面反射。在上述三部分光中,僅僅是透射光和反射光能夠進(jìn)入人眼產(chǎn)生視覺(jué)效果。其次,對(duì)于透明體,光可以穿透該物體并從另一端射出,產(chǎn)生透射光。//紋理坐標(biāo) OpenGL 光照處理當(dāng)光照射到一個(gè)物體表面上時(shí),會(huì)出現(xiàn)三種情形。//設(shè)置材質(zhì)glNormal*()。//設(shè)置當(dāng)前顏色glEdgeFlag*()。例如:glCallList()。glEnd()。glVertex2s(16,8)。glVertex2s(0,12)。例如:glBegin(GL_POLYGON)。//整數(shù)定義的二維坐標(biāo)glVertex4f(1,2,….4)。 OpenGL 圖形繪制在 OpenGL 中,所有的幾何物體都是由若干個(gè)有序的頂點(diǎn)集合來(lái)描述。在這些步驟的執(zhí)行過(guò)程中,OpenGL 可能執(zhí)行其他的一些操作,例如自動(dòng)消隱處理等。3)計(jì)算模型中所有物體的色彩,其中的色彩根據(jù)應(yīng)用要求來(lái)確定,同時(shí)確定光照條件、紋理粘貼方式等。根據(jù)這個(gè)流程可以歸納出在 OpenGL 中進(jìn)行主要的圖形操作直至在計(jì)算機(jī)屏幕上渲染繪制出三維圖形景觀的基本步驟:1)根據(jù)基本圖形單元建立景物模型,并且對(duì)所建立的模型進(jìn)行數(shù)學(xué)描述(OpenGL中把:點(diǎn)、線、多邊形、圖像和位圖都作為基本圖形單元)。這樣運(yùn)算器和逐個(gè)頂點(diǎn)計(jì)算操作都可以針對(duì)每個(gè)頂點(diǎn)進(jìn)行計(jì)算和操作,然后進(jìn)行光柵化形成圖形碎片;對(duì)于象素?cái)?shù)據(jù),象素操作結(jié)果被存儲(chǔ)在紋理組裝用的內(nèi)存中,再象幾何頂點(diǎn)操作一樣光柵化形成圖形片元。在 OpenGL 中的所有數(shù)據(jù)包括幾何頂點(diǎn)數(shù)據(jù)和象素?cái)?shù)據(jù)都可以被存儲(chǔ)在顯示列表中或者立即可以得到處理。7)動(dòng)畫(huà)OpenGL 提供了雙緩存區(qū)技術(shù)來(lái)實(shí)現(xiàn)動(dòng)畫(huà)繪制。6)紋理映射在計(jì)算機(jī)圖形學(xué)中,把包含顏色、alpa 值和亮度等數(shù)據(jù)的矩形數(shù)組稱為紋理。5)反走樣在 OpenGL 繪制出來(lái)的圖形中,由于是位圖,圖像的邊緣處會(huì)出現(xiàn)鋸齒形狀,稱為走樣。3)光照處理 為了使場(chǎng)景得到真實(shí)感效果,必須進(jìn)行光照處理,OpenGL 正好提供此功能。2)變換任何復(fù)雜的物體都是經(jīng)過(guò)基本圖元一系列變換得到。5)容易使用OpenGL 的核心圖形函數(shù)功能強(qiáng)大,帶有很多可選參數(shù),可以利用已有的格式數(shù)據(jù)進(jìn)行三維物體建模,大大提高效率。3)可擴(kuò)展性O(shè)penGL 是低級(jí)的圖形 API,它具有充分的可擴(kuò)展性。OpenGL 具有以下特點(diǎn) [15]:1)工業(yè)標(biāo)準(zhǔn)OARB(OpenGL Architecture Review Board)聯(lián)合會(huì)領(lǐng)導(dǎo) OpenGL 技術(shù)規(guī)范發(fā)展,使其得到廣泛的支持,成為業(yè)界唯一真正開(kāi)發(fā)的、跨平臺(tái)的圖形標(biāo)準(zhǔn)。目前包括 IBM 公司、SUN 公司、HP 公司、 Microsoft 公司和 SGI 公司在內(nèi)的幾家在計(jì)算機(jī)市場(chǎng)占領(lǐng)導(dǎo)地位的大公司都采用了 OpenGL 圖形標(biāo)準(zhǔn)。因此,本章將簡(jiǎn)要介紹 OpenGL 編程和面向?qū)ο缶幊痰幕A(chǔ)知識(shí)。if(u 不在 v 的 Voronoi 區(qū)內(nèi)){將 v 更新為相鄰邊;return 1。}return v 與 e 的距離;}//點(diǎn)面v_f(poly1,poly2,v,f){if(v 不在 f 的 Voronoi 區(qū)內(nèi)){將 f 更新為相鄰邊;return 1。}計(jì)算 e 上距 v 最近點(diǎn) u。}if(v2 不在 v1 的 Voronoi 區(qū)內(nèi)){將 v1 更新為相鄰邊;return 1。caseV,F:dist=v_f(poly1,poly2,feat1,feat2)。do {根據(jù) feat1,feat2 的類型分為:caseV,V:dist=v_v(poly1,poly2,feat1,feat2)。主要以上述 3 種情況為主。則說(shuō)明至少有一個(gè)物體 B 上的特征距 fA 更近,或者說(shuō)明物體 A 和 B 可能發(fā)生碰撞。然后在檢測(cè) P 點(diǎn)是否在 F面上,以確定 P 點(diǎn)不在物體 B 之內(nèi)。首先,檢測(cè) P 點(diǎn)是否在棱柱約束面圍成的區(qū)域內(nèi),若是,則說(shuō)明包含 P 點(diǎn)的特征 fA 與特征 F 是最近特征對(duì)。圖 311 點(diǎn)邊適應(yīng)性準(zhǔn)則3)點(diǎn)面適應(yīng)性準(zhǔn)則如下圖 4 所示,若被檢測(cè)特征是多面體的一條邊 F, 其 Voronoi 區(qū)域是由 F 和 F 的棱柱約束面圍成,這些約束面分別包含 F 的各邊并垂直于 F。算法檢測(cè) P 點(diǎn)是否落在該區(qū)域內(nèi)。圖 310 點(diǎn) 頂點(diǎn)適應(yīng) 性準(zhǔn)則2)點(diǎn)邊適應(yīng)性準(zhǔn)則 如下圖 3 所示,若被檢測(cè)特征是多面體的一條邊 E,其 Voronoi 區(qū)域是由 4 個(gè)約束面圍成。1)點(diǎn)頂點(diǎn)適應(yīng)性準(zhǔn)則如下圖 2 所示,若被檢測(cè)特征是多面體的一個(gè)頂點(diǎn) V,其 Voronoi 區(qū)域是由幾個(gè)約束面圍成,這幾個(gè)約束面分別垂直于與 V 點(diǎn)相接的邊,算法檢測(cè) P 點(diǎn)是否落在該區(qū)域內(nèi)。 適應(yīng)性準(zhǔn)則測(cè)試一個(gè)點(diǎn)是否在某特征的 Voronoi 域,稱為“適用性測(cè)試 ”。如圖 39 所示,圖 39 Voronoi 圖面 1 和頂點(diǎn) bV 分別為物體 A、B 上的候選特征,先測(cè)試看點(diǎn) bV 是否在面 1 的 Voronoi 域(單元 1)里,由于 bV 在約束面 pC 外,故下一步測(cè)試 b 是否在 pC 指向的鄰近域(單元 2)中,如此測(cè)試下去直到兩特征都分別位于對(duì)方的 Voronoi 域中,這樣的特征對(duì)即為最近特征對(duì)。Ming 引入了最近特征對(duì)的概念,通過(guò)構(gòu)造 Voronoi 圖,利用凸性建立了用于驗(yàn)證最近特征的局部適用準(zhǔn)則來(lái)確定最近特征對(duì),然后計(jì)算兩個(gè)最近特征間的距離以判斷兩個(gè)凸多面體是否相交。APB特征的 Voronoi 區(qū)域:多面體 A 上的一個(gè)特征 f 的 Voronoi 區(qū)域由距特征 f 最近的空間點(diǎn)組成,即若設(shè) p 為該區(qū)域內(nèi)任一點(diǎn),則 p 點(diǎn)距特征 f 的距離比 p 點(diǎn)距 A 上其他特征的距離都小,即特征 f 是多面體 A 上距 p 點(diǎn)最近的特征。設(shè)多面體 A 和 B 表示 R3中的兩個(gè)凸集。特征對(duì)的距離:指兩個(gè)特征上最近的兩點(diǎn)距離。但是對(duì)于凸物體,它的普遍 Voronoi 圖具有平面邊界。Voronoi 圖擴(kuò)展到高維特特征稱為普遍 Voronoi 圖,即一個(gè)特征的最近點(diǎn)集。圖 37 中表示關(guān)聯(lián)于 的 Voronoi 多邊形,它是一1 1p個(gè)四邊形,n=6. 圖 37 ,V( )1p 對(duì)于 S 中的每個(gè)點(diǎn)都可以做一個(gè) Voronoi 多邊形,這樣的 n 個(gè) Voronoi 多邊形組成的圖稱為 Voronoi 圖,記為 Vor(S),如圖 38 所示圖 38 Voronoi 圖與其對(duì)偶圖該圖中的頂點(diǎn)和邊分別稱為 Voronoi 頂點(diǎn)和 Voronoi 邊。1p給定平面上 n 個(gè)點(diǎn)的點(diǎn)集 S,S= 。這意味著,位于 內(nèi)的點(diǎn)與平面其他點(diǎn)更接近點(diǎn) ,也就是L 1說(shuō), 內(nèi)的點(diǎn)是比平面上其他點(diǎn)更接近于 點(diǎn)的軌跡,即為 V( ),如圖圖 36 示。Voronoi 圖 [14]Voronoi 圖在求解點(diǎn)集或其他幾何對(duì)象與距離有關(guān)問(wèn)題都起著很重要的作用。每個(gè)物體都有與之相關(guān)聯(lián)的局部坐標(biāo)系。CSG 的標(biāo)準(zhǔn)體素是球、圓柱、圓
點(diǎn)擊復(fù)制文檔內(nèi)容
外語(yǔ)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1