出版時(shí)間:2010-1 出版社:清華大學(xué)出版社 作者:肖鵬,劉更代,徐明亮 編著 頁(yè)數(shù):421
Tag標(biāo)簽:無(wú)
前言
OpenSceneGraph(OSG)場(chǎng)景圖形系統(tǒng)是一個(gè)基于工業(yè)標(biāo)準(zhǔn)OpenGL的軟件接口,它讓程序員能夠更加快速、便捷地創(chuàng)建高性能、跨平臺(tái)的交互式圖形程序。本書是一本基于OSG 2.8版本的編程入門指南書籍,也通用于OSG 2.x系列及以后版本的開發(fā)?! 腛SG正式發(fā)布以來(lái),OSG可以閱讀的文檔資料只有源代碼。值得慶幸的是,OSG的源代碼中提供了一些相關(guān)的程序示例,通過(guò)它們,用戶可以學(xué)習(xí)如何使用OSG編程實(shí)現(xiàn)虛擬系統(tǒng)軟件的功能。分析示例程序很艱辛,并非一朝一夕的事情。筆者通過(guò)對(duì)OSG大量示例程序和源代碼的分析及豐富的實(shí)際應(yīng)用經(jīng)驗(yàn),逐漸對(duì)OSG的開發(fā)流程及核心有了一定的了解。隨著OSG的不斷發(fā)展,越來(lái)越多的人開始關(guān)注、學(xué)習(xí)OSG和應(yīng)用OSG開發(fā),但由于OSG本身文檔資料缺乏,作為初學(xué)者,很難在短時(shí)間內(nèi)通過(guò)分析示例程序和源代碼得到提高。筆者長(zhǎng)期置身于OSG開發(fā),作為OsgChina(http://www. OsgChina.org)中國(guó)官方網(wǎng)站管理員,同時(shí)也是OSG國(guó)內(nèi)各大論壇OSG版面的版主,在與開發(fā)者交流的過(guò)程中,發(fā)現(xiàn)初學(xué)者普遍存在入門難、應(yīng)用開發(fā)難等問(wèn)題,于是寫了《OpenSceneGraph三維渲染引擎編程指南》一書?! ”緯紫冉榻B了OSG的歷史和開源組織、如何獲取和正確安裝OSG以及一些簡(jiǎn)單示例程序的運(yùn)行;然后深入探討了一些OSG的數(shù)學(xué)基礎(chǔ)、內(nèi)部管理機(jī)制和實(shí)用技術(shù),主要包括坐標(biāo)系統(tǒng)、內(nèi)存管理、場(chǎng)景樹結(jié)構(gòu)、圖形節(jié)點(diǎn)的概念和分類、OSG的狀態(tài)屬性和模式控制、紋理映射、光照和材質(zhì)、I/O接口、場(chǎng)景渲染控制、更新回調(diào)、文字、動(dòng)畫陰影及粒子系統(tǒng)添加等功能的具體介紹;最后探討了關(guān)于OSG地形與地理信息的應(yīng)用,主要包括VirtualPlanetBuilder和OSGGIS的使用方法,還提出了關(guān)于大規(guī)模地形渲染的解決方案。 通過(guò)本書,讀者不但可以學(xué)習(xí)到OSG在虛擬現(xiàn)實(shí)開發(fā)中最重要、最實(shí)用的知識(shí)和技能,還可學(xué)習(xí)到一些開源軟件使用的基本技法。在學(xué)習(xí)完本書后,讀者將會(huì)對(duì)OSG有一個(gè)深入全面的了解,同時(shí)也將具備開發(fā)一個(gè)基于OSG的虛擬現(xiàn)實(shí)系統(tǒng)的能力?! ”緯鴧㈤喠藝?guó)內(nèi)外大量的最新圖形開發(fā)和虛擬現(xiàn)實(shí)實(shí)用技術(shù)的資料,所講解的內(nèi)容都是基于圖形開發(fā)的最新方法和技術(shù)。書中提供了大量豐富、新穎、實(shí)用的原創(chuàng)示例程序,并經(jīng)過(guò)嚴(yán)格的測(cè)試,可以完全應(yīng)用到實(shí)際工程或者系統(tǒng)開發(fā)中。由于作者能力有限,書中難免存在錯(cuò)誤和不足之處,懇請(qǐng)廣大讀者批評(píng)指正。同時(shí),歡迎到OsgChina中國(guó)官方討論區(qū)(http://bbs.OsgChina.org)發(fā)帖提問(wèn),筆者會(huì)盡量在第一時(shí)間回復(fù)相關(guān)的問(wèn)題。 本書能夠順利完成并出版,得到了這些人大量的幫助: 感謝編輯,他對(duì)本書傾注了大量的心血,給了我巨大的幫助和指導(dǎo)?! 「兄x我的師兄劉更代和徐明亮,沒有他們,難以想象這本書什么時(shí)候才能完成并出版?! 「兄x我的師兄楊石興和曹明亮,他們引導(dǎo)我進(jìn)入OSG的開發(fā)領(lǐng)域?! 「兄x我的爸爸、媽媽和姐姐,他們給了我生活自主的空間,讓我能夠盡情地飛翔在自己的天空。 感謝我的女友雄英,她每天都給我很多鼓勵(lì)和幫助。
內(nèi)容概要
本書是一本全面深入介紹OpenSceneGraph(OSG)基礎(chǔ)及核心API函數(shù)的入門教程。OpenSceneGraph(OSG)是一個(gè)基于工業(yè)標(biāo)準(zhǔn)OpenGL跨平臺(tái)的三維開源場(chǎng)景圖形系統(tǒng)應(yīng)用程序開發(fā)接口(API)。作為一個(gè)高性能的圖形開發(fā)引擎,它在3D程序開發(fā)中扮演著重要的角色。 本書按照OSG的設(shè)計(jì)結(jié)構(gòu)體系,逐一深入討論OSG的各個(gè)功能模塊。首先介紹了OSG的歷史和開源組織,以及配置開發(fā)環(huán)境;然后深入探討OSG的核心庫(kù)、NodeKits工具庫(kù)、OSG插件庫(kù)、互操作庫(kù)及擴(kuò)展庫(kù)等,重點(diǎn)分析了如何將OSG集成到用戶應(yīng)用開發(fā)程序的核心功能及各種應(yīng)用技術(shù),主要包括場(chǎng)景組織和管理、場(chǎng)景數(shù)據(jù)優(yōu)化、交互操作及數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)更新等技術(shù);最后探討了關(guān)于OSG地形與地理信息的應(yīng)用。 本書要求讀者有比較好的C++基礎(chǔ)知識(shí)和一些3D數(shù)學(xué)基礎(chǔ)知識(shí),適合所有對(duì)OpenGL和OSG編程感興趣的讀者。
書籍目錄
第1章 OpenSceneGraph概述 1.1 OpenSceneGraph簡(jiǎn)介 1.1.1 什么是OpenSceneGraph 1.1.2 OpenSceneGraph的歷史和發(fā)展 1.1.3 OSG中國(guó) 1.1.4 OSG組成模塊 1.2 開發(fā)的預(yù)備知識(shí) 1.3 OSG的安裝及編譯 1.3.1 OSG的獲取及安裝 1.3.2 編譯OSG 1.3.3 OSG郵件列表 1.4 OSG基礎(chǔ) 1.4.1 開發(fā)環(huán)境設(shè)置 1.4.2 OSG中的HelloWorld工程 1.4.3 OSG實(shí)用工具——場(chǎng)景瀏覽器osgViewer 1.4.4 OSG實(shí)用工具——版本信息查看器osgVersion 1.4.5 OSG實(shí)用工具——場(chǎng)景圖形壓縮歸檔工具osgArchive 1.4.6 OSG實(shí)用工具——數(shù)據(jù)轉(zhuǎn)換工具osgConv 第2章 OpenSceneGraph數(shù)學(xué)基礎(chǔ) 2.1 坐標(biāo)系統(tǒng) 2.2 坐標(biāo)系變換 2.2.1 世界坐標(biāo)系-物體坐標(biāo)系變換 2.2.2 物體坐標(biāo)系-世界坐標(biāo)系變換 2.2.3 世界坐標(biāo)系-屏幕坐標(biāo)系變換 2.3 向量、矩陣及四元數(shù) 2.3.1 向量 2.3.2 矩陣 2.3.3 四元數(shù) 2.3.4 矩陣與四元數(shù)之間的轉(zhuǎn)換 第3章 場(chǎng)景的組織及渲染 3.1 OSG場(chǎng)景樹 3.1.1 OSG場(chǎng)景樹節(jié)點(diǎn) 3.1.2 OSG中的父節(jié)點(diǎn)與子節(jié)點(diǎn) 3.2 Geode 3.2.1 Billboard節(jié)點(diǎn) 3.2.2 布告板示例 3.3 Group 3.3.1 位置變換節(jié)點(diǎn) 3.3.2 位置變換節(jié)點(diǎn)示例 3.3.3 矩陣變換節(jié)點(diǎn) 3.3.4 矩陣變換節(jié)點(diǎn)示例 3.3.5 自動(dòng)對(duì)齊節(jié)點(diǎn) 3.3.6 自動(dòng)對(duì)齊節(jié)點(diǎn)示例 3.3.7 開關(guān)節(jié)點(diǎn) 3.3.8 開關(guān)節(jié)點(diǎn)示例 3.3.9 細(xì)節(jié)層次節(jié)點(diǎn) 3.3.10 細(xì)節(jié)層次節(jié)點(diǎn)示例 3.3.11 分頁(yè)細(xì)節(jié)層次節(jié)點(diǎn) 3.3.12 分頁(yè)細(xì)節(jié)層次節(jié)點(diǎn)示例 3.3.13 替代節(jié)點(diǎn) 3.3.14 替代節(jié)點(diǎn)示例 3.3.15 遮擋裁剪節(jié)點(diǎn) 3.3.16 遮擋裁剪節(jié)點(diǎn)示例 3.3.17 坐標(biāo)系節(jié)點(diǎn) 3.3.18 坐標(biāo)系節(jié)點(diǎn)示例 3.4 場(chǎng)景中節(jié)點(diǎn)的拷貝——osg::CopyOp類 3.4.1 自定義場(chǎng)景拷貝示例(一) 3.4.2 自定義場(chǎng)景拷貝示例(二) 第4章 OSG中幾何體的繪制 第5章 渲染狀態(tài)、紋理與光照 第6章 文件的讀寫 第7章 場(chǎng)景圖形的工作機(jī)制 第8章 場(chǎng)景圖形管理 第9章 OSG文字 第10章 OSG動(dòng)畫與聲音 第12章 osgFX擴(kuò)展庫(kù)及osgSim擴(kuò)展庫(kù) 第13章 OSG地形與地理信息 參考文獻(xiàn)
章節(jié)摘錄
早在1997年,DonBums便作為軟件設(shè)計(jì)顧問(wèn)受雇于SiliconGraphics(SGI),他在業(yè)余時(shí)間還喜歡滑翔運(yùn)動(dòng)。正因?yàn)閷?duì)計(jì)算機(jī)圖形和滑翔機(jī)同樣的熱衷及對(duì)尖端渲染設(shè)備的了解,他使用Performer場(chǎng)景圖形(SGI專有)系統(tǒng)設(shè)計(jì)了一套基于SGIOnyx的滑翔仿真軟件?! ∮捎谑艿狡渌钀酆谜叩墓膭?lì),Don開始嘗試使用Linux上的Mesa3D和3dfx的Voodoo設(shè)備,以開發(fā)基于更多硬件平臺(tái)的仿真軟件。當(dāng)這套軟件開始支持OpenGL時(shí),場(chǎng)景圖形的概念還未能應(yīng)用于Linux。為了填補(bǔ)這一空缺,Don開始編寫一套簡(jiǎn)單的、類似于Performer的場(chǎng)景圖形系統(tǒng),開發(fā)強(qiáng)調(diào)樸素且易用,它滿足了當(dāng)時(shí)人們對(duì)于場(chǎng)景圖形系統(tǒng)的需求,也使Don的滑翔仿真軟件能夠運(yùn)行于低成本的Linux系統(tǒng)?! 〉搅?998年,Don在滑翔愛好者的郵件組中遇到了Robe~Osfield。那時(shí)Robert在MidlandValleyExploration工作,那是一個(gè)來(lái)自蘇格蘭格拉斯哥的油氣公司。Robert同樣對(duì)計(jì)算機(jī)圖形學(xué)和可視化技術(shù)有著濃厚的興趣。兩人開始合作,對(duì)仿真軟件進(jìn)行改善。Robert倡導(dǎo)開源,并提議將SG作為獨(dú)立的開源場(chǎng)景圖形項(xiàng)目繼續(xù)開發(fā),并由自己擔(dān)任項(xiàng)目主導(dǎo)。項(xiàng)目的名稱改為OpenSceneGraph,當(dāng)時(shí)共有9人加入了OSG的用戶郵件列表?! ?000年底,BredeJohansen為OpenSceneGraph作出了第一份貢獻(xiàn),即添加了OSG的OpenFlight模塊?! ‘?dāng)時(shí)他在挪威孔斯貝格的KongsbergMaritime船舶仿真公司工作,該公司后來(lái)設(shè)計(jì)了基于OSG的SeaViewR5視覺系統(tǒng)?! ⊥瑯釉?000年,Robe離開了原來(lái)的工作單位,作為OpenSceneGraph的專業(yè)服務(wù)商開始全職進(jìn)行OSG的開發(fā)工作。在這段時(shí)間,他設(shè)計(jì)并實(shí)現(xiàn)了今天的OSG所使用的許多核心功能,并且是在完全沒有客戶和薪酬的情況下完成的。Don到了Keyhole數(shù)字地圖公司(現(xiàn)在是Google的GoogleEarth部門),于2001年辭職,他也組建了自己的公司——AndesComputerEngineering,位于加利福尼亞州的圣何塞,公司成立后繼續(xù)進(jìn)行OSG的開發(fā)工作。第一屆OpenSceneGraph“同好”會(huì)在SIGGRAPH2001舉行,只有12個(gè)人參加。
編輯推薦
全面深入介紹opensceneGraph基礎(chǔ)知識(shí)及核心API函數(shù)?! ≈鹨惶接慞pensceneGraph中的各個(gè)功能模塊以及配置開發(fā)環(huán)境?! √峁┐罅康氖纠绦蜓菔尽⒃创a分析以及豐富的實(shí)際開發(fā)經(jīng)驗(yàn)?! ∽x者將具備開發(fā)一款基于OpenSceneGraph的虛擬現(xiàn)實(shí)系統(tǒng)的能力?! 碛胸S富的社區(qū)資源和強(qiáng)大的網(wǎng)絡(luò)支持,以方便讀者進(jìn)一步的學(xué)習(xí)和交流。 基于工業(yè)圖形標(biāo)準(zhǔn)OpenGL的高層次三維渲染引擎?! ∩钊胫v解OpenSceneGraph)~染引擎的內(nèi)部實(shí)現(xiàn)及其應(yīng)用?! ≡敿?xì)介紹OpenSceneGraph渲染引擎的組織架構(gòu)及其實(shí)現(xiàn)流程?! penGL架構(gòu)評(píng)估編委會(huì)(ARB)獨(dú)立撰稿人PauIMartz先生強(qiáng)力推薦?! 碛胸S富的社區(qū)資源和強(qiáng)大的網(wǎng)絡(luò)支持,以方便讀者進(jìn)一步的學(xué)習(xí)和交流。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
OpenSceneGraph三維渲染引擎編程指南 PDF格式下載