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

正文內(nèi)容

簡單的三維場景制作畢業(yè)論文(編輯修改稿)

2024-07-08 00:30 本頁面
 

【文章內(nèi)容簡介】 ) c os ( 1 c os ) si n 0( 1 c os ) si n ( 1 c os ) si n ( 1 ) c os 00 0 0 1n n n n n n n nn n n n n n n nTn n n n n n n n? ? ? ? ?? ? ? ? ?? ? ? ? ???? ? ? ? ? ???? ? ? ? ?? ? ? ? ? ? ??? 3 OpenGL 三維建模原理概述 OpenGL 簡介 什么是 OpenGL OpenGL 是個專業(yè)的 3D 程序接口 , 是一個功能強大 , 調(diào)用方便的底層 3D圖形庫。 OpenGL 的前身是 SGI 公司為其圖形工作站開發(fā)的 IRIS GL。 IRIS GL 是 一個工業(yè)標(biāo)準(zhǔn)的 3D 圖形軟件接口,功能雖然強大但是移植性不好,于是 SGI 公司便在 IRIS GL 的基礎(chǔ)上開發(fā)了 OpenGL。 OpenGL 的英文全稱是 “Open Graphics Library” ,顧名思義, OpenGL 便是 “ 開放的圖形程序接口 ” 。 OpenGL 概覽 OpenGL 是一個圖形硬件的軟件接口,包括大約 250 個函數(shù)(其中 200 個在OpenGL 核心中,其他 50 個在 OpenGL 核心庫中),您可以使用它們來指定物體和操作,以創(chuàng)建交互式三維應(yīng)用程序。 它的主要作用是將二維或三維的對象繪入一個幀緩沖區(qū) 中。對象被描述為一系列的頂點(用來定義幾何對象)或像素(用來定義圖像)。 OpenGL 對數(shù)據(jù)進(jìn)行幾個步驟的處理從而將其轉(zhuǎn)換成像素,這些像素將在幀緩沖區(qū)中形成最終需要的圖形。 OpenGL 是一個獨立于硬件的高效接口,可以在很多平臺上實現(xiàn)。因此,OpenGL 中沒有執(zhí)行窗口任務(wù)或獲取用戶輸入的函數(shù),程序員必須通過窗口系統(tǒng)來控制硬件。另外 OpenGL 也沒有提供用于面熟三維物體模型(如汽車,人體,飛機或分子模型)的高級函數(shù)。在 OpenGL 中,只能使用幾種幾何圖元( geometric primitive)(點,直線,多邊 形)來構(gòu)建所需的模型。 當(dāng)然,可以在 OpenGL 之上建立提供上述高級特性的復(fù)雜庫。 OpenGL 實用庫( GLU, OpenGL Utility Library)提供了很多建模( modeling)特性,如二次 曲面, NURBS 曲線和曲面。 GLU是 OpenGL 實現(xiàn)的標(biāo)準(zhǔn)組成部分。 OpenGL 在屏幕上渲染圖像時執(zhí)行的主要圖形操作: ( 1)使用幾何圖元建立模型,即是說所建立的模型由圖元構(gòu)成(使用若干個三角形來建立曲面),這里的幾何圖元包括:點,直線,多邊形,圖形和位圖。 ( 2)在三維空間排列物體,選擇觀察場景的有利位置 ,也即一系列的變換。 ( 3)計算所有物體的顏色。物體的顏色可以由程序來指定,根據(jù)光照來確定,進(jìn)行紋理貼圖,或者上述操作的組合來實現(xiàn)的。 ( 4)將物體的數(shù)學(xué)描述和相關(guān)顏色信息轉(zhuǎn)換為屏幕像素,這被稱為光柵化( rasterization)。 在上述步驟中, OpenGL 還可以執(zhí)行其他操作,如隱藏面(線)消除。另外,在場景被光柵化后,但被繪制到屏幕之前,可以對像素數(shù)據(jù)執(zhí)行某些操作。 OpenGL 的基本特點 從程序開發(fā)人員的角度來看, OpenGL 是一組繪圖命令的 API集合。利用這些API 能夠方便地描述二維和 三維幾何物體,并控制這些物體按某種方式繪制到顯示緩沖區(qū)中。 OpenGL 的 API 集提供了物體描述、平移、旋轉(zhuǎn)、縮放、光照、紋理、材質(zhì)、象素、位圖、文字、交互以及提高顯示性能等方面的功能,基本涵蓋了開發(fā)二、三維圖形程序所需的各個方面。與一般的圖形開發(fā)工具相比, OpenGL具有以下幾個突出特點: (1) 應(yīng)用廣泛 OpenGL 是目前最主要的二、三維交互式圖形應(yīng)用程序開發(fā)環(huán)境,已成為業(yè)界最受推薦的圖形應(yīng)用編程接口。自從 1992 年發(fā)表以來, OpenGL 已被廣泛地應(yīng)用于 CAD/CAM、三維動畫、數(shù)字圖象處理以 及虛擬現(xiàn)實等領(lǐng)域, Kiix 公司的 3D Studio Max 就是突出的代表。無論是在 PC 機上,還是在工作站甚至是大型機和超級計算機上, OpenGL 都能表現(xiàn)出它的高性能和強大威力。 (2) 跨平臺性 OpenGL 能夠在幾乎所有的主流操作系統(tǒng)上運行,包括 UNIX、 Mac OS、 OS/Windows NT/9X/ME/2K/XP、 Linux 等;也能夠與其中絕大多數(shù)的窗口系統(tǒng)一起工作。 (3) 高質(zhì)量和高性能 無論是在 CAD/CAM、三維動畫還是可視化仿真等領(lǐng)域, OpenGL 高質(zhì)量和高效率的 圖形生成能力都能得到充分的體現(xiàn)。在這些領(lǐng)域中,開發(fā)人員可以利用OpenGL 制作出效果逼真的二、三維圖象來。 (4) 出色的編程特性 OpenGL 體系結(jié)構(gòu)評審委員會 (ARB)獨立負(fù)責(zé)管理 OpenGL 的規(guī)范,這使得 OpenGL 具有充分的獨立性。 OpenGL 在各種平臺上已有多年的應(yīng)用實踐,加上嚴(yán)格的規(guī)范控制,因此 OpenGL 具有良好的穩(wěn)定性。良好的前瞻性、伸縮性和易使用性等也是 OpenGL 的突出編程特點。 (5) 網(wǎng)絡(luò)透明性 建立在客戶 /服務(wù)器模型上的網(wǎng)絡(luò)透明性是 OpenGL 的固有特性,它允許一個運行在 工作站上的進(jìn)程在本機或通過網(wǎng)絡(luò)在遠(yuǎn)程工作站上顯示圖形。利用這種透明性能夠均衡地共同承擔(dān)圖形應(yīng)用任務(wù)的各工作站的負(fù)荷,也能使得沒有圖形功能的服務(wù)器能夠使用圖形工具。 OpenGL 的體系結(jié)構(gòu) OpenGL 是一套圖形標(biāo)準(zhǔn),它嚴(yán)格按照計算機圖形學(xué)原理設(shè)計而成,符合光學(xué)和視覺原理,非常適合可視化仿真系統(tǒng)。 首先,在 OpenGL 中允許視景對象用圖形方式表達(dá),如由物體表面頂點坐標(biāo)集合構(gòu)成的幾何模型,這類圖形數(shù)據(jù)含有豐富的幾何信息,得到的仿真圖像能充分表達(dá)出其形體特征;而且在 OpenGL 中有針對三維坐標(biāo)表示的頂點的 幾何變換,通過該變換可使頂點在三維空間內(nèi)進(jìn)行平移和旋轉(zhuǎn),對于由頂點的集合表達(dá)的物體則可以實現(xiàn)其在空間的各種運動。 其次, OpenGL 通過光照處理能表達(dá)出物體的三維特性,其光照模型是整體光照模型,它把頂點到光源的距離、頂點到光源的方向向量以及頂點到視點的方向向量等參數(shù)代入該模型,計算頂點顏色。因此,可視化仿真圖像的顏色體現(xiàn)著物體與視點以及光源之間的空間位置關(guān)系,具有很強的三維效果。 另外,為彌補圖形方法難于生成復(fù)雜自然背景的不足, OpenGL 提供了對圖像數(shù)據(jù)的使用方法,即直接對圖 像數(shù)據(jù)讀、寫和拷貝,或者把圖像 數(shù)據(jù)定義為紋理與圖形方法結(jié)合在一起生成視景圖像以增強效果。為增強計算機系統(tǒng)三維圖形的運算能力,有關(guān)廠家已研制出了專門對 OpenGL 進(jìn)行加速的三維圖形加速卡,其效果可與圖形工作站相媲美。一個完整的窗口系統(tǒng)的 OpenGL 圖形處理系統(tǒng)的結(jié)構(gòu)為:最底層為圖形硬件,第二層為操作系統(tǒng),第三層為窗口系統(tǒng),第四層為OpenGL,第五層為應(yīng)用軟件。 如 圖 所示。 圖 OpenGL圖形處理系統(tǒng)的層次結(jié)構(gòu) OpenGL 的作用機制是客戶( client) /服務(wù)器( sever)機制,即客戶(用OpenGL 繪制景物的應(yīng)用程序)向服務(wù)器(即 OpenGL 內(nèi)核)發(fā)布 OpenGL 命令,服務(wù)器則解釋這些命令。大多數(shù)情況下,客戶和服務(wù)器在同一機器上運行。正是OpenGL 的這種客戶 /服務(wù)器機制, OpenGL 可以十分方便地在網(wǎng)絡(luò)環(huán)境下使用。因此 Windows NT下的 OpenGL 是網(wǎng)絡(luò)透明的 。 圖 給出了網(wǎng)絡(luò)下的 OpenGL 體系結(jié)構(gòu),在實際操作中,應(yīng)用程序發(fā)出OpenGL 命令,由動態(tài)鏈接庫 接受打包后, 發(fā)送到服務(wù)器端的,然 后由它通過 DDI 層發(fā)往視頻顯示驅(qū)動程序。如果系統(tǒng)安裝了硬件加速器,則由硬件相關(guān)的 DDI 來處理。從程序員的角度看,在編寫基于 Windows的 OpenGL 應(yīng)用程序之前必須 掌握兩點 ,一個是 OpenGL 本身是一個復(fù)雜的系統(tǒng),這可以通過簡化的 OpenGL 輔助庫函數(shù)來學(xué)習(xí)和掌握;另一個是必須清楚地了解和掌握 Windows 與 OpenGL 的接口。 圖 OpenGL/NT體系結(jié)構(gòu) OpenGL 的渲染流水線 應(yīng) 用 程 序 可安裝的客戶端驅(qū)動程序 相關(guān) DDI 視頻顯示驅(qū)動程序 應(yīng)用軟件 OpenGL 窗口系統(tǒng) 操作系統(tǒng) 圖形硬件 可以把 OpenGL 的 工作過程看成是一條生產(chǎn)流水線,原料是場景,物體的頂點,表面細(xì)節(jié)等信息,產(chǎn)品是看起來有三維感覺的平面位圖。 在 OpenGL 中是以面邊界 (BREP)模型來描述物體的,或者說是使用多邊形 造型 系統(tǒng)。在 OpenGL中每個物體都是 由 一組平面 構(gòu)成 ,這組平面記錄了該物體的表面 ,需要用戶提供圍繞平面邊緣的線段的頂點參數(shù),平面內(nèi)圖案的位圖兩組信息,術(shù)語稱為 Vertex(頂點), Texture(紋理)。 顯然這些平面越小畫出不斷的物體越逼真。 OpenGL 生成三維圖形可以分成以下幾個步 驟: (1) 坐標(biāo)變換,生成基本圖元:根據(jù)基本圖形單元建立景物模型,并對所建立的模型進(jìn)行數(shù)學(xué)描述。 (2) 裁剪變換:把景物模型放在三維空間核實的位置上,并且設(shè)置視點一觀察所感興趣的場景。 (3) 色彩與光照:根據(jù)應(yīng)用要求確定色彩,同時確定光照條件。 (4) 光柵化,生成圖形片段:把景物模型的數(shù)學(xué)描述及其色彩信息轉(zhuǎn)換成計算機屏幕上的像素點。 OpenGL 顯示三維圖形流程圖如圖 所示。 當(dāng)命令進(jìn)入流程時,你可以選用兩種方法對其進(jìn)行處理:一種是通過流程立即執(zhí)行這些命令;另一種是將其中一些命令組織到一個“顯 示列表”,過一段時間再執(zhí)行它們。 流程中的“評價器”階段通過將輸入值賦給多項式命令提供了一種非常有效的方法來生成幾何曲線和曲面的近似值。接下來的“各頂點操作”階段主要是處理 OpenGL 的幾何圖元:點,線段和多邊形。所有這些圖元均由頂點來描述。頂點可以被轉(zhuǎn)換和照亮,接下來圖元圖元被剪切到視口,為下一階段做好準(zhǔn)備。 “光柵化”生成了一系列的幀緩沖區(qū)地址以及相應(yīng)的用于描述點、線段或多邊形的二維值。這些生成的“片斷”將被送到最后一個階段 — “各片斷的操作”,這一階段是數(shù)據(jù)以像素形式存入“幀緩沖區(qū)”之前的最后操作。這些 操作包括根據(jù) 圖 OpenGL渲染流水線 幀緩沖區(qū)中原有的深度值(用于深度緩存操作)與輸入值而有條件地更新幀緩沖區(qū)的操作,還包括對輸入的像素顏色與已存儲的顏色所進(jìn)行的融合操作,對像素值所進(jìn)行的屏蔽操作及其他的邏輯操作。 數(shù)據(jù)是以像素形式而非頂點形式輸入的。這些數(shù)據(jù)可以用來描述一個用于紋理映射的圖像,它將跳過第一階段(如前面所述),而通過“像素操作”階段作為像素來處理。這一階段的處理將導(dǎo)致兩種結(jié)果:其一是被存入“紋理存儲器” ,以備光柵化階段所用;其二是直接被光柵化。后者所形成的片斷將被存入幀緩沖區(qū),就好象它們是由幾何數(shù)據(jù)生成的一樣。 一個 OpenGL應(yīng)用程序可以獲得 OpenGL狀態(tài)的所有元素,其中包括紋理存儲器的內(nèi)容,甚至還包括幀緩沖區(qū)的內(nèi)容。 OpenGL 開發(fā)庫的基本組成 OpenGL 開發(fā)組件 Windows 9x/NT 下的 OpenGL 組件有 2 種,一種是 SGI 公司提供的,一種是Microsoft 公司提供的。兩者的開發(fā)庫大體上,沒有什么區(qū)別,都是有 3大部分組成。 (1)函數(shù)的說明文件。 , 和 . (2)靜態(tài)鏈接庫文件。 , 和 。 (3)動態(tài)鏈接庫文件。 , 和 。 OpenGL 的庫函數(shù) 開發(fā)基于 OpenGL 的應(yīng)用程序 開發(fā)基于 OpenGL 的應(yīng)用程序,必須先了解OpenGL 的庫函數(shù)。 在 OpenGL 中有 115 個核心函數(shù),這些函數(shù)是最基本的,他們可以在任何 OpenGL 工作平臺上應(yīng)用。這些函數(shù)用于 建立各種各樣的形體,產(chǎn)生光照效果,進(jìn)行反走樣紋理映射,投影變換等操作。由于這些核心函數(shù)有許多種形式并能夠接受不同類型的參數(shù),實際上這些函數(shù)可以派生出 300 多個函數(shù)。 OpenGL 庫函數(shù)的命名方式非常有規(guī)律,每個庫函數(shù)均有前綴 gl、 glu、 aux,分別表示該函數(shù)屬于 OpenGL 基本庫、實用庫和輔助庫。 OpenGL 的庫函數(shù)大致可以分為六類: (1) OpenGL 核心庫 : 包含有 115 個函數(shù),函數(shù)名的前綴為 gl。這部分函數(shù)用于常規(guī)的、核心的圖形處理。由于許多函數(shù)可以接收不同數(shù)據(jù)類型 的參數(shù),因此派生出來的函數(shù)原形 多達(dá) 300 多個。 (2) OpenGL 實用庫 : 包含有 43 個函數(shù),函數(shù)名的前綴為 glu。這部分函數(shù)通過幾何物體 圖形 幀緩存器 頂點 評價器 頂點操作 顯示列表 光柵化 像素 像素操作 紋理存貯器 基本操作 調(diào)用核心庫的函數(shù),為開發(fā)者提供相對簡單的用法,實現(xiàn)一些較為復(fù)雜的操作。如:坐標(biāo)變換、紋理映射、繪制橢球、茶壺等簡單多邊形。 OpenGL 中的核心庫和實用庫可
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1