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

正文內(nèi)容

基于opengl的屏幕對象拾取_本科畢業(yè)論文-資料下載頁

2025-07-01 14:24本頁面

【導(dǎo)讀】據(jù)我所知,除文中已經(jīng)注明引用的內(nèi)容外,本論文(設(shè)計(jì))不包含其他個(gè)人。已經(jīng)發(fā)表或撰寫過的研究成果。對本論文(設(shè)計(jì))的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中作了明確說明并表示謝意。有權(quán)將論文(設(shè)計(jì))用于非贏利目的的少量復(fù)制并允許論。文(設(shè)計(jì))進(jìn)入學(xué)校圖書館被查閱。保密的論文(設(shè)計(jì))在解密后適用本規(guī)定。論文正文字?jǐn)?shù)不少于萬字。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫

  

【正文】 erMode()被調(diào)用。 除圖元之外, glRasterPos()產(chǎn)生的有效坐標(biāo)也可以引起選擇命中。在多邊形的情況下,如 果它已經(jīng)被消隱掉的話不會(huì)有命中記錄出現(xiàn)。 每個(gè)命中記錄由四項(xiàng)組成,依次是: ( 1)當(dāng)命中出現(xiàn)時(shí)名字棧中的名字?jǐn)?shù); ( 2)至上次記錄的命中以來,被視見體裁剪后的圖元的所有頂點(diǎn)的窗口 Z 坐標(biāo)的最大; ( 3)被視見體裁剪后的圖元的所有頂點(diǎn)的窗口 Z 坐標(biāo)最小值; ( 4)本次命中時(shí)名字棧的內(nèi)容,最底元素最前。 進(jìn)入選擇模式時(shí), OpenGL 初始化一個(gè)指針指向選擇數(shù)組的起點(diǎn)。每寫入一個(gè)命中記錄,指針相應(yīng)更新。如果寫入一個(gè)命中記錄會(huì)使數(shù)組中值的個(gè)數(shù)超過 glSelectBuffer()的 size 參數(shù)時(shí), OpenGL會(huì)寫入盡可能多 的記錄并設(shè)置一個(gè)溢出標(biāo)志。當(dāng)用 glRenderMode()退出選擇模式時(shí),這條命令返回被寫入的記錄的個(gè)數(shù)(包括一條部分記錄如果有的話),清除名字棧,復(fù)位溢出標(biāo)識,重置棧指針。如設(shè)定溢了出標(biāo)識則返回值是 1。 用 glInitName()和 glPushName()初始化名字棧 名字棧是返回給你的選擇信息的基礎(chǔ),要建立名字棧,首先用 glInitNames()初始化它,這將簡單地清空棧。然后當(dāng)發(fā)布相應(yīng)的繪制命令時(shí)向其中加入整數(shù)名字。??刂泼钤试S你壓入名字( glPushName()),彈出名字( glPopName()),替換棧頂?shù)拿郑?glLoadName())。 舉個(gè)例子: Example 121: Creating a Name Stack glInitNames()。 glPushName(1)。 glPushMatrix()。 /*保存當(dāng)前的轉(zhuǎn)型的狀態(tài) */ glLoadName(1)。 drawSomeObject()。 glLoadName(2)。 drawAnotherObject()。 glLoadName(3)。 drawYetAnotherObject()。 drawJustOneMoreObject()。 glPopMatrix ()。 /*恢復(fù)以前的轉(zhuǎn)型的狀態(tài) */ 在這個(gè)例子中,前兩個(gè)被繪制的物體有自己的名字,第三和第四個(gè)共用一個(gè)名字。這樣,如果第三或第四個(gè)物體中的一個(gè)或全部引起一個(gè)選擇命中,只有一個(gè)命中記錄返回給你。如果處理命中記錄時(shí)不想?yún)^(qū)分各個(gè)物體的話,可以讓多個(gè)物體共享一個(gè)名字。 void glInitNames(void)。 清空名字棧。 void glPushName(GLuint name)。 將 name 壓入名字棧 壓入名字超過棧容量時(shí)將生成一個(gè) GL_STACK_OVERFLOW 錯(cuò)誤。名字棧深度因 OpenGL 實(shí)現(xiàn)(implementations)不同而不同,但最少要能容納 64 個(gè)名字??梢杂脜?shù) GL_NAME_STACK_DEPTH 調(diào)用 glGetIntegerv()以獲取名字棧深度 。 void glPopName(void)。彈出名字棧棧頂?shù)哪且粋€(gè)名字 20 從空棧中彈出名字引發(fā) GL_STACK_UNDERFLOW 錯(cuò)誤。 void glLoadName(GLuint name)。用 name 取代名字棧棧頂?shù)哪莻€(gè)名字。如果棧是空的,剛調(diào)用過 glInitName()后就是這樣, glLoadName()生成一個(gè) GL_INVALID_OPRATION 錯(cuò)。為避免這種情況,如果棧初始時(shí)是空的,那么在調(diào)用 glLoadName()之前至少調(diào)用一次 glPushName()以在名字棧中放上點(diǎn)東西。 交替發(fā)布圖元繪制命令和名字??刂泼?,這樣每個(gè)感興趣的圖元都會(huì)被指定適當(dāng)?shù)拿郑? 退出選擇模式 退出選擇模式并處理返回的選擇數(shù)據(jù)(命中記錄)。 拾取 用選擇模式確定物體是否被拾取了, 要做到這一點(diǎn),用一個(gè)與投影矩陣相關(guān)聯(lián)的拾取矩陣將繪制限制在視口的一個(gè)很小的區(qū)域里,通常是在光標(biāo)附近。然后 允許某種形式的輸入,如點(diǎn)擊鼠標(biāo)的一個(gè)鍵,引發(fā)選擇模式的初始化。建立起選擇模式并使用特定的拾取矩陣,繪制在光標(biāo)附近的物體引發(fā)選擇命中。即,通常在拾取的時(shí)候確定哪個(gè)物體被畫在光標(biāo)附近了。 拾取的建立幾乎與正規(guī)的選擇模式完全一樣,只有以下的主要區(qū)別:拾取通常由某個(gè)輸入設(shè)備觸發(fā)。 在下面的例子中,按鼠標(biāo)左鍵運(yùn)行實(shí)現(xiàn)拾取的函數(shù)。 用例程 gluPickMatrix()將一個(gè)特殊的投影矩陣乘到當(dāng)前矩陣上。它要在把投影矩陣乘到棧上之前調(diào)用。 void gluPickMatrix(GLdouble x,Gldouble y,GLdouble width,GLdouble height,GLint viewport[4])。 建立一個(gè)投影矩陣用于將繪制限制在視口的一個(gè)小區(qū)域里,并將這個(gè)矩陣乘到當(dāng)前矩陣棧上。拾取區(qū)域的中心是窗口坐標(biāo) (x,y)處,通常是光標(biāo)位置。 width 和 height 定義選取區(qū)域大小,用屏幕坐標(biāo)。 Viewport{}表明當(dāng)前視口邊界,這可以用調(diào)用 glGetIntegerv(GL_VIEWPORT, GLint *viewport);獲得。 gluPickMatrix() 建 立 的矩 陣 的凈 結(jié) 果 ( result) 是將 裁剪 區(qū) 域變 換 到單 位 立方 體1amp。1e。(x,y,z)amp。1e; 1(或 wamp。1e。(wx,wy,wz)amp。1e。w)。拾取矩陣實(shí)際上提供了一個(gè)正交變換將這個(gè)單位立方體的一個(gè)子區(qū)域映射到單位立方體。因?yàn)樽儞Q是任意的, 所以 可以讓拾取為 不同類型的領(lǐng)域工作-如,用于旋轉(zhuǎn)窗口的矩形區(qū)域。在某些情況下, 會(huì)發(fā)覺用附加的裁剪平面定義拾取區(qū)域要容易些。 21 圖 9 拾取流程圖 拾取 結(jié)果 截圖 本系統(tǒng)中,未啟用拾取狀態(tài)的物體渲染如圖 10 與圖 11 所示,系統(tǒng)中使用物體空間的旋轉(zhuǎn)矩陣變換各個(gè)物體,因此每個(gè)物體在其局部坐標(biāo)系中旋轉(zhuǎn)。 22 圖 10 對象拾取前狀態(tài) 圖 11 對象拾取前狀態(tài) 用戶可通過鼠標(biāo)對 物體進(jìn)行拾取,鼠標(biāo)左鍵點(diǎn) 擊待 拾取的物體,物體被拾取時(shí)的效果如下: 23 圖 12 第一只對象被拾取效果 圖 13 第二只對象被拾取效果 24 圖 14 第三只對象被拾取效 25 5 結(jié)論與展望 結(jié)論 本文 分析了基于 CPU 的射線求交拾取技術(shù)、基于 GPU 的重繪式拾取技術(shù)、 OpenGL 的選擇機(jī)制技術(shù)三種拾取的實(shí)現(xiàn)原理和優(yōu)缺點(diǎn), 本文考慮到只是簡單地拾取三個(gè)不同的物體,分別是一個(gè)一個(gè)拾取,而不是同時(shí)拾取的過程且拾取物體是簡單的選擇體的原因,采 用了 OpenGL 本身自帶的選擇機(jī)制拾取實(shí)現(xiàn)了簡單的三個(gè)不同物體拾取,實(shí)驗(yàn)表明本文的方法是有效的。 展望 現(xiàn)今越來越多的 3D 網(wǎng)游游戲出爐,對電腦的配置要求也越來越高,對最基本的對 象拾取也越來越嚴(yán)格, 而拾取的關(guān)鍵是用什么拾取算法。前面分析了各種算法,可以得出基于 GPU 的重繪式拾取技術(shù)具有明顯的優(yōu)勢,是一種不錯(cuò)的拾取技術(shù)。今后也將繼續(xù)考慮如何可以使重繪式拾取技 術(shù) 脫離GPU 也可以實(shí)現(xiàn)拾取,甚至實(shí)現(xiàn)更快、更簡單地拾取,讓程序員操作起來更快,更方便,讓游戲玩家玩游戲起來更流暢,拾取各種物品或人物更快。 26 參考文獻(xiàn) [1]Mark Segul, Carl Korobkin, Rolf van Widenfelt 等. Fast Shadows and Liighting Effects using Texture Mapping. Computer Graphics. 1992, July, 249252. [2]Michael Deering, Step hanie Winner and Bic Schediwy 等. The Triangle Processor and Normal Vectore Shader. Computer Graphics. 1998,8, 2130. [3]龔堰玨,顏敏 . 面向?qū)ο蟮慕换ワ@示和拾取模型研究 [J]. 系統(tǒng)仿真學(xué)報(bào), 20xx. [4]韋宇煒.基于 OpenGL 技術(shù)的三維 游戲引擎開發(fā). 廣東工業(yè)大學(xué), 20xx. [5]姚繼權(quán) , 李曉豁 .計(jì)算機(jī)圖形學(xué)人機(jī)交互中三維拾取方法的研究 工程設(shè)計(jì)學(xué)報(bào) [6]Masaaki. Oka, Kyoya Tsutsui,Akio Ohba 等. RealThne Manipulation of TextureMapped Surfaces. Computer Graphicsa 1997, 7. [7]劉力強(qiáng),周明全 . 一種平行透視下的三維拾取方法 [J]. 西南大學(xué)學(xué)報(bào), 20xx. [8]OpenGL Specification. [9]Donald Hearn 等.計(jì)算機(jī)圖形學(xué) (第三版 )[M]. 北京:電子工業(yè) H 版社, 20xx. [10] Angel E. OpenGL 編程基礎(chǔ) [M]. 北京:清華大學(xué)出版社, 20xx. [12]3D Game Development On JSR1 84. [13]Eric Freeman, Head First Design Pattern[M]. O’ REILLY,20xx. [14]openGL Programming Guide 網(wǎng)絡(luò)版 . AddisonWesley Publishing Company. [15]Microsoft Visual C++6. 0 技術(shù)內(nèi)幕, David J. Kruglinski, Scot Wingo, GeeShepherd著 . 北京希望電子出版社 1999 年 5 月第 1 版 . [16]Mason. Woo, Jcakie Neider, Tom Davis 等著.吳斌,段海波,薛鳳武譯. OpenGL 編程權(quán)威指南.北京:中國電力出版社, 310312. [17]Richard s. Wright, Jr. Michael Sweet 著.瀟湘工作室譯. OpenGL 超級寶典. 北京:人民郵電出版社, . [18]Catmull E. A. Subdivision Algorithm for Computer Display of Curved Surfaces. PhD thesis. University of Utah. 1974 [19]喬林,費(fèi)廣正 . OpenGL 程序設(shè)計(jì) . 北京:清華大學(xué)出版社, 20xx. [20]白燕斌,史惠康 . OpenGL 三維圖形編程指南 . 北京:機(jī)械工業(yè)出版社, 1998. [21]彭群生,鮑虎軍,金小剛 . 計(jì)算機(jī)真實(shí)感圖形的算法基礎(chǔ) [M]. 北京:科學(xué)出版社, 1999. [22]Dave Shreiner 著 . (OpenGL 參考手冊》 . 機(jī)械工業(yè)出版社. 20xx. [23]孫家廣等.計(jì)算機(jī)圖形學(xué) (第三版 ). 北京:清華大學(xué)出版社, 1998, 286. 357. [24]F. S. Hill,JR 著. 計(jì)算機(jī)圖形學(xué)一一用 OpenGL 實(shí)現(xiàn) (第二二版 )》.羅霄等譯 . 清華大學(xué)出版社. 20xx. [25]瀟湘工作室 . OpenGL 超級寶典 [M]. 北京 :人民郵電出版社 ,20xx [26]和平鴿工作室 . OpenGL 高級編程與可視化系統(tǒng)開發(fā) [M]. 北京 :中國水利水電出版社 , 20xx. [27]孫家廣,胡事民.計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程 [M]. 北京:清華大學(xué)出版社, 20xx. [28]王汝傳 . 計(jì)算機(jī)圖形技術(shù)原理及應(yīng)用 [M]. 北京:人民郵電出版社, 1998. [29]費(fèi)廣正,蘆麗丹,陳立新 . 可視化 OpenGL 程序設(shè)計(jì) [M]. 北京:清華大學(xué)出版社, 20xx. [30]孫家廣,楊長貴 . 計(jì)算機(jī)圖形學(xué) (第三版 )[M]. 北京:清華大學(xué)出版社。 1998. [31]Heran D, Baker M P. 計(jì)算機(jī)圖形學(xué) . 北京:清華大學(xué)出版社, 1998. [32]蔡士杰,等譯. Computer Graphics with OpenGL(ThirdEdition)[M]. 北京:電子工業(yè)出版社,20xx. [33]吳斌 .OpenGL 編程權(quán)威指南 [M]. 北京:中國電力出版社, 20xx. [34]彭群生,等.計(jì)算機(jī)真實(shí)感圖形的算法基礎(chǔ) [M]. 北京:北京科學(xué)出版社, 20xx. 27 [35]江早. OpenGL 圖形編程 [M]. 科學(xué)出版社, 20xx. [36]喬林,費(fèi)廣正等.程序設(shè)計(jì) 0peoGL[Ⅵ ]. 清華大學(xué)出版杜, 20xx. [37]曾建超,俞志和.虛擬現(xiàn)實(shí)的技術(shù)及其應(yīng)用Ⅶ. 北京:清華大學(xué)出版社, 20xx. [38]圈石教英.虛擬現(xiàn)實(shí)基礎(chǔ)及實(shí)用算法嗍 . 北京:科學(xué)出版社, 20xx. [39]倪明田.計(jì)算機(jī)圖形學(xué) [M]. 北京:北京大學(xué)出版社, 1999. [40]李自力.虛擬現(xiàn)實(shí)中基于圖形與圖像的混合建模技術(shù). 中國圖象圖形學(xué)報(bào). 20xx. 1. 96100. [41]Wright R S, Sweet J M. OpenGL 超級寶典 . 北京:人民郵電 出版社, 20xx. [42]喬林,費(fèi)廣正等. OpenGL 程序設(shè)計(jì). 北京:清華大學(xué)出版社, 2
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1