開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作_第1頁
開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作_第2頁
開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、前 言開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作。隨著圖形標準OpenGL在Unix與PC平臺的廣泛應(yīng)用,越來越多的3D應(yīng)用程序采用OpenGL作為支撐庫。OpenGL提供了數(shù)百個庫函數(shù),可方便地繪制具有真實感的3D圖形。但是對于一個完整的交互式3D應(yīng)用程序,圖形的繪制只是一部分內(nèi)容。更多的工作集中在場景數(shù)據(jù)結(jié)構(gòu)、3D交互算法和3D用戶界面的設(shè)計中。由于OpenGL并不提供此類編程接口,因此開發(fā)交互式3D應(yīng)用程序的技術(shù)難度較大。本書全面論述了基于OpenGL與Windows的交互式三維圖形技術(shù)以及程序設(shè)計。與本書配套的軟件是交互式三維圖形軟件開發(fā)工具Intra3D 2.0。Intra3

2、D 2.0是免費軟件,可用于快速開發(fā)PC平臺的交互式3D應(yīng)用程序。其核心是集成了場景數(shù)據(jù)結(jié)構(gòu)、3D交互算法和3D用戶界面的C+類庫與COM對象庫,支持Visual C+、Visual Basic、Delphi等語言的應(yīng)用編程。兩個庫各有60余個程序模塊,7萬多行源程序全部公開,用戶可以方便地修改Intra3D的內(nèi)核以適應(yīng)不同的需求。本書共分七章。前五章詳細論述Intra3D 2.0核心庫的開發(fā),后兩章講述如何使用Intra3D 2.0的C+類庫與COM對象庫來開發(fā)應(yīng)用程序。本書所有的程序、數(shù)據(jù)、文檔均可在Intra3D 2.0標準版軟件中找到。各章要點如下:第一章 交互式三維圖形軟件開發(fā)系統(tǒng)。

3、主要講述Intra3D 2.0的設(shè)計方案和軟件工程方法。Intra3D體系結(jié)構(gòu)分四層設(shè)計,第一層為“基礎(chǔ)對象與算法”, 第二層為“圖形對象”, 第三層為“場景圖與節(jié)點”, 第四層為“繪制與交互”。第二章 基礎(chǔ)對象與算法。主要講述:用于圖形變換的矢量、矩陣、四元組運算;鼠標跟蹤球算法;二維點陣字體與三維矢量字體的繪制;讀取BMP、GIF、JPEG、SGI與TGA格式的數(shù)字圖像;常用幾何圖元的繪制;“對象引用計數(shù)”的內(nèi)存管理技術(shù);材質(zhì)對象與紋理對象的設(shè)計。第三章 圖形對象。主要講述三類圖形對象的設(shè)計:(1)多邊形模型對象,用于繪制Autodesk公司的.3ds模型以及Wavefront公司的.ob

4、j模型。(2)商業(yè)統(tǒng)計圖形對象,用于繪制柱形圖、帶狀圖、折線圖、條形圖等。(3)常用幾何模型對象,用于繪制長方體、錐體、圓柱體、球體、圓環(huán)體等圖形。第四章 場景的節(jié)點與數(shù)據(jù)結(jié)構(gòu)。主要講述Scene Graph與節(jié)點的概念,以及形體節(jié)點、相機節(jié)點、光源節(jié)點、組節(jié)點的設(shè)計。節(jié)點基類的設(shè)計是本章重點。第五章 場景繪制與交互。主要講述場景視窗SceneView、OpenGL簡單視窗Window3D以及3D程序常用對話的設(shè)計。SceneView是Intra3D最復(fù)雜的程序,本章詳細講述SceneView的窗口消息處理、場景繪制與動畫、三維交互以及相應(yīng)ActiveX控件的開發(fā)。第六章 用Visual C+

5、 編寫交互式三維圖形程序。講述如何使用Viusal C+和Intra3D 2.0 C+類庫來開發(fā)交互式3D應(yīng)用程序。四個示例程序均取自Intra3D 2.0標準版軟件。第七章 用Visual Basic 編寫交互式三維圖形程序。講述如何使用Viusal Basic和Intra3D 2.0 COM對象庫來開發(fā)交互式3D應(yīng)用程序。四個示例程序均取自Intra3D 2.0標準版軟件。附錄A講述OpenGL應(yīng)用程序性能優(yōu)化的方法。附錄B為Intra3D 2.0的軟件說明書。程序員總有自己偏愛的工作,作者從本科三年級起開始編寫圖形程序,至今已有八年。期間設(shè)計過統(tǒng)計分析圖形軟件、圖形用戶界面開發(fā)系統(tǒng)、集成

6、電路版圖可制造性分析軟件、三維圖形軟件開發(fā)工具等軟件,現(xiàn)在仍樂此不疲。Intra3D早期版本曾獲首屆中國大學生電腦大賽軟件展示一等獎。我自以為在圖形軟件設(shè)計方面應(yīng)該比較出色了,但這種個人愿望并不等于事實。有一次,當我用一年時間完成一個近10萬行代碼的軟件時,我內(nèi)心得意表面謙虛地向一個真真的軟件高手請教。他竟在十幾分鐘內(nèi)就指出多處重大設(shè)計錯誤,使我目瞪口呆地意識到這個軟件的價值為零。在沮喪和心痛之后,我用了半年時間溫習軟件設(shè)計的基礎(chǔ)知識,學會了客觀地看待軟件作品,不敢再有浮夸和驕傲。由于是講述自己的作品,本書不免要強調(diào)Intra3D 2.0的一些優(yōu)點,但讀者、用戶應(yīng)該了解其缺點。Intra3D軟

7、件是作者在學校里閉門造車開發(fā)出來的,它存在兩大缺點:一是需求不明確,使軟件內(nèi)容泛而不深;二是沒有條件進行用戶測試,程序存在錯誤。我把軟件的源程序公開,免費贈送,目的就是希望用戶能選取一些有價值的程序,同時對我提出批評與建議,使我也能不停地長進。作者再談?wù)剬D形軟件研發(fā)的幾點感受。一、可以選用PC機作為圖形軟件的硬件平臺計算機圖形學研發(fā)人員在選用硬件平臺時,一向青睞圖形工作站,總以為PC機太低級而無法勝任自己“高深”的工作。由于國內(nèi)多數(shù)用戶并沒有富裕到隨時可以購買SGI工作站的程度,3D圖形的應(yīng)用就難以普及。這種情況應(yīng)該可以改變了,現(xiàn)在的高檔PC機配上圖形加速卡,性能可與中檔圖形工作站媲美。著名

8、的PC 3D游戲軟件Quake,就能實時地繪制高度真實感的復(fù)雜場景。Quake軟件讓我震動,我詳細地閱讀了關(guān)于Quake的著作。發(fā)現(xiàn)Quake的開發(fā)者能把很多成熟的圖形技術(shù)發(fā)揮到極致,例如把Bresenham畫線、多邊形裁剪、樹遍歷等算法的速度提高近一個數(shù)量級。我第一次看到Quake時深受打擊,這個PC游戲軟件的技術(shù)水平已經(jīng)遠勝于我所見識到的國內(nèi)領(lǐng)先的圖形學相關(guān)科研成果。這對我們?nèi)找媸⑿械狞c到完止的研發(fā)工作真是莫大的諷刺。所以說,如果圖形程序在PC機上運行太慢,不要再怨機器差,是我們自己沒有把工作做好。二、圖形程序的優(yōu)化圖形程序的主要優(yōu)化目標是繪制速度和真實感質(zhì)量。某些圖形功能的優(yōu)化方法與環(huán)境

9、有關(guān),難以把握。例如用圖形加速卡執(zhí)行紋理映射和反走樣速度會很高,但用軟件執(zhí)行(CPU計算)則很慢。相反的情況也存在,例如最簡單的OpenGL回調(diào)函數(shù)glGet,用軟件執(zhí)行很快,卻可能導(dǎo)致圖形加速卡的流水線繪制崩潰。還要留心的是,即便對于同一算法,代碼的組織不同也會產(chǎn)生性能差異。所以交互式3D程序的優(yōu)化難度較大,開發(fā)人員要盡可能多地了解圖形系統(tǒng)的軟硬件機理。當優(yōu)化目標之間存在沖突時,要根據(jù)實際需求進行折衷。例如在動畫過程中可以繪制簡化過的場景以提高速度,而在靜止時應(yīng)繪制細節(jié)豐富的場景以獲得較好的質(zhì)量。折衷是有原則的,不能使某一方損失關(guān)鍵的功能。如果為了提高動畫速度而取消光照明和平滑著色,那么場景

10、就完全喪失了真實感,這種拆東墻補西墻的做法是不可取的。三、圖形程序的設(shè)計追求美花很多精力和物力讓圖形那么逼真、界面那么漂亮值得嗎?這個問題沒法理性地回答。Steven Coons 獎獲得者Andries van Dam曾說:“Computer Graphics is the most fun you can have with your clothes on”。設(shè)想如果圖形程序的里里外外都很難看,誰還有興趣。我希望Intra3D 2.0不會讓自己和用戶討厭。我即將畢業(yè)到上海貝爾有限公司從事大型的電信軟件研發(fā)工作,盡管工作內(nèi)容變了,但我不想和三維圖形說再見。讀者可以用 和我聯(lián)系,當然,您最好和C

11、AD&CG的專家們交流,我只是一名軟件開發(fā)人員而已。致 謝開發(fā)Intra3D軟件是作者的博士學位論文工作之一。首先要感謝我的導(dǎo)師,浙江大學計算機輔助設(shè)計與圖形學(CAD&CG)國家重點實驗室石教英教授的大力支持。他允許我自由選擇研究方向,并鼓勵從實踐中不斷提高理論水平。楊孟洲、周昆、曾震宇、楊建等同學參加了Intra3D前期版本的開發(fā)。白云、金鋒兩位碩士生是我學位論文工作的主要合作者,我們一起開發(fā)了4個軟件子系統(tǒng)。北京因特國風網(wǎng)絡(luò)軟件公司()的周鴻一在我開發(fā)軟件產(chǎn)品失敗時給予了最多的幫助,并指正我在軟件設(shè)計中存在的根深蒂固的方法錯誤,使我能盡早地逐步改正。杭州金港企業(yè)的高振華老先生給予

溫馨提示

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

評論

0/150

提交評論