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

          Java3D 入門筆記 (1)

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

          一種常用的定義圖的數(shù)據(jù)結(jié)構(gòu)由結(jié)點(node)和弧(arc)組成。結(jié)點都是Java 3D類的實例,而弧則代表了實例間兩種不同的關系。
          最常見的關系是父子(parent-child)關系。一個組結(jié)點(group node)可以包含任意多的子結(jié)點,但只能有一個父結(jié)點。
          另一種關系是引用(reference),引用通過一個場景圖的結(jié)點關聯(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相關聯(lián)
           4. 構(gòu)造視圖分支(view branch graph):分別創(chuàng)建一個View ViewPlatform PhysicalBody PhysicalEnvironment對象,將后面三個及Canvas3D與View對象關聯(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) [未登錄]  回復  更多評論   

          2007-11-06 09:15 by diego
          不錯,學習下

          5D壁紙 國內(nèi)最好的壁紙論壇 http://5d6p.5d6d.com
          主站蜘蛛池模板: 成都市| 唐海县| 大余县| 邹平县| 西青区| 睢宁县| 莆田市| 周宁县| 苏州市| 唐山市| 宜黄县| 灵宝市| 丰城市| 扬中市| 白山市| 沭阳县| 天峻县| 永福县| 来安县| 临泽县| 荥经县| 东光县| 龙里县| 铜山县| 偃师市| 资中县| 塔城市| 娄烦县| 泰来县| 西林县| 兰州市| 株洲市| 永修县| 调兵山市| 南京市| 肥东县| 大冶市| 漯河市| 辽阳县| 新巴尔虎左旗| 元阳县|