![開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/f9e07762-f2f5-414e-932c-2b36d1a4ae73/f9e07762-f2f5-414e-932c-2b36d1a4ae731.gif)
![開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/f9e07762-f2f5-414e-932c-2b36d1a4ae73/f9e07762-f2f5-414e-932c-2b36d1a4ae732.gif)
![開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/f9e07762-f2f5-414e-932c-2b36d1a4ae73/f9e07762-f2f5-414e-932c-2b36d1a4ae733.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、前 言開發(fā)交互式三維圖形程序是充滿樂趣和富有挑戰(zhàn)性的工作。隨著圖形標(biāo)準(zhǔn)OpenGL在Unix與PC平臺(tái)的廣泛應(yīng)用,越來越多的3D應(yīng)用程序采用OpenGL作為支撐庫。OpenGL提供了數(shù)百個(gè)庫函數(shù),可方便地繪制具有真實(shí)感的3D圖形。但是對(duì)于一個(gè)完整的交互式3D應(yīng)用程序,圖形的繪制只是一部分內(nèi)容。更多的工作集中在場(chǎng)景數(shù)據(jù)結(jié)構(gòu)、3D交互算法和3D用戶界面的設(shè)計(jì)中。由于OpenGL并不提供此類編程接口,因此開發(fā)交互式3D應(yīng)用程序的技術(shù)難度較大。本書全面論述了基于OpenGL與Windows的交互式三維圖形技術(shù)以及程序設(shè)計(jì)。與本書配套的軟件是交互式三維圖形軟件開發(fā)工具Intra3D 2.0。Intra3
2、D 2.0是免費(fèi)軟件,可用于快速開發(fā)PC平臺(tái)的交互式3D應(yīng)用程序。其核心是集成了場(chǎng)景數(shù)據(jù)結(jié)構(gòu)、3D交互算法和3D用戶界面的C+類庫與COM對(duì)象庫,支持Visual C+、Visual Basic、Delphi等語言的應(yīng)用編程。兩個(gè)庫各有60余個(gè)程序模塊,7萬多行源程序全部公開,用戶可以方便地修改Intra3D的內(nèi)核以適應(yīng)不同的需求。本書共分七章。前五章詳細(xì)論述Intra3D 2.0核心庫的開發(fā),后兩章講述如何使用Intra3D 2.0的C+類庫與COM對(duì)象庫來開發(fā)應(yīng)用程序。本書所有的程序、數(shù)據(jù)、文檔均可在Intra3D 2.0標(biāo)準(zhǔn)版軟件中找到。各章要點(diǎn)如下:第一章 交互式三維圖形軟件開發(fā)系統(tǒng)。
3、主要講述Intra3D 2.0的設(shè)計(jì)方案和軟件工程方法。Intra3D體系結(jié)構(gòu)分四層設(shè)計(jì),第一層為“基礎(chǔ)對(duì)象與算法”, 第二層為“圖形對(duì)象”, 第三層為“場(chǎng)景圖與節(jié)點(diǎn)”, 第四層為“繪制與交互”。第二章 基礎(chǔ)對(duì)象與算法。主要講述:用于圖形變換的矢量、矩陣、四元組運(yùn)算;鼠標(biāo)跟蹤球算法;二維點(diǎn)陣字體與三維矢量字體的繪制;讀取BMP、GIF、JPEG、SGI與TGA格式的數(shù)字圖像;常用幾何圖元的繪制;“對(duì)象引用計(jì)數(shù)”的內(nèi)存管理技術(shù);材質(zhì)對(duì)象與紋理對(duì)象的設(shè)計(jì)。第三章 圖形對(duì)象。主要講述三類圖形對(duì)象的設(shè)計(jì):(1)多邊形模型對(duì)象,用于繪制Autodesk公司的.3ds模型以及Wavefront公司的.ob
4、j模型。(2)商業(yè)統(tǒng)計(jì)圖形對(duì)象,用于繪制柱形圖、帶狀圖、折線圖、條形圖等。(3)常用幾何模型對(duì)象,用于繪制長方體、錐體、圓柱體、球體、圓環(huán)體等圖形。第四章 場(chǎng)景的節(jié)點(diǎn)與數(shù)據(jù)結(jié)構(gòu)。主要講述Scene Graph與節(jié)點(diǎn)的概念,以及形體節(jié)點(diǎn)、相機(jī)節(jié)點(diǎn)、光源節(jié)點(diǎn)、組節(jié)點(diǎn)的設(shè)計(jì)。節(jié)點(diǎn)基類的設(shè)計(jì)是本章重點(diǎn)。第五章 場(chǎng)景繪制與交互。主要講述場(chǎng)景視窗SceneView、OpenGL簡(jiǎn)單視窗Window3D以及3D程序常用對(duì)話的設(shè)計(jì)。SceneView是Intra3D最復(fù)雜的程序,本章詳細(xì)講述SceneView的窗口消息處理、場(chǎng)景繪制與動(dòng)畫、三維交互以及相應(yīng)ActiveX控件的開發(fā)。第六章 用Visual C+
5、 編寫交互式三維圖形程序。講述如何使用Viusal C+和Intra3D 2.0 C+類庫來開發(fā)交互式3D應(yīng)用程序。四個(gè)示例程序均取自Intra3D 2.0標(biāo)準(zhǔn)版軟件。第七章 用Visual Basic 編寫交互式三維圖形程序。講述如何使用Viusal Basic和Intra3D 2.0 COM對(duì)象庫來開發(fā)交互式3D應(yīng)用程序。四個(gè)示例程序均取自Intra3D 2.0標(biāo)準(zhǔn)版軟件。附錄A講述OpenGL應(yīng)用程序性能優(yōu)化的方法。附錄B為Intra3D 2.0的軟件說明書。程序員總有自己偏愛的工作,作者從本科三年級(jí)起開始編寫圖形程序,至今已有八年。期間設(shè)計(jì)過統(tǒng)計(jì)分析圖形軟件、圖形用戶界面開發(fā)系統(tǒng)、集成
6、電路版圖可制造性分析軟件、三維圖形軟件開發(fā)工具等軟件,現(xiàn)在仍樂此不疲。Intra3D早期版本曾獲首屆中國大學(xué)生電腦大賽軟件展示一等獎(jiǎng)。我自以為在圖形軟件設(shè)計(jì)方面應(yīng)該比較出色了,但這種個(gè)人愿望并不等于事實(shí)。有一次,當(dāng)我用一年時(shí)間完成一個(gè)近10萬行代碼的軟件時(shí),我內(nèi)心得意表面謙虛地向一個(gè)真真的軟件高手請(qǐng)教。他竟在十幾分鐘內(nèi)就指出多處重大設(shè)計(jì)錯(cuò)誤,使我目瞪口呆地意識(shí)到這個(gè)軟件的價(jià)值為零。在沮喪和心痛之后,我用了半年時(shí)間溫習(xí)軟件設(shè)計(jì)的基礎(chǔ)知識(shí),學(xué)會(huì)了客觀地看待軟件作品,不敢再有浮夸和驕傲。由于是講述自己的作品,本書不免要強(qiáng)調(diào)Intra3D 2.0的一些優(yōu)點(diǎn),但讀者、用戶應(yīng)該了解其缺點(diǎn)。Intra3D軟
7、件是作者在學(xué)校里閉門造車開發(fā)出來的,它存在兩大缺點(diǎn):一是需求不明確,使軟件內(nèi)容泛而不深;二是沒有條件進(jìn)行用戶測(cè)試,程序存在錯(cuò)誤。我把軟件的源程序公開,免費(fèi)贈(zèng)送,目的就是希望用戶能選取一些有價(jià)值的程序,同時(shí)對(duì)我提出批評(píng)與建議,使我也能不停地長進(jìn)。作者再談?wù)剬?duì)圖形軟件研發(fā)的幾點(diǎn)感受。一、可以選用PC機(jī)作為圖形軟件的硬件平臺(tái)計(jì)算機(jī)圖形學(xué)研發(fā)人員在選用硬件平臺(tái)時(shí),一向青睞圖形工作站,總以為PC機(jī)太低級(jí)而無法勝任自己“高深”的工作。由于國內(nèi)多數(shù)用戶并沒有富裕到隨時(shí)可以購買SGI工作站的程度,3D圖形的應(yīng)用就難以普及。這種情況應(yīng)該可以改變了,現(xiàn)在的高檔PC機(jī)配上圖形加速卡,性能可與中檔圖形工作站媲美。著名
8、的PC 3D游戲軟件Quake,就能實(shí)時(shí)地繪制高度真實(shí)感的復(fù)雜場(chǎng)景。Quake軟件讓我震動(dòng),我詳細(xì)地閱讀了關(guān)于Quake的著作。發(fā)現(xiàn)Quake的開發(fā)者能把很多成熟的圖形技術(shù)發(fā)揮到極致,例如把Bresenham畫線、多邊形裁剪、樹遍歷等算法的速度提高近一個(gè)數(shù)量級(jí)。我第一次看到Quake時(shí)深受打擊,這個(gè)PC游戲軟件的技術(shù)水平已經(jīng)遠(yuǎn)勝于我所見識(shí)到的國內(nèi)領(lǐng)先的圖形學(xué)相關(guān)科研成果。這對(duì)我們?nèi)找媸⑿械狞c(diǎn)到完止的研發(fā)工作真是莫大的諷刺。所以說,如果圖形程序在PC機(jī)上運(yùn)行太慢,不要再怨機(jī)器差,是我們自己沒有把工作做好。二、圖形程序的優(yōu)化圖形程序的主要優(yōu)化目標(biāo)是繪制速度和真實(shí)感質(zhì)量。某些圖形功能的優(yōu)化方法與環(huán)境
9、有關(guān),難以把握。例如用圖形加速卡執(zhí)行紋理映射和反走樣速度會(huì)很高,但用軟件執(zhí)行(CPU計(jì)算)則很慢。相反的情況也存在,例如最簡(jiǎn)單的OpenGL回調(diào)函數(shù)glGet,用軟件執(zhí)行很快,卻可能導(dǎo)致圖形加速卡的流水線繪制崩潰。還要留心的是,即便對(duì)于同一算法,代碼的組織不同也會(huì)產(chǎn)生性能差異。所以交互式3D程序的優(yōu)化難度較大,開發(fā)人員要盡可能多地了解圖形系統(tǒng)的軟硬件機(jī)理。當(dāng)優(yōu)化目標(biāo)之間存在沖突時(shí),要根據(jù)實(shí)際需求進(jìn)行折衷。例如在動(dòng)畫過程中可以繪制簡(jiǎn)化過的場(chǎng)景以提高速度,而在靜止時(shí)應(yīng)繪制細(xì)節(jié)豐富的場(chǎng)景以獲得較好的質(zhì)量。折衷是有原則的,不能使某一方損失關(guān)鍵的功能。如果為了提高動(dòng)畫速度而取消光照明和平滑著色,那么場(chǎng)景
10、就完全喪失了真實(shí)感,這種拆東墻補(bǔ)西墻的做法是不可取的。三、圖形程序的設(shè)計(jì)追求美花很多精力和物力讓圖形那么逼真、界面那么漂亮值得嗎?這個(gè)問題沒法理性地回答。Steven Coons 獎(jiǎng)獲得者Andries van Dam曾說:“Computer Graphics is the most fun you can have with your clothes on”。設(shè)想如果圖形程序的里里外外都很難看,誰還有興趣。我希望Intra3D 2.0不會(huì)讓自己和用戶討厭。我即將畢業(yè)到上海貝爾有限公司從事大型的電信軟件研發(fā)工作,盡管工作內(nèi)容變了,但我不想和三維圖形說再見。讀者可以用 和我聯(lián)系,當(dāng)然,您最好和C
11、AD&CG的專家們交流,我只是一名軟件開發(fā)人員而已。致 謝開發(fā)Intra3D軟件是作者的博士學(xué)位論文工作之一。首先要感謝我的導(dǎo)師,浙江大學(xué)計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)(CAD&CG)國家重點(diǎn)實(shí)驗(yàn)室石教英教授的大力支持。他允許我自由選擇研究方向,并鼓勵(lì)從實(shí)踐中不斷提高理論水平。楊孟洲、周昆、曾震宇、楊建等同學(xué)參加了Intra3D前期版本的開發(fā)。白云、金鋒兩位碩士生是我學(xué)位論文工作的主要合作者,我們一起開發(fā)了4個(gè)軟件子系統(tǒng)。北京因特國風(fēng)網(wǎng)絡(luò)軟件公司()的周鴻一在我開發(fā)軟件產(chǎn)品失敗時(shí)給予了最多的幫助,并指正我在軟件設(shè)計(jì)中存在的根深蒂固的方法錯(cuò)誤,使我能盡早地逐步改正。杭州金港企業(yè)的高振華老先生給予
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年日照貨運(yùn)資格證試題及答案
- 2025年阿勒泰駕駛資格證模擬考試
- 2025年甘肅貨運(yùn)從業(yè)資格證年考試題及答案
- 2025年銅仁從業(yè)資格證模擬考試題貨運(yùn)考題
- 監(jiān)理工程師考試合同(2篇)
- 電力實(shí)時(shí)監(jiān)測(cè)合同(2篇)
- 2024-2025學(xué)年高中生物第3章第1節(jié)細(xì)胞膜-系統(tǒng)的邊界練習(xí)含解析新人教版必修1
- 華師大版數(shù)學(xué)七年級(jí)下冊(cè)《多邊形的外角和》聽評(píng)課記錄3
- 學(xué)生暑假實(shí)習(xí)總結(jié)
- 幼兒園中班月工作總結(jié)月工作總結(jié)
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢測(cè)歷史試題(含答案)
- 地質(zhì)災(zāi)害防治工程施工技術(shù)要點(diǎn)課件
- 防涉黃課件教學(xué)課件
- 企業(yè)人才招聘與選拔方法論研究
- GB/T 11263-2024熱軋H型鋼和剖分T型鋼
- 醫(yī)療器械軟件研究報(bào)告 適用嵌入式和桌面式 2023版
- 2024年江蘇省高考政治試卷(含答案逐題解析)
- 聯(lián)通欠費(fèi)催繳業(yè)務(wù)項(xiàng)目實(shí)施方案
- 《三國演義》題庫單選題100道及答案解析
- 礦產(chǎn)資源儲(chǔ)量報(bào)告編制和評(píng)審中常見問題及其處理意見
- 全國網(wǎng)約車出租車駕駛員公共題模擬考試題及答案
評(píng)論
0/150
提交評(píng)論