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

正文內(nèi)容

基于opengl的虛擬運(yùn)動(dòng)場(chǎng)漫游畢業(yè)設(shè)計(jì)word格式-閱讀頁(yè)

2024-12-19 04:19本頁(yè)面
  

【正文】 面對(duì)的方向 , 就可以在碰撞檢測(cè)的簡(jiǎn)單性和包裹物體的緊密性之間取得較好的折中。 FDH可以看作是 AABB的擴(kuò)展 。兩個(gè) AABB相交當(dāng)且僅當(dāng)所有的 3對(duì)平行平面對(duì)都分別相交 ,這個(gè)條件很容易檢測(cè)。 FDH檢測(cè) 算法首先求一般物體的凸殼 , 然后將物體的特征面分為一系列凸特征面子集和凹特征面子集 , 分別對(duì)這些子集建立基于 FDH的包容體層次。對(duì)于凹特征面子集則剖分到每個(gè) 葉節(jié)點(diǎn)只含一個(gè)基本幾何體。 表 五種包圍盒方法的比較表 包圍盒方法 緊密性 檢測(cè)速度 檢測(cè)難度 檢測(cè)精度 應(yīng)用范圍 球形法 AABB OBB kDOP FDH 差 較差 中等 較好 好 快 快 較快 較快 慢 容易 較易 較易 中等 較難 差 中等 中等 較好 較好 寬 寬 較寬 較窄 較窄 表 。 AABB緊密性差, 相交測(cè)試簡(jiǎn)單。 kDOP其實(shí)是介于 AABB和凸包之間的包圍盒 , 其特點(diǎn)是只要合理地選取平行平面對(duì)的個(gè)數(shù)和方向 ,就可以在碰撞檢測(cè)的簡(jiǎn)單性和包裹物體的緊密性之間靈活取舍 , 即緊密性要優(yōu)于AABB, 而相交測(cè)試的復(fù)雜度要小于 OBB。 3 虛擬運(yùn)動(dòng)場(chǎng)漫游系統(tǒng)分析 近些年,隨著學(xué)校規(guī)模不斷壯大,師生員工數(shù)量也不斷增加, 2020 年 年底學(xué)校又順利通過了國(guó)家本科教學(xué)質(zhì)量評(píng)估,在社會(huì)引起很大反響,許多社會(huì)人士紛紛到我校參觀考察。 需求分析 系統(tǒng)以北京路校區(qū)的運(yùn)動(dòng)場(chǎng)為研究區(qū)域,使用對(duì)象定位為學(xué)校體育部管理規(guī)劃人員、本校師生及校外人員。 用戶和系統(tǒng)的交互式控制主要通過鼠標(biāo)和鍵盤的操作實(shí)現(xiàn),系統(tǒng)可以根據(jù)用戶的操作,快速、有效地定位檢索出運(yùn)動(dòng)場(chǎng)各個(gè)場(chǎng)地、各項(xiàng)設(shè)施的最新信息,并能實(shí)現(xiàn)場(chǎng)景的縮放、旋轉(zhuǎn)以及視點(diǎn)的改變等功能。 系統(tǒng)架構(gòu) 場(chǎng)景是系統(tǒng)中所有可視化對(duì)象的集合,系統(tǒng)通過場(chǎng)景建模和模型導(dǎo)入以及用戶的交互輸入控制場(chǎng)景的繪制與顯示。然后,模型渲染模塊能夠根據(jù)用戶的輸入進(jìn)行場(chǎng)景的實(shí)時(shí)繪制與動(dòng)態(tài)顯示。虛擬漫游系統(tǒng)框架 圖 如圖 31 所示 。 a)幾何構(gòu)建 根據(jù)導(dǎo)入的場(chǎng)景數(shù)據(jù)對(duì)實(shí)體模型進(jìn)行幾何重建,主要運(yùn)用數(shù)學(xué)方法建立 所需場(chǎng)景的幾何描述。 c)場(chǎng)景設(shè)置 在對(duì)三維場(chǎng)景進(jìn)行渲染前,需要設(shè)置相關(guān)的場(chǎng)景參數(shù)值,包括光源性質(zhì) ( 鏡射光、漫射光和環(huán)境光 ) 、紋理映射方式、視點(diǎn)位置、視線方向等。虛擬場(chǎng)景中一般都采用 透視投影,以便更好地模擬現(xiàn)實(shí)世界。虛擬漫游系統(tǒng)的實(shí)現(xiàn)主要包括虛擬運(yùn)動(dòng)場(chǎng)的構(gòu)建和漫游控制的設(shè)計(jì)兩部分。 場(chǎng)景建模 基于場(chǎng)景建模及導(dǎo)入模型實(shí)現(xiàn)虛擬漫游是 當(dāng)前虛擬現(xiàn)實(shí)的熱門技術(shù),其中很關(guān)鍵的一個(gè)環(huán)節(jié)就是建立實(shí)體模型。 運(yùn)動(dòng)場(chǎng)最終效果圖 如圖 41 所示 ??紤]到場(chǎng)景導(dǎo)入的速度問題,將運(yùn)動(dòng)場(chǎng)分為兩個(gè)場(chǎng)景,主場(chǎng)為足球場(chǎng),副場(chǎng)為籃球場(chǎng)和排球場(chǎng)。相對(duì)而言,運(yùn)動(dòng)場(chǎng)的模型比較簡(jiǎn)單,沒有太多的復(fù)雜層面,利用修改器基本可以完成。諸如欄網(wǎng)、跑道、國(guó)旗等不常用 的材質(zhì)需要手工創(chuàng)建,以 .BMP 貼圖形式導(dǎo)入。 e)后期合成 后期合成主要是對(duì)實(shí)體模型進(jìn)行數(shù)學(xué)描述,以便導(dǎo)出 3DS 格式文件。由于受到網(wǎng)絡(luò)帶寬及傳輸速率的限制,在利用 3DS Max 建模時(shí)不宜太精細(xì),貼圖不宜太復(fù)雜,場(chǎng)景盡量簡(jiǎn)單。 OpenGL 模型 重構(gòu) 運(yùn)動(dòng)場(chǎng)模型建立后,導(dǎo)出的 3DS 格式文件需要在 OpenGL 環(huán)境中重新繪制、顯示。 OpenGL工作流程 圖 42 為 抽象的 OpenGL 工作流程圖, 展示了 OpenGL 處理數(shù)據(jù)的過程。數(shù)據(jù)可以通過流程立即執(zhí)行這些命令,或者組織到一個(gè) ―顯示列表 ‖后再執(zhí)行。 幾何數(shù)據(jù) 像素?cái)?shù)據(jù) 顯示列表 求值器 逐點(diǎn)操作 和 圖元組裝 像素操作 光柵化 紋理組裝 片元操作 幀緩存 對(duì)于像素?cái)?shù)據(jù)(包括像素、位圖和圖像),其 處理方式和頂點(diǎn)數(shù)據(jù)的處理方式是不同的,從內(nèi)存中讀出的像素?cái)?shù)據(jù)經(jīng)過像素操作(縮放、偏置和映射)后,將結(jié)果數(shù)據(jù)限制在適當(dāng)?shù)娜≈捣秶鷥?nèi),然后送入紋理內(nèi)存中進(jìn)行組裝,供紋理映射使用,或者把這些結(jié)果數(shù)據(jù)光柵化為片元后,執(zhí)行每個(gè)片元的操作,最后送入幀緩存;從幀緩存中讀出的數(shù)據(jù)經(jīng)過像素操作后被送入到處理器內(nèi)存中。 表 OpenGL 中的數(shù)據(jù)類型 縮寫字符 數(shù)據(jù)類型 C++中的數(shù)據(jù)類型 OpenGL 中的數(shù)據(jù)類型 b ub s us i ui f b 8 位整數(shù) 8 位無(wú)符號(hào)整數(shù) 16 位整數(shù) 16 位無(wú)符號(hào)整數(shù) 32 位整數(shù) 32 位無(wú)符號(hào)整數(shù) 32 位浮點(diǎn)數(shù) 64 位浮點(diǎn)數(shù) signed char unsigned char short unsigned short long unsigned long float double GLbyte GLubyte, GLboolen GLshort GLushort GLuint, GLsizei GLuint, GLenum, GLbitfield GLfloat, GLclampf GLdouble, GLclampd OpenGL 的數(shù)據(jù)類型主要是描述三維物體空間位置及其屬性的整數(shù)和浮點(diǎn)數(shù)。 模型重構(gòu) OpenGL 采用有序排列的頂點(diǎn)集合來構(gòu)造幾何圖元,而不是將線段、多邊形組合起來構(gòu)造集合圖元。 //整數(shù)定義的二維坐標(biāo) glVertex3f(,)。在 glBegin()和 glEnd()函數(shù)之間可以指定頂點(diǎn)的顏色、法向和紋理坐標(biāo)等信息,只需在該頂點(diǎn)的空間位置定義之前,調(diào)用相關(guān)的函數(shù)即可。 表 glBegin()和 glEnd()之間可以調(diào)用的函數(shù) 函數(shù)名稱 函數(shù)功能說明 glCalllist() glColor*() glMaterial*() glNormal*() glTexCoord*() glVertex*() 執(zhí)行顯示列表 設(shè)置當(dāng)前顏色 設(shè)置材質(zhì) 設(shè)置法向坐標(biāo) 設(shè)置紋理坐標(biāo) 設(shè)置頂點(diǎn)坐標(biāo) 光照模型 在 OpenGL 的簡(jiǎn)化光照模型中,光線大致分為:輻射光( Emitted Light)、環(huán)境光( Ambient Light)、漫射光( Diffuse Light)和鏡面光( Specular Light)。 a)啟用與關(guān)閉光照 在 OpenGL 中需要顯式地啟用(或取消)光照計(jì)算。 啟動(dòng)和取消光照的函數(shù)如下: glEnble(GL_LIGHTING)。 //關(guān)閉 光照 如果在環(huán)境中定義了光源,則需要為每個(gè)光源指定打開或關(guān)閉,啟用 或關(guān)閉光源的函數(shù)如下: glEnble(GL_LIGHTi)。 //關(guān)閉光源 (其中 i 為非負(fù)的整數(shù)) b)光照屬性 光源有許多特性,如顏色、位置、方向等,在 OpenGL 中可以通過 函數(shù)定義光照屬性: void glLightfv(GLenum light, GLenum pname, const GLfloat *p)。 GL_AMBIENT:用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置環(huán)境光的色彩。 GL_DIFFUSE:用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置漫反射光的色彩。 GL_SPECULAR:用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置鏡面反射光的色彩。 GL_POSITION:用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置光的位置。 函數(shù)定義光 源 的位置采用數(shù)組齊次坐標(biāo)( x,y,z,w) :如果 w 為 0,該光源為定向光源,照射方向是原點(diǎn)指向( x,y,z),位置在無(wú)窮遠(yuǎn);如果 w 不為 0, OpenGL 認(rèn)為是點(diǎn)光源,光源位于( x/w,y/w,z/w)。材質(zhì)的啟用 分為兩種:一種是完全被動(dòng)的,也就是被動(dòng)地接受或只是材質(zhì)與光照的作用;另 一種是材質(zhì)色彩占主導(dǎo),結(jié)合材質(zhì)變換和光照影響。 //能 使用 glColor()函數(shù)定義的頂點(diǎn)顏色 glDisable(GL_COLOR_MATERIAL)。 函數(shù)中第一個(gè)參數(shù) face 為狀態(tài)變量,可以 定義為 GL_FRONT, GL_BACK,GL_FRONT_AND_BACK。 GL_AMBIENT:用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置材質(zhì)反射環(huán)境光的色彩。 GL_DIFFUSE:用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置材質(zhì)反射漫反射光的色彩。 GL_AMBIENT_AND_DIFFUSE: 用第 3 個(gè)參數(shù)數(shù)組 p 設(shè)置材質(zhì)反射環(huán)境光和漫反射光的色彩。缺省值為( , , , )。一種方法是利用 glMaterial*()來改變材質(zhì),調(diào)用此函數(shù)時(shí)需要同時(shí)保存當(dāng)前矩陣,即調(diào)用 glPushMatrix()和glPopMatrix()。另一種方法是使用函數(shù) glColorMaterial(),調(diào)用此函數(shù)使材質(zhì)的特性色 和當(dāng)前顏色一致。 紋理映射 OpenGL 在改變屏幕像素的基礎(chǔ)上 支持物體表面的紋理貼圖。兩種紋理只是作用原理不同,但最終都將改變物體 的顯示顏色。 //啟用紋理處理 glDisable(GL_TEXTURE_2D)。 參數(shù) level 表示控制紋理分辨率的級(jí)別,若只有一種分辨率,則 level=0。 1 表示選擇 R 分量, 2 表示選擇 R 和 Alpha 兩個(gè)分量, 3 表示選擇 R、 G、 B 三個(gè)分 量, 4 表示選擇 R、 G、 B 和 Alpha 四個(gè)分量。 參數(shù) border 定義了紋理的邊界寬度,通常為 0。紋理映射的最大尺寸依賴于 OpenGL,但它必須至少使用 64*64。 參數(shù) format 描述了紋理映射的格式,可以是 GL_COLOR_INDEX、 GL_RGB、GL_RGBA 等。 指針 pixels 存儲(chǔ)紋理圖像的數(shù)據(jù)地址,包含紋理圖像本身及其邊界的數(shù)據(jù)??刂萍y理的函數(shù)定義如下: void glTexParameteri(GLenum target, GLenum pname, GLfloat p )。參數(shù) pname 和 p 的對(duì)應(yīng)形式如表 。 3DS 文件導(dǎo)入 系統(tǒng)采用場(chǎng)景建模及模型導(dǎo)入技術(shù)實(shí)現(xiàn)虛擬漫游,這種技術(shù)在開發(fā)可視化系統(tǒng)中是十分便捷高效,在一定程度上縮短了復(fù)雜 物體建模的時(shí)間。 3DS 文件導(dǎo)入數(shù)據(jù)結(jié)構(gòu) 在 OpenGL 環(huán)境中導(dǎo)入外部 3DS 格式文件 ,首先 對(duì)程序中涉及的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì), 定義各種結(jié)構(gòu)體和類, 如頂點(diǎn)坐標(biāo)、材質(zhì)信息、模型信息 、對(duì)象信息等 ,具體定義內(nèi)容見頭文件 。程序中涉及3DS 文件讀入的函數(shù)很多,主要用于讀取不同的內(nèi)容,表 列出讀取 3DS 格式文件的主要函數(shù)及其注釋。 圖 43 3DS 文件導(dǎo)入流程圖 在讀入 3DS 格式文件時(shí),首先要判斷該文件是不是 3DS 格式,若不是則直接返回,不進(jìn)行任何操作,若是 3DS 文件則進(jìn)入下一步操作, 即讀取文件中的模型數(shù)據(jù)。在讀入塊結(jié)構(gòu)數(shù)據(jù)時(shí),可以用遞歸的方法實(shí)現(xiàn),返回上一級(jí)的條件是當(dāng)前已經(jīng)讀入的塊的字節(jié)數(shù)是否等于塊的長(zhǎng)度;從父塊轉(zhuǎn)向讀入其子塊,用 switch 語(yǔ)句實(shí)現(xiàn),通過子塊的ID 號(hào)來判斷進(jìn)入哪個(gè)分支。 3DS 文件讀入后,將模型數(shù)據(jù)重新整理生成顯示列表,在 OpenGL 環(huán)境中重新繪制的實(shí)現(xiàn)函數(shù)為 glBegin(g_ViewMode)。 開始 結(jié)束 OpenGL 環(huán)境設(shè)置 圖形顯示 從 3DS 文件讀取數(shù)據(jù) 整理讀取的數(shù)據(jù) 生成顯示列表 OpenGL 圖形 控制功能 判斷是否為 3DS 文件? 報(bào)銷 N Y 漫游控制 作為一個(gè)虛擬場(chǎng)景的漫游系統(tǒng),最主要的是實(shí)現(xiàn)漫游動(dòng)作的控制。實(shí)現(xiàn)漫游時(shí),觀察者可以通過鼠標(biāo)或鍵盤來控制視點(diǎn)的位置、方向和參考點(diǎn)。系統(tǒng)中,視點(diǎn)即為人的眼睛,其功能與現(xiàn)實(shí)世界的照相機(jī)類似,視線方向可由參考點(diǎn)位置確定。 對(duì)場(chǎng)景顯示的漫游控制在 OpenGL 中可以利用 gluLookat()函數(shù),通過設(shè)置相應(yīng)的參數(shù)來達(dá)到漫游的效果。 鍵盤操作 系統(tǒng)中由鍵盤執(zhí)行的漫游命令包括場(chǎng)景左右旋轉(zhuǎn)、場(chǎng)景縮放、視點(diǎn)改變等。按照這種響應(yīng)方法, 通過空間向量分解運(yùn)算,即可計(jì)算出新的視點(diǎn)和參考點(diǎn)坐標(biāo)。 //順時(shí)針旋轉(zhuǎn) =Ratotespeed。 //旋轉(zhuǎn)角度 式中, 表示場(chǎng)景中視點(diǎn)的角度位置; 表示旋轉(zhuǎn)的角度; Ratotespeed 表示旋轉(zhuǎn)的速度。關(guān)鍵代碼如下: void CS3DManageView::OnLButtonDown(UINT nFlags, CPoint point) { int xPos = 。 //光標(biāo)垂直位置 +=(float)*sin()*flyspeed。 CView::OnLButtonDown(nFlags, point)。 =(float)*cos()*flyspeed。 } 自動(dòng)播放 系統(tǒng)除了利用鍵盤和鼠標(biāo)實(shí)現(xiàn)運(yùn) 動(dòng)場(chǎng)的交互式漫游控制,還設(shè)計(jì)了場(chǎng)景的自動(dòng)播放功能。實(shí)現(xiàn)自動(dòng)播放功能的關(guān)鍵代碼如下: if(IsAutoRotateScene) { +=1。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1