posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Java3D 入門筆記 (1)

          Posted on 2007-11-05 21:43 ZelluX 閱讀(2420) 評論(1)  編輯  收藏 所屬分類: OOP
          要做個和Java3D有關(guān)的項目,需要稍微了解下相關(guān)的知識。
          看的資料是The Java3d Tutorial,版本有點早,湊合著看了。 
              
          Java 3D 的虛擬環(huán)境是從場景圖(scene graph)中建立的,場景圖聚合(assemble)了各種定義幾何、聲音、光、位置、方位等元素的類。 

          一種常用的定義圖的數(shù)據(jù)結(jié)構(gòu)由結(jié)點(node)和弧(arc)組成。結(jié)點都是Java 3D類的實例,而弧則代表了實例間兩種不同的關(guān)系。
          最常見的關(guān)系是父子(parent-child)關(guān)系。一個組結(jié)點(group node)可以包含任意多的子結(jié)點,但只能有一個父結(jié)點。
          另一種關(guān)系是引用(reference),引用通過一個場景圖的結(jié)點關(guān)聯(lián)了一個NodeComponent類,NodeComponent類定義了各種視圖對象的幾何和外觀屬性。
          這種結(jié)構(gòu)可以用樹來描述,從根結(jié)點到任一葉子結(jié)點的路成為場景圖路徑(scene graph path). 每條路徑都完整地描述了它的葉子結(jié)點的狀態(tài)。 
           

          這就是一個簡單的場景圖的結(jié)構(gòu),其中包括VisualUniverse  Locale  GroupNode  Leaf 等元素 

          每個場景圖都有單一的VirtualUniverse,后者包含一串Locale對象。一個程序可以包含多個VirtualUniverse對象,但是沒有一種簡單的方法實現(xiàn)它們相互之間的通信。 
           
          寫Java3D程序的通常步驟:
           1. 創(chuàng)建一個Canvas3D對象
           2. 創(chuàng)建一個VirtualUniverse對象
           3. 創(chuàng)建一個Locale對象,將其與VirtualUniverse相關(guān)聯(lián)
           4. 構(gòu)造視圖分支(view branch graph):分別創(chuàng)建一個View ViewPlatform PhysicalBody PhysicalEnvironment對象,將后面三個及Canvas3D與View對象關(guān)聯(lián)
           5. 構(gòu)造內(nèi)容分支(content branch graph)
           6. 編譯(compile)各個分支
           7. 將子圖(subgraph)插入Locale中 
           
          使用SimpleUniverse可以簡化這些步驟 
           

          虛線框起來的部分就是SimpleUniverse中提供的內(nèi)容 
           
          通過它可以將步驟簡化為
           1. 創(chuàng)建一個Canvas3D對象
           2. 創(chuàng)建一個引用了之前的Canvas3D對象的SimpleUniverse類,并定制該類
           3. 構(gòu)造一個內(nèi)容分支,編譯后插入SimpleUniverse的Locale
           
          什么是編譯(compile):通過編譯BranchGroup,可以將它及其祖先轉(zhuǎn)換為一種更高效的實現(xiàn)方式。建議在最后一步中做編譯。

          評論

          # re: Java3D 入門筆記 (1) [未登錄]  回復(fù)  更多評論   

          2007-11-06 09:15 by diego
          不錯,學(xué)習(xí)下

          5D壁紙 國內(nèi)最好的壁紙論壇 http://5d6p.5d6d.com
          主站蜘蛛池模板: 井陉县| 仲巴县| 时尚| 邵阳县| 苍山县| 兖州市| 新绛县| 开阳县| 积石山| 阿拉善盟| 彰化市| 阜平县| 栖霞市| 淮滨县| 西充县| 乌鲁木齐县| 海丰县| 青岛市| 临沂市| 辽宁省| 铁岭市| 松桃| 麻江县| 灵川县| 陈巴尔虎旗| 清新县| 阿拉善左旗| 行唐县| 新宁县| 达拉特旗| 灵石县| 扶沟县| 龙胜| 泰宁县| 资兴市| 五家渠市| 赣州市| 麻城市| 荣昌县| 聂拉木县| 察哈|