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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于java3d的網(wǎng)絡(luò)三維技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-01-07 16:27 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 動(dòng)態(tài)的 3D 圖像。 Shout Interactive and Blaxxun 為用戶擴(kuò)充自己的 3D圖形功能預(yù)留了極大的空間。兩個(gè)公司并沒(méi)有拋棄 VRML,Shout Interactive 公司可以接受 VRML文件,并把它變成自己的文件格式,Blaxxun 公司的軟件可以直接運(yùn)行 VRML。當(dāng)然, Shout3D 的小巧靈活并不是沒(méi)有代價(jià)的:它簡(jiǎn)化了 VRML 的功能, VRML 的一些功能不能用小小 50K 的 Java 來(lái)實(shí)現(xiàn)??梢哉f(shuō)這兩個(gè)公司最先在它們的產(chǎn)品中實(shí)現(xiàn)了核心的 X3D 技術(shù)。 使用這種 無(wú)插件技術(shù) ( plugin)的 Shout 公司為 Macy39。s and Excite web portal 網(wǎng)站制作了栩栩如生如生的 3D 虛擬時(shí)裝模特展示,觀看者用菜單可以選擇:展示的服裝,模特的膚色,發(fā)型,步型,甚至于燈光都可畢業(yè)設(shè)計(jì)論文 以用菜單即刻更換。觀看者可以用鼠標(biāo)變換視角,遠(yuǎn)近,從各個(gè)角度觀看動(dòng)態(tài)展示。而所有的展示文件只有 1M2M,不需下載插件。圖像的質(zhì)量較好,人物動(dòng)畫的動(dòng)作流暢自然。 第二章 Java3D 技術(shù)的簡(jiǎn)介 Java3D 用其自己定義的場(chǎng)景圖和觀察模式等技術(shù)構(gòu)造了 3D 的上層結(jié)構(gòu) ,實(shí)現(xiàn)了在 Java 平臺(tái)使用三維技術(shù)。 本章將介紹 Java3D 特有的兩個(gè)重要概念:場(chǎng)景圖( Scene Graph)、觀察模式( View Model)。在接口使用上的介紹分為兩部分:說(shuō)明如何使用 Java3D 接口;說(shuō)明如何將 Java3D 技術(shù)與 Java 原有的 Web 技術(shù)( JSP、 Serverlet)相結(jié)合,在網(wǎng)頁(yè)上實(shí)現(xiàn)三維顯示。 167。 Java3D 概述 Java3D 簡(jiǎn)介 Java3D API 是 Sun 定義的用于實(shí)現(xiàn) 3D 顯示的接口。 3D 技術(shù)是底層的顯示技術(shù), Java3D 提供了基于 Java 的上層接口。 Java3D 把 OpenGL 和DirectX 這些底層技術(shù)包裝在 Java 接口中。這種全新的設(shè)計(jì)使 3D 技術(shù)變得不再繁瑣并且可以加入到 J2SE、 J2EE 的整套架構(gòu),這些特性保證了 Java3D 技術(shù)強(qiáng)大的擴(kuò)展性 。 JAVA3D 建立在 JAVA2( )基礎(chǔ)之上, JAVA 語(yǔ)言的簡(jiǎn)單性使 JAVA3D 的推廣有了可能。它實(shí)現(xiàn)了以下三維顯示能夠用到的功能: 1. 生成簡(jiǎn)單或復(fù)雜的形體(也可以調(diào)用現(xiàn)有的三維形體) 2. 使形體具有顏色、透明效果、貼圖 3. 在三維環(huán)境中生成燈光、移動(dòng)燈光 4. 具有行為的處理判斷能力(鍵盤、鼠標(biāo)、 定時(shí)等) 5. 生成霧、背景、聲音 6. 使形體變形、移動(dòng)、生成三維動(dòng)畫 7. 編寫非常復(fù)雜的應(yīng)用程序,用于各種領(lǐng)域如 VR(虛擬現(xiàn)實(shí)) Java3D 與其他三維技術(shù)的比較 JAVA3D 可應(yīng)用在三維動(dòng)畫、三維游戲、機(jī)械 CAD 等多個(gè)領(lǐng)域。但作為三維顯示實(shí)現(xiàn)技術(shù),它并不是唯一選擇而且是一個(gè)新面孔。在 Java3D 之前已經(jīng)存在很多三維技術(shù),這些三維技術(shù)在實(shí)現(xiàn)的技術(shù)、使用的語(yǔ)言畢業(yè)設(shè)計(jì)論文 以及適用的情況上各有不同,我主要介紹與 Java3D 又密切關(guān)系的三種技術(shù): OpenGL、 DIRECT3D、 VRML OpenGL OpenGL 是 業(yè)界最為流行也是支持最廣泛的一個(gè)底層 3D 技術(shù),幾乎所有的顯卡廠商都在底層實(shí)現(xiàn)了對(duì) OpenGL 的支持和優(yōu)化。 OpenGL 同時(shí)也定義了一系列接口用于編程實(shí)現(xiàn)三維應(yīng)用程序,但是這些接口使用 C( C++)語(yǔ)言實(shí)現(xiàn)并且很復(fù)雜。掌握針對(duì) OpenGL 的編程技術(shù)需要花費(fèi)大量時(shí)間精力。 DIRECT3D DIRECT3D 是 Microsoft 公司推出的三維圖形編程 API,它主要應(yīng)用于三維游戲的編程。眾多優(yōu)秀的三維游戲都是由這個(gè)接口實(shí)現(xiàn)。與 OpenGL 一樣, Direct3D 的實(shí)現(xiàn)主要使用 C++語(yǔ)言 。 (VRML97) 自 1997年 12 月正式成為國(guó)際標(biāo)準(zhǔn)之后,在網(wǎng)絡(luò)上得到了廣泛的應(yīng)用,這是一種比 BASIC、 JAVASCRIPT 等還要簡(jiǎn)單的語(yǔ)言。腳本化的語(yǔ)句可以編寫三維動(dòng)畫片、三維游戲、計(jì)算機(jī)三維輔助教學(xué)。它最大的優(yōu)勢(shì)在于可以嵌在網(wǎng)頁(yè)中顯示,但這種簡(jiǎn)單的語(yǔ)言功能較弱(如目前沒(méi)有形體之間的碰撞檢查功能),與 JAVA 語(yǔ)言等其它高級(jí)語(yǔ)言的連接較難掌握,因而逐漸被淹沒(méi)在競(jìng)爭(zhēng)激烈的網(wǎng)絡(luò)三維技術(shù)中。 表 1 是 Java3D 與其它三維技術(shù)的比較圖,可以從中直觀的看出他們相互間的區(qū)別: 技術(shù) 實(shí)現(xiàn)層次 開(kāi)發(fā)技術(shù)(難 度) 擴(kuò)展性 最適合應(yīng) 用領(lǐng)域 Java3D 中層( JVM) Java(較易) J2SE 標(biāo)準(zhǔn)擴(kuò)展(好) 網(wǎng)上三維顯示實(shí)現(xiàn) … OpenGL 底層(顯卡) C\C++(難) 各大廠商支持(較好) 三維設(shè)計(jì)軟件 … Direct3D 底層(操作系統(tǒng)) C++(較難) Windows 平臺(tái)(差) 三維游戲 … VRML 上層(網(wǎng)頁(yè)) 標(biāo)記語(yǔ)言(容易) 安裝插件支持(一般) 網(wǎng)上虛擬現(xiàn)實(shí) … 表 1: 3D 技術(shù)對(duì)招表 畢業(yè)設(shè)計(jì)論文 167。 Java3D 的場(chǎng)景圖結(jié)構(gòu) Java3D 實(shí)際上是 Java 語(yǔ)言在三維圖形領(lǐng)域的擴(kuò)展,與 Java 一樣, Java3D 有純粹的 面向?qū)ο蠼Y(jié)構(gòu)。 Java3D 的數(shù)據(jù)結(jié)構(gòu)采用的是 Scene Graphs Structure(場(chǎng)景圖),就是一些具有方向性的不對(duì)稱圖形組成的樹狀結(jié)構(gòu)(圖 1)。 實(shí)際由 Java3D 定義的一系列的對(duì)象,這些對(duì)象不是雜亂無(wú)序,對(duì)象之間也不是毫無(wú)關(guān)系。如果想讓三維圖像正常顯示,必須在這兩點(diǎn)上遵循Java3D 場(chǎng)景圖的規(guī)定。觀察圖 1, Java3D 場(chǎng)景圖的樹結(jié)構(gòu)由各種各樣的對(duì)象組成: 在圖中出現(xiàn)的這些對(duì)象都實(shí)現(xiàn)了 Java3D 中有重要的意義的類,從邏輯上我將它們分為三類: ? 根節(jié)點(diǎn)( Root): Virtual Universe Object ? 節(jié)點(diǎn)( Node): Local Object、 Branch Group Nodes、 Behavior Node、 Shape3D Node… ? 葉子節(jié)點(diǎn)( Leaf): Appearance、 Geometry.. 圖 1:在應(yīng)用中的 Java3D 場(chǎng)景圖 場(chǎng)景圖中線和線的交匯點(diǎn)稱為節(jié)點(diǎn)( Node),這 些節(jié)點(diǎn)都是 Java3D類的實(shí)例( Instance of Class),節(jié)點(diǎn)之間的線表示各個(gè)實(shí)例之間的關(guān)系。 ? Virtual Universe 是根節(jié)點(diǎn),每一個(gè)場(chǎng)景圖的 Virtual Universe 是唯一的。 ? 在 Virtual Universe 下面是 Locale 節(jié)點(diǎn),每個(gè)程序可以有一個(gè)或多個(gè) Locale,但同時(shí)只能有一個(gè) Locale 處于顯示狀態(tài),就 好像 一個(gè)三維世界非常大,有很多個(gè)景點(diǎn),但我同時(shí)只能在一個(gè)景點(diǎn)進(jìn)行觀察。 Java3D 允許從一個(gè) Locale 跳到另一個(gè) Locale,不過(guò)絕大多數(shù)程序只有一個(gè) Locale。 畢業(yè)設(shè)計(jì)論文 ? 每一個(gè) Locale 可以擁有多個(gè) Branch Group 節(jié)點(diǎn)。所有三維形體的其位置信息( Transform Group Nodes)都建立在 Branch Group 節(jié)點(diǎn)之上。 ? Transform Group Node 用來(lái)設(shè)定 Shape3D 在 Virtual Universe 中的位置。 ? Spape3D Node 是三維圖形節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)的實(shí)體放映在最后的顯示畫面中,就是三維世界中的每個(gè)形體。包括正方體、球體以及任何形狀和外觀的三維形體。 ? 位于場(chǎng)景圖最下層的是兩個(gè)葉子節(jié)點(diǎn):三維體的外觀( Appearance)和幾何信息( Geometry),這兩個(gè)節(jié)點(diǎn)定義了一個(gè)三維體的顯示效果。 ? View Platform 位于圖 1 的另一個(gè)分枝上,與前面所有描述三維體的性質(zhì)的概念不同, View Platform 和 View 都是用來(lái)定義觀察者的信息。 對(duì)于建立一個(gè)簡(jiǎn)單的 Java3D 程序,我至少需要了解三個(gè)概念:虛擬宇宙( Virtual Universe)、場(chǎng)景( Locale)、坐標(biāo)系統(tǒng)。 虛擬宇宙( Virtual Universe) 在 Java3D 中,虛擬宇宙被定義為結(jié)合一系列對(duì)象的三維空間。虛擬宇宙被用作最大 的聚集體表現(xiàn)單位,同時(shí)也可被看作一個(gè)數(shù)據(jù)庫(kù)。不管是在物理空間還是邏輯內(nèi)容,虛擬宇宙都可以很大。實(shí)際上在大多數(shù)情況下,一個(gè)虛擬宇宙就可以滿足一個(gè)應(yīng)用程序所有的需求。 虛擬宇宙是各自獨(dú)立的個(gè)體,原因是在任何時(shí)候一個(gè)結(jié)點(diǎn)對(duì)象都不能在超過(guò)一個(gè)的虛擬宇宙中存在。同樣的,在一個(gè)虛擬宇宙中的結(jié)點(diǎn)對(duì)象也不能在其他的虛擬宇宙中可見(jiàn)或者與其他的對(duì)象結(jié)合。 對(duì)于一個(gè) Java3D應(yīng)用程序,必須定義一個(gè)虛擬宇宙才可以在這個(gè) 宇宙 中顯示三維圖像。 Java3D 的坐標(biāo)系統(tǒng) 默認(rèn)情況下, Java3D 的坐標(biāo)系統(tǒng)是右旋的,用 方位語(yǔ)義學(xué)來(lái)解釋就是:正 y 方向是本地重力的上,正 x 方向是水平的右,正 z 是這對(duì)著觀察者的方向。默認(rèn)的單位是米。 雙精度浮點(diǎn)、單精度浮點(diǎn)甚至是定點(diǎn)來(lái)表示的三維坐標(biāo)都足夠來(lái)表示和顯示豐富的 3D 場(chǎng)景。不幸的是,場(chǎng)景不是真實(shí)世界,更不必說(shuō)整個(gè)宇宙了。如果使用單精度坐標(biāo),有可能出現(xiàn)下列情景: 畢業(yè)設(shè)計(jì)論文 1. 離原點(diǎn)僅有一百公里的距離,被描繪得相當(dāng)量子化,所能達(dá)到的最好效果就是三分之一英寸,在實(shí)際應(yīng)用中這樣的精度比要求的粗糙的多。 2. 如果要縮小到一個(gè)很小的尺寸(例如表現(xiàn)集成電路的大?。?,甚至在離原點(diǎn)很近的地方就會(huì)出現(xiàn)同坐標(biāo)問(wèn)題。 為 了支持一個(gè)大型的鄰接虛擬宇宙, Java3D 選擇了有 256 位的高分辨率坐標(biāo): Java3D 高分辨率坐標(biāo)由三個(gè) 256 位的定點(diǎn)數(shù)組成,分別表示 x、 y、 z。定點(diǎn)被固定在第 128 位,并且值 被定義為真實(shí)的 1 米。這個(gè)坐標(biāo)系統(tǒng)足夠用來(lái)描述一個(gè)超過(guò)幾百萬(wàn)光年距離的宇宙,也可以定義小于一質(zhì)子大小(小于一普朗克長(zhǎng)度)的對(duì)象。 在 Java3D 中,高分辨率坐標(biāo)僅僅用于將更加傳統(tǒng)的浮點(diǎn)坐標(biāo)系統(tǒng)嵌入更高分辨率的底層系統(tǒng)。用這種方法,可以創(chuàng)造出一個(gè)具有任意大小和規(guī)模的在視覺(jué)上無(wú)縫的虛擬宇宙,而且可以不必?fù)?dān)心數(shù)字上的精度。(參看表 2) 一個(gè) 256 位的定點(diǎn)數(shù)還具有能夠直接表示幾乎任何的合理適當(dāng)?shù)膯尉雀↑c(diǎn)值。 Java3D 用有符號(hào)的、兩位補(bǔ)碼的 256 位定點(diǎn)數(shù)字來(lái)表示高分標(biāo)率坐標(biāo)。盡管 Java3D 保持內(nèi)部高分辨率坐標(biāo)表示的不透明,但用戶用有八個(gè)整型變量的數(shù)組來(lái)表示 256 位的坐標(biāo)。 Java3D 把數(shù)組中從索引號(hào)由 0 到 7分別看作高分辨率坐標(biāo)的從高到底位上的數(shù)。第 128 位上是二進(jìn)制的小數(shù)點(diǎn),也可以說(shuō)在索引號(hào)為 3 和 4 的整數(shù)之間。高分辨率坐標(biāo)的 就是 1米。 如果是 小 的虛擬宇宙(類似于相對(duì)比例的幾百米),在虛擬宇宙對(duì)象下( ,)點(diǎn)建立一個(gè)帶有高分辨率坐標(biāo)的 Locale 作為根節(jié)點(diǎn)就足夠使用了;裝入程序在裝入過(guò)程中能自動(dòng)構(gòu)建結(jié)點(diǎn),而在高分辨率坐標(biāo)下的點(diǎn)不需要任何外部文件的直接描述。 大一些的虛擬宇宙期待被構(gòu)建為有如同計(jì)算機(jī)文件那樣的層次,這意味著一個(gè)根宇宙要包含由外部文件引用的嵌入虛擬宇宙。就這樣,文件引用的對(duì)象(用戶指定的 Java3D組或高分辨率結(jié)點(diǎn))定義了被讀入現(xiàn)存虛擬宇宙的數(shù)據(jù)的位置。 Java 3D 高分辨率坐標(biāo) 2n Meters Units Universe (20 billion light years) Galaxy (100000 light years) 畢業(yè)設(shè)計(jì)論文 Light year Solar system diameter Earth diameter Mile Kilometer Meter 3 Micron 2 Angstrom 115.57 Planck length 表 2: Java 3D 高分辨率坐標(biāo) 場(chǎng)景( Locale) 為了支持大型虛擬宇宙, Java3D 提出了 Locale的概念。 Locale 把高分辨率坐標(biāo)作為起源。把高分辨率坐標(biāo)看作精確的定位,它在高分辨率坐標(biāo)的影響范圍之內(nèi)使用精度較低的浮點(diǎn)坐標(biāo)指定對(duì)象的位置。 一個(gè) Locale 和與它結(jié)合的高分辨率坐標(biāo)一起組成了在虛擬宇宙之下的一個(gè)表現(xiàn)層。所有虛擬宇宙包含一個(gè)或多個(gè)高分辨率 Locale。而所有其他的對(duì)象都是附加在一個(gè) Locale 上的。在整個(gè)體系中,高分辨率坐標(biāo)扮演的是上層的僅供翻譯的轉(zhuǎn)換結(jié)點(diǎn)。例如,附加到一個(gè)特定 Locale 的所有對(duì)象的坐標(biāo)都會(huì)與這個(gè) Locale 位置的高分辨率坐標(biāo)有關(guān)。(圖 2) 畢業(yè)設(shè)計(jì)論文 圖 2:高分辨率坐標(biāo)指定場(chǎng)景 如果一個(gè)虛擬宇宙與傳統(tǒng)的計(jì)算機(jī)圖像的概念相近,給定的虛擬宇宙可能會(huì)變得太大。所以在通常情況下最好把一個(gè)場(chǎng)景圖看作是一個(gè)高分辨率坐標(biāo)場(chǎng)景的子結(jié)點(diǎn)。構(gòu)造一個(gè)三維場(chǎng)景,程序員必須運(yùn)行一個(gè) Java3D程序。這個(gè) Java3D 應(yīng)用程序必須首先創(chuàng)建一個(gè)虛擬宇宙對(duì)象并且至少把一個(gè) Locale 對(duì)象附 加之上。然后,構(gòu)建出需要的場(chǎng)景圖像,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1