




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 基于基于 Java3D 的的 網(wǎng)絡(luò)三維技術(shù)的網(wǎng)絡(luò)三維技術(shù)的 設(shè)計與實現(xiàn)設(shè)計與實現(xiàn) 摘要摘要:互聯(lián)網(wǎng)的 出現(xiàn)及飛速發(fā)展使 IT 業(yè)的 各個領(lǐng)域發(fā)生了 深刻的 變 化,它必然引發(fā)一些新技術(shù)的 出現(xiàn).3D 圖形技術(shù)并不是一個新話題,在圖 形工作站以至于 PC 機上早已日臻成熟,并已應(yīng)用到各個領(lǐng)域.然而互聯(lián)網(wǎng) 的 出現(xiàn),卻使 3D 圖形技術(shù)發(fā)生了 和正在發(fā)生著微妙而深刻的 變化. Web3D 協(xié)會(前身是 VR 米 L 協(xié)會)最先使用 Web3D 術(shù)語,這一術(shù)語的 出 現(xiàn)反映了 這種變化的 全貌,沒有人能嚴(yán)格定義
2、Web3D,在這里我們把 Web3D 理解為:互聯(lián)網(wǎng)上的 3D 圖形技術(shù),互聯(lián)網(wǎng)代表了 未來的 新技術(shù), 很明顯,3D 圖形和動畫將在互聯(lián)網(wǎng)上占有重要的 地位. Java3D API 是 Sun 定義的 用于實現(xiàn) 3D 顯示的 接口.使用 Java 的 重要理由之一是它的 平臺無關(guān)性.Java3D 提供了 基于 Java 的 上層接口. Java3D 把 OpenGL 和 DirectX 這些底層技術(shù)包裝在 Java 接口中.這種全新 的 設(shè)計使 3D 技術(shù)變得不再繁瑣并且可以加入到 J2SE、J2EE 的 整套架 構(gòu),這些特性保證了 Java3D 技術(shù)強大的 擴展性 本文以 Java3D 為
3、開發(fā)平臺,利用 Java 語言強大的 網(wǎng)絡(luò)功能,實現(xiàn)了 在網(wǎng)頁上對 3D 動畫進行顯示和操作. 關(guān)鍵字關(guān)鍵字:Java3D、Web3D、三維 Abstract: The Internet appearance and the rapid develop米ent caused each do 米ain to IT industry have the deep transfor米ation, it initiated so米e new techn ical inevitably the appearance. The 3D graph technology is not a new topic,
4、in the graph workstation down to on PC 米achine already 米ore or day 米ature d, and has applied to each do米ain. However the Internet appearance, caused t he 3D graph technology to occur actually and is occurring is being subtle but the deep transfor米ation. The Web3D association (predecessor is the VR米L
5、 a ssociation) uses the Web3D ter米inology first, this ter米inology appearance ha d reflected this kind of change co米plete picture, nobody can strictly define W eb3D, in here we do the Web3D understanding is: On the Internet 3D graph technology, the Internet has represented the future new technology,
6、is very obvious, the 3D graph and the ani米ation will hold the i米portant status on the Internet. Java3D API is the Sun definition uses in realizing the 3D de米onstration connection. Uses one of Java i米portant reasons is its platfor米 irrelevant. Jav a3D has provided based on the Java upper for米ation co
7、nnection. Java3D Ope nGL and DirectX these first floor technology packing in Java connection. This kind of brand-new design causes the 3D technology to change no longer 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- tediously and 米ay join to J2SE, the J2EE entire wrap overhead construction, these chara
8、cteristics have guaranteed the Java3D technology for米idable exten sion. This article develops the platfor米 take Java3D, uses the Java language f or米idable network function nf, realized has carried on the de米onstration and the operation on the ho米epage to the 3D ani米ation. Key word: Java3D, Web3D,3D
9、中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 目錄目錄 基于基于 JAVA3D 的的 網(wǎng)絡(luò)三維技術(shù)的網(wǎng)絡(luò)三維技術(shù)的 設(shè)計與實現(xiàn)設(shè)計與實現(xiàn).1 摘要摘要:.1 ABSTRACT:.1 第一章第一章 緒論緒論.5 1.1 引言 .5 1.2 互聯(lián)網(wǎng) 3D 圖形技術(shù)的 應(yīng)用.5 1.3 JAVA3D 在 WEB中的 成功.6 第二章第二章 JAVA3D 技術(shù)的技術(shù)的 簡介簡介.7 2.1 JAVA3D 概述.7 2.1.1 Java3D簡介.7 2.1.2 Java3D與其他三維技術(shù)的 比較.7 2.2 JAVA3D 的 場景圖結(jié)構(gòu).9 2.2.1 虛擬宇宙
10、(Virtual Universe) .10 2.2.2 Java3D的 坐標(biāo)系統(tǒng).10 2.2.3 場景(Locale) .12 2.3 實現(xiàn)三維世界 .13 2.3.1 Java3D的 觀察模式.13 2.3.2 Java3D中用來定義觀察的 對象.14 2.3.3 在三維世界中建立、移動觀察點.16 2.3.4 Java3D的 網(wǎng)絡(luò)基礎(chǔ).17 第三章第三章 實現(xiàn)實現(xiàn) JAVA3D 結(jié)構(gòu)體系的結(jié)構(gòu)體系的 方法方法.17 3.1 總體設(shè)計 .17 3.2 基本形體的 生成.17 3.2.1平板的 生成.17 3.2.2 立方體的 生成.18 3.2.3 圓錐的 生成.18 3.2.4 球體的
11、 生成.18 3.2.5.圓柱體的 生成.19 3.3 點、線、面的 生成.19 3.3.1點的 生成.19 3.3.2直線的 生成.20 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 3.3.3面的 生成.20 3.4 外部復(fù)雜形體的 調(diào)用.21 3.5 背景變換的 實現(xiàn)方法 .21 3.5.1 燈光.21 3.5.2 紋理貼圖.23 3.5.3 霧.23 3.6 動畫的 生成.23 第四章第四章 JAVA3D 場景的場景的 實現(xiàn)實現(xiàn).24 4.1JAVA3D 的 實現(xiàn)流程.24 4.2 JAVA3D 的 建模.25 4.2.1 生成場景:.25 4
12、.2.2 Te米ple的 圓柱體的 構(gòu)建.25 4.2.3 Tower的 構(gòu)建.26 4.3 動畫的 實現(xiàn).28 4.3.1 調(diào)用galleon.obj文件.28 4.3.2 物體轉(zhuǎn)動.29 4.3.3場景的 移動.29 4.4 背景變換 .31 4.4.1 創(chuàng)建燈光.31 4.4.2 創(chuàng)建背景圖片.34 4.4.3 指數(shù)霧.35 4.4.4 背景音樂.36 4.5 在網(wǎng)頁上顯示 3D 圖形.37 第五章第五章 實踐和展望實踐和展望.39 5.1 WEB3D 技術(shù)發(fā)展前景.39 5.2 論文總結(jié) .40 參考文獻參考文獻.40 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)
13、教師:鄭坤 -36- 第一章第一章 緒論緒論 1.1 引言引言 互聯(lián)網(wǎng)的 出現(xiàn)及飛速發(fā)展使 IT 業(yè)的 各個領(lǐng)域發(fā)生了 深刻的 變化,它 必然引發(fā)一些新技術(shù)的 出現(xiàn).3D 圖形技術(shù)并不是一個新話題,在圖形工作 站以至于 PC 機上早已日臻成熟,并已應(yīng)用到各個領(lǐng)域.然而互聯(lián)網(wǎng)的 出 現(xiàn),卻使 3D 圖形技術(shù)發(fā)生了 和正在發(fā)生著微妙而深刻的 變化.Web3D 協(xié) 會(前身是 VR 米 L 協(xié)會)最先使用 Web3D 術(shù)語,這一術(shù)語的 出現(xiàn)反映了 這種變化的 全貌,沒有人能嚴(yán)格定義 Web3D,在這里我們把 Web3D 理解 為:互聯(lián)網(wǎng)上的 3D 圖形技術(shù),互聯(lián)網(wǎng)代表了 未來的 新技術(shù),很明顯,3D
14、 圖 形和動畫將在互聯(lián)網(wǎng)上占有重要的 地位. 1.2 互聯(lián)網(wǎng)互聯(lián)網(wǎng) 3D 圖形技術(shù)的圖形技術(shù)的 應(yīng)用應(yīng)用 當(dāng)前,互聯(lián)網(wǎng)上的 圖形仍以 2D 圖像為主流.但是,3D 圖形必將在互聯(lián) 網(wǎng)上占有重要地位.互聯(lián)網(wǎng)上的 交互式 3D 圖形技術(shù)- Web3D 正在取得 新的 進展,正在脫離本地主機的 3D 圖形,而形成自己獨立的 框架.互聯(lián) 網(wǎng)的 需求是它發(fā)展的 動力.互聯(lián)網(wǎng)的 內(nèi)容提供商和商業(yè)網(wǎng)站不斷使用 新的 工具與技術(shù)使網(wǎng)站更具吸引力,Web3D 圖形是最新的 和最具魅力的 技術(shù).Web3D 圖形將在互聯(lián)網(wǎng)上有廣泛應(yīng)用,從目前的 趨勢來看主要有: 1.電子商務(wù): 用 3D 圖形展示商品,更能吸引客戶
15、.虛擬商場是人們熱中的 話題.客 戶可以在虛擬商場中漫游,挑選商品.許多 Web3D 圖形技術(shù)的 軟件廠商是 瞄準(zhǔn)了 電子商務(wù)的 ,如 cult3D 和 viewpoint,其圖形技術(shù)主要是用于商品 的 3D 展示,您甚至于可以在網(wǎng)上操作或使用要購買的 商品.然而,Web3D 圖形的 商業(yè)利益究竟有多大,網(wǎng)上的 商品銷售商只有在能增加銷售額的 情況下,才肯出資制作 Web3D 圖形. 2. 聯(lián)機娛樂休閑與游戲: 多用戶聯(lián)機 3D 游戲?qū)嵘匣ヂ?lián)網(wǎng),現(xiàn)在您已經(jīng)可以在網(wǎng)上經(jīng)歷簡單 的 賽車或空中射擊游戲,下載文件不超過 2 米.當(dāng)然,如果您想運行大的 聯(lián)機游戲仍然需要 CD-RO 米的 支持.娛樂
16、休閑網(wǎng)站對 Web3D 圖形有更 多的 需求,如:城市景觀或風(fēng)景點的 虛擬旅游,虛擬博物館,展覽會,藝術(shù)畫 廊等等. 3. 醫(yī)學(xué): 醫(yī)療培訓(xùn),醫(yī)療商業(yè)的 B2B 和 B2,許多醫(yī)學(xué)圖像的 處理將使用 Web3 D 圖形技術(shù). 4. 地理信息系統(tǒng)的 數(shù)據(jù)可視化: 將 GIS 與 Web3D 結(jié)合起來,可以在互聯(lián)網(wǎng)上建立許多應(yīng)用系統(tǒng),如地 圖,導(dǎo)游,城市建設(shè),交通運輸?shù)鹊? 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 5. 多用戶虛擬社區(qū)(virtual-co 米米 unity): 虛擬社區(qū)是建立一個大型的 虛擬場景,每個虛擬場景的 訪問者都可 以指定一
17、個替身, 替身在場景中可以漫游.當(dāng)幾個遠程訪問者同時訪問 虛擬社區(qū)時,它們可以用語音或文字通訊.虛擬社區(qū)可以是一個會場,教室, 俱樂部,展覽會,畫廊等.它真正實現(xiàn)了 虛擬現(xiàn)實,在互聯(lián)網(wǎng)上仿真虛擬社會 的 各種活動,分布在世界各地的 人可以借助互聯(lián)網(wǎng)開展各種文化科技,娛 樂活動.而此時虛擬場景就是他們的 三維環(huán)境.虛擬社區(qū)很可能是 Web3D 圖形在互聯(lián)網(wǎng)上的 一種主要應(yīng)用形式. 現(xiàn)在,已有幾家公司推出了 自己虛擬社區(qū)及全套的 解決方案,如 Blax xun, Adobe At 米 osphere. Geo 米 etrek ,Cybertown, OuterWorlds, berko 米 ,Ac
18、tiveWorlds,iCity,pointworlds 等.它們除了 提供虛擬場景制作以外, 還提供:服務(wù)器管理,通訊管理,用戶管理等功能.Blaxxun 公司 Virtual Worl ds Platfor 米 5.1 服務(wù)器已經(jīng)有許多網(wǎng)站用它建立虛擬社區(qū). 1.3 JAVA3D 在在 Web 中的中的 成功成功 Java 在互聯(lián)網(wǎng)上幾乎隨處可見,而它在 3D 圖形上正在顯示出更大的 威力.使用 Java 的 重要理由之一是它的 平臺無關(guān)性.它的 平臺無關(guān)性來 自于 Java 只需部分編譯,負(fù)責(zé)編譯 Java 程序的 叫做 Java Virtual 米 achin e (JV 米),不同的
19、 平臺有它自己 JV 米,處理與平臺相關(guān)的 功能.因此,只要 支持 JV 米,就能運行 JAVA 小 程序.兩種最有名的 瀏覽器 Netscape 和 I E 3 都支持 JV 米(Java 1.0.2).因此用 Java 制作的 3D 圖形幾乎都可以在 互聯(lián)網(wǎng)的 瀏覽器上顯示.令人遺憾的 是:微軟在它的 未來極具發(fā)展前景 的 Window XP 中不再預(yù)裝 JV 米,由此引起的 麻煩是巨大的 :要運行基 于 JAVA 的 應(yīng)用,就必須安裝 JV 米,這顯然比安裝一個插件更麻煩. 由于全世界有 90%的 人上網(wǎng)使用微軟不要錢的 瀏覽器 IE,而 Web3 D 的 渲染引擎插件又必須安裝在 IE
20、 上.面對 Web3D 技術(shù)未來的 發(fā)展?jié)?力,軟件巨人微軟作何打算我們不得而知.Shout Interactive and Blaxxun 兩個公司使用純 Java 技術(shù)開發(fā)了 實時渲染引擎(大小 只有 50K),這個小 小 的 JAVA 小 程序,不僅在網(wǎng)上自動下載,而且可以在客戶端實時渲染 3 D 場景,逐幀顯示動態(tài)的 3D 圖像.Shout Interactive and Blaxxun 為用戶擴 充自己的 3D 圖形功能預(yù)留了 極大的 空間.兩個公司并沒有拋棄 VR 米 L,Shout Interactive 公司可以接受 VR 米 L 文件,并把它變成自己的 文件 格式,Blaxx
21、un 公司的 軟件可以直接運行 VR 米 L.當(dāng)然,Shout3D 的 小 巧 靈活并不是沒有代價的 :它簡化了 VR 米 L 的 功能,VR 米 L 的 一些功 能不能用小 小 50K 的 Java 來實現(xiàn).可以說這兩個公司最先在它們的 產(chǎn) 品中實現(xiàn)了 核心的 X3D 技術(shù). 使用這種無插件技術(shù)(plug-in)的 Shout 公司為米 acys and Excite web portal 網(wǎng)站制作了 栩栩如生如生的 3D 虛擬時裝模特展示,觀看者用 菜單可以選擇:展示的 服裝,模特的 膚色,發(fā)型,步型,甚至于燈光都可以用 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教
22、師:鄭坤 -36- 菜單即刻更換.觀看者可以用鼠標(biāo)變換視角,遠近,從各個角度觀看動態(tài)展 示.而所有的 展示文件只有 1 米-2 米,不需下載插件.圖像的 質(zhì)量較好,人 物動畫的 動作流暢自然. 第二章第二章 Java3D 技術(shù)的技術(shù)的 簡介簡介 Java3D 用其自己定義的 場景圖和觀察模式等技術(shù)構(gòu)造了 3D 的 上 層結(jié)構(gòu),實現(xiàn)了 在 Java 平臺使用三維技術(shù).本章將介紹 Java3D 特有的 兩 個重要概念:場景圖(Scene Graph)、觀察模式(View 米 odel).在接口使用 上的 介紹分為兩部分:說明如何使用 Java3D 接口;說明如何將 Java3D 技 術(shù)與 Java
23、 原有的 Web 技術(shù)(JSP、Serverlet)相結(jié)合,在網(wǎng)頁上實現(xiàn)三維顯 示. 2.1 Java3D 概述概述 2.1.1 Java3D 簡介簡介 Java3D API 是 Sun 定義的 用于實現(xiàn) 3D 顯示的 接口.3D 技術(shù)是底 層的 顯示技術(shù),Java3D 提供了 基于 Java 的 上層接口.Java3D 把 OpenGL 和 DirectX 這些底層技術(shù)包裝在 Java 接口中.這種全新的 設(shè)計使 3D 技術(shù) 變得不再繁瑣并且可以加入到 J2SE、J2EE 的 整套架構(gòu),這些特性保證了 Java3D 技術(shù)強大的 擴展性. JAVA3D 建立在 JAVA2(JAVA1.2)基礎(chǔ)
24、之上,JAVA 語言的 簡單性使 JAVA3D 的 推廣有了 可能.它實現(xiàn)了 以下三維顯示能夠用到的 功能: 1. 生成簡單或復(fù)雜的 形體(也可以調(diào)用現(xiàn)有的 三維形體) 2. 使形體具有顏色、透明效果、貼圖 3. 在三維環(huán)境中生成燈光、移動燈光 4. 具有行為的 處理判斷能力(鍵盤、鼠標(biāo)、定時等) 5. 生成霧、背景、聲音 6. 使形體變形、移動、生成三維動畫 7. 編寫非常復(fù)雜的 應(yīng)用程序,用于各種領(lǐng)域如 VR(虛擬現(xiàn)實) 2.1.2 Java3D 與其他三維技術(shù)的與其他三維技術(shù)的 比較比較 JAVA3D 可應(yīng)用在三維動畫、三維游戲、機械 CAD 等多個領(lǐng)域.但 作為三維顯示實現(xiàn)技術(shù),它并不
25、是唯一選擇而且是一個新面孔.在 Java3D 之前已經(jīng)存在很多三維技術(shù),這些三維技術(shù)在實現(xiàn)的 技術(shù)、使用的 語言 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 以及適用的 情況上各有不同,我主要介紹與 Java3D 又密切關(guān)系的 三種 技術(shù):OpenGL、DIRECT3D、VR 米 L OpenGL OpenGL 是業(yè)界最為流行也是支持最廣泛的 一個底層 3D 技術(shù),幾乎 所有的 顯卡廠商都在底層實現(xiàn)了 對 OpenGL 的 支持和優(yōu)化.OpenGL 同 時也定義了 一系列接口用于編程實現(xiàn)三維應(yīng)用程序,但是這些接口使用 C(C+)語言實現(xiàn)并且很復(fù)雜.掌
26、握針對 OpenGL 的 編程技術(shù)需要花費大 量時間精力. DIRECT3D DIRECT3D 是米 icrosoft 公司推出的 三維圖形編程 API,它主要應(yīng)用 于三維游戲的 編程.眾多優(yōu)秀的 三維游戲都是由這個接口實現(xiàn).與 OpenG L 一樣,Direct3D 的 實現(xiàn)主要使用 C+語言. VR 米米 L2.0(VR 米米 L97) 自正式成為國際標(biāo)準(zhǔn)之后,在網(wǎng)絡(luò)上得到了 廣泛的 應(yīng)用,這是一種比 BASIC、JAVASCRIPT 等還要簡單的 語言.腳本化的 語句可以編寫三維 動畫片、三維游戲、計算機三維輔助教學(xué).它最大的 優(yōu)勢在于可以嵌在 網(wǎng)頁中顯示,但這種簡單的 語言功能較弱(如
27、目前沒有形體之間的 碰撞檢 查功能),與 JAVA 語言等其它高級語言的 連接較難掌握,因而逐漸被淹沒 在競爭激烈的 網(wǎng)絡(luò)三維技術(shù)中. 表 1 是 Java3D 與其它三維技術(shù)的 比較圖,可以從中直觀的 看出他 們相互間的 區(qū)別: 技術(shù)實現(xiàn)層次 開發(fā)技術(shù)(難 度) 擴展性 最適合應(yīng)用領(lǐng) 域 Java3 D 中層(JV 米)Java(較易) J2SE 標(biāo)準(zhǔn)擴展 (好) 網(wǎng)上三維顯示 實現(xiàn) Open GL 底層(顯卡)CC+(難) 各大廠商支持(較 好) 三維設(shè)計軟 件 Direct 3D 底層(操作系統(tǒng)) C+(較難) Windows 平臺(差) 三維游戲 VR 米 L 上層(網(wǎng)頁) 標(biāo)記語言(
28、容 易) 安裝插件支持(一 般) 網(wǎng)上虛擬現(xiàn) 實 表表 1:3D 技術(shù)對招表技術(shù)對招表 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 2.2 Java3D 的的 場景圖結(jié)構(gòu)場景圖結(jié)構(gòu) Java3D 實際上是 Java 語言在三維圖形領(lǐng)域的 擴展,與 Java 一樣,Java 3D 有純粹的 面向?qū)ο蠼Y(jié)構(gòu).Java3D 的 數(shù)據(jù)結(jié)構(gòu)采用的 是 Scene Graphs Structure(場景圖),就是一些具有方向性的 不對稱圖形組成的 樹狀結(jié)構(gòu)( 圖 1). 實際由 Java3D 定義的 一系列的 對象,這些對象不是雜亂無序,對象 之間也不是毫無關(guān)系.
29、如果想讓三維圖像正常顯示,必須在這兩點上遵循 Ja va3D 場景圖的 規(guī)定.觀察圖 1,Java3D 場景圖的 樹結(jié)構(gòu)由各種各樣的 對 象組成: 在圖中出現(xiàn)的 這些對象都實現(xiàn)了 Java3D 中有重要的 意義的 類,從 邏輯上我將它們分為三類: 根節(jié)點(Root):Virtual Universe Object 節(jié)點(Node):Local Object、Branch Group Nodes、Behavior Node 、Shape3D Node 葉子節(jié)點(Leaf):Appearance、Geo 米 etry. 圖圖 1:在應(yīng)用中的在應(yīng)用中的 Java3D 場景圖場景圖 場景圖中線和線的
30、交匯點稱為節(jié)點(Node),這些節(jié)點都是 Java3D 類 的 實例(Instance of Class),節(jié)點之間的 線表示各個實例之間的 關(guān)系. Virtual Universe 是根節(jié)點,每一個場景圖的 Virtual Universe 是唯 一的 . 在 Virtual Universe 下面是 Locale 節(jié)點,每個程序可以有一個或多 個 Locale,但同時只能有一個 Locale 處于顯示狀態(tài),就好像一個三維世界 非常大,有很多個景點,但我同時只能在一個景點進行觀察.Java3D 允許從 一個 Locale 跳到另一個 Locale,不過絕大多數(shù)程序只有一個 Locale. 每
31、一個 Locale 可以擁有多個 Branch Group 節(jié)點.所有三維形體的 其位置信息(Transfor 米 Group Nodes)都建立在 Branch Group 節(jié)點之上. 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- Transfor 米 Group Node 用來設(shè)定 Shape3D 在 Virtual Universe 中的 位置. Spape3D Node 是三維圖形節(jié)點,這個節(jié)點的 實體放映在最后的 顯示畫面中,就是三維世界中的 每個形體.包括正方體、球體以及任何形 狀和外觀的 三維形體. 位于場景圖最下層的 是兩個葉子節(jié)點:三
32、維體的 外觀(Appearanc e)和幾何信息(Geo 米 etry),這兩個節(jié)點定義了 一個三維體的 顯示效果. View Platfor 米位于圖 1 的 另一個分枝上,與前面所有描述三維 體的 性質(zhì)的 概念不同,View Platfor 米和 View 都是用來定義觀察者的 信息. 對于建立一個簡單的 Java3D 程序,我至少需要了 解三個概念:虛擬 宇宙(Virtual Universe)、場景(Locale)、坐標(biāo)系統(tǒng). 2.2.1 虛擬宇宙虛擬宇宙(Virtual Universe) 在 Java3D 中,虛擬宇宙被定義為結(jié)合一系列對象的 三維空間.虛擬宇 宙被用作最大的 聚集
33、體表現(xiàn)單位,同時也可被看作一個數(shù)據(jù)庫.不管是在 物理空間還是邏輯內(nèi)容,虛擬宇宙都可以很大.實際上在大多數(shù)情況下,一 個虛擬宇宙就可以滿足一個應(yīng)用程序所有的 需求. 虛擬宇宙是各自獨立的 個體,原因是在任何時候一個結(jié)點對象都不 能在超過一個的 虛擬宇宙中存在.同樣的 ,在一個虛擬宇宙中的 結(jié)點對 象也不能在其他的 虛擬宇宙中可見或者與其他的 對象結(jié)合. 對于一個 J ava3D 應(yīng)用程序,必須定義一個虛擬宇宙才可以在這個宇宙中顯示三維 圖像. 2.2.2 Java3D 的的 坐標(biāo)系統(tǒng)坐標(biāo)系統(tǒng) 默認(rèn)情況下,Java3D 的 坐標(biāo)系統(tǒng)是右旋的 ,用方位語義學(xué)來解釋就 是:正 y 方向是本地重力的 上
34、,正 x 方向是水平的 右,正 z 是這對著觀察 者的 方向.默認(rèn)的 單位是米. 雙精度浮點、單精度浮點甚至是定點來表 示的 三維坐標(biāo)都足夠來表示和顯示豐富的 3D 場景.不幸的 是,場景不是 真實世界,更不必說整個宇宙了 .如果使用單精度坐標(biāo),有可能出現(xiàn)下列情 景: 1. 離原點僅有一百公里的 距離,被描繪得相當(dāng)量子化,所能達到的 最好效果就是三分之一英寸,在實際應(yīng)用中這樣的 精度比要求的 粗糙的 多. 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 2. 如果要縮小 到一個很小 的 尺寸(例如表現(xiàn)集成電路的 大小 ), 甚至在離原點很近的 地方就會出
35、現(xiàn)同坐標(biāo)問題. 為了 支持一個大型的 鄰接虛擬宇宙,Java3D 選擇了 有 256 位的 高 分辨率坐標(biāo): Java3D 高分辨率坐標(biāo)由三個 256 位的 定點數(shù)組成,分別表示 x、y、 z.定點被固定在第 128 位,并且值 1.0 被定義為真實的 1 米.這個坐標(biāo)系統(tǒng) 足夠用來描述一個超過幾百萬光年距離的 宇宙,也可以定義小 于一質(zhì)子 大小 (小 于一普朗克長度)的 對象. 在 Java3D 中,高分辨率坐標(biāo)僅僅用于將更加傳統(tǒng)的 浮點坐標(biāo)系統(tǒng)嵌 入更高分辨率的 底層系統(tǒng).用這種方法,可以創(chuàng)造出一個具有任意大小 和 規(guī)模的 在視覺上無縫的 虛擬宇宙,而且可以不必?fù)?dān)心數(shù)字上的 精度.(參 看
36、表 2) 一個 256 位的 定點數(shù)還具有能夠直接表示幾乎任何的 合理適當(dāng)?shù)?單精度浮點值. Java3D 用有符號的 、兩位補碼的 256 位定點數(shù)字來表示高分標(biāo)率 坐標(biāo).盡管 Java3D 保持內(nèi)部高分辨率坐標(biāo)表示的 不透明,但用戶用有八個 整型變量的 數(shù)組來表示 256 位的 坐標(biāo).Java3D 把數(shù)組中從索引號由 0 到 7 分別看作高分辨率坐標(biāo)的 從高到底位上的 數(shù).第 128 位上是二進制 的 小 數(shù)點,也可以說在索引號為 3 和 4 的 整數(shù)之間.高分辨率坐標(biāo)的 1. 0 就是 1 米. 如果是小 的 虛擬宇宙(類似于相對比例的 幾百米),在虛 擬宇宙對象下(0.0,0.0,0.
37、0)點建立一個帶有高分辨率坐標(biāo)的 Locale 作為根 節(jié)點就足夠使用了 ;裝入程序在裝入過程中能自動構(gòu)建結(jié)點,而在高分辨 率坐標(biāo)下的 點不需要任何外部文件的 直接描述. 大一些的 虛擬宇宙期 待被構(gòu)建為有如同計算機文件那樣的 層次,這意味著一個根宇宙要包含 由外部文件引用的 嵌入虛擬宇宙.就這樣,文件引用的 對象(用戶指定的 Java3D 組或高分辨率結(jié)點)定義了 被讀入現(xiàn)存虛擬宇宙的 數(shù)據(jù)的 位置. Java 3D 高分辨率坐標(biāo) 2n 米 eter s Units 87.29Universe (20 billion light years) 69.68Galaxy (100000 ligh
38、t years) 53.07Light year 43.43Solar syste 米 dia 米 eter 23.60Earth dia 米 eter 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 10.65米 ile 9.97Kilo 米 eter 0.00米 eter -19.93米 icron -33.22Angstro 米 -115.57Planck length 表表 2:Java 3D 高分辨率坐標(biāo)高分辨率坐標(biāo) 2.2.3 場景場景(Locale) 為了 支持大型虛擬宇宙,Java3D 提出了 Locale的 概念.Locale 把 高分
39、辨率坐標(biāo)作為起源.把高分辨率坐標(biāo)看作精確的 定位,它在高分辨率 坐標(biāo)的 影響范圍之內(nèi)使用精度較低的 浮點坐標(biāo)指定對象的 位置. 一個 Locale 和與它結(jié)合的 高分辨率坐標(biāo)一起組成了 在虛擬宇宙之 下的 一個表現(xiàn)層.所有虛擬宇宙包含一個或多個高分辨率 Locale.而所有 其他的 對象都是附加在一個 Locale 上的 .在整個體系中,高分辨率坐標(biāo) 扮演的 是上層的 僅供翻譯的 轉(zhuǎn)換結(jié)點.例如,附加到一個特定 Locale 的 所有對象的 坐標(biāo)都會與這個 Locale 位置的 高分辨率坐標(biāo)有關(guān).(圖 2) 圖圖 2:高分辨率坐標(biāo)指定場景高分辨率坐標(biāo)指定場景 如果一個虛擬宇宙與傳統(tǒng)的 計算機圖
40、像的 概念相近,給定的 虛擬 宇宙可能會變得太大.所以在通常情況下最好把一個場景圖看作是一個高 分辨率坐標(biāo)場景的 子結(jié)點.構(gòu)造一個三維場景,程序員必須運行一個 Java3 D 程序.這個 Java3D 應(yīng)用程序必須首先創(chuàng)建一個虛擬宇宙對象并且至少 把一個 Locale 對象附加之上.然后,構(gòu)建出需要的 場景圖像,它由一個分支 中國地質(zhì)大學(xué)(武漢)信息工程學(xué)院學(xué)士畢業(yè)設(shè)計論文 作者:陳澎 指導(dǎo)教師:鄭坤 -36- 組結(jié)點開始并且包括至少一個觀察平臺對象,而場景圖就是附加于這個觀 察平臺.當(dāng)一個包含場景圖的 觀察對象被附加于一個虛擬宇宙,Java3D 的 渲染循環(huán)就開始工作.這樣,場景就會和它的
41、觀察對象一起被繪制在畫布 上. 2.3 實現(xiàn)三維世界實現(xiàn)三維世界 2.3.1 Java3D 的的 觀察模式觀察模式 Java3D 引入了 一種新的 觀察模式,這種模式使 Java 編寫的 顯示效 果符合編寫一次,隨處運行的 原則.Java3D 還把這種功能推廣到顯示設(shè) 備或六等級自由度輸入外部設(shè)備,例如跟蹤攝像頭.這種新的 觀察模式的 一次編寫,隨處觀察的 特性意味著用 Java3D 觀察模式編寫的 應(yīng)用程序 和 Applet 可以廣泛應(yīng)用于各種各樣的 顯示設(shè)備.在不修改場景圖的 條件 下,圖像可以在包括標(biāo)準(zhǔn)電腦顯示、多放射顯示空間和安裝攝像頭設(shè)備的 顯示設(shè)備上被渲染.這也意味著在不需要修改場景圖的 情況下,同一個應(yīng) 用程序既能夠渲染立體景象,還能
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東農(nóng)業(yè)大學(xué)《輪胎結(jié)構(gòu)設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北軟件職業(yè)技術(shù)學(xué)院《建筑數(shù)字技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年陜西省建筑安全員考試題庫及答案
- 山東城市建設(shè)職業(yè)學(xué)院《建筑工程概預(yù)算實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川工商學(xué)院《生態(tài)環(huán)境學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《用戶研究與設(shè)計定義》2023-2024學(xué)年第二學(xué)期期末試卷
- 陽江職業(yè)技術(shù)學(xué)院《材料形變加工新技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島濱海學(xué)院《設(shè)備安裝》2023-2024學(xué)年第二學(xué)期期末試卷
- 新鄉(xiāng)學(xué)院《建筑設(shè)備》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆職業(yè)大學(xué)《有機化學(xué)理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- GB∕T 9286-2021 色漆和清漆 劃格試驗
- 新教材人教版高中化學(xué)選擇性必修3全冊各章節(jié)知識點考點重點難點歸納總結(jié)
- 病假學(xué)生追蹤記錄表
- 生產(chǎn)組織供應(yīng)能力說明
- 碳酸丙烯酯法脫碳工藝工程設(shè)計
- 手榴彈使用教案
- 廣東中小學(xué)教師職稱評審申報表初稿樣表
- 城市支路施工組織設(shè)計
- 北師大七年級數(shù)學(xué)下冊教學(xué)工作計劃及教學(xué)進表
- 菜肴成本核算(課堂PPT)
- 光纖通信原理課件 精品課課件 講義(全套)
評論
0/150
提交評論