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

          Java3D 入門筆記 (1)

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

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

          這就是一個簡單的場景圖的結構,其中包括VisualUniverse  Locale  GroupNode  Leaf 等元素 

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

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

          評論

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

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

          5D壁紙 國內最好的壁紙論壇 http://5d6p.5d6d.com
          主站蜘蛛池模板: 赣榆县| 枣庄市| 清水县| 双鸭山市| 阿尔山市| 富平县| 错那县| 罗平县| 石泉县| 阳原县| 辉南县| 石景山区| 永寿县| 呼图壁县| 容城县| 芒康县| 崇阳县| 云安县| 绥芬河市| 临邑县| 兴仁县| 长泰县| 缙云县| 土默特左旗| 开江县| 景德镇市| 松江区| 维西| 临泉县| 双峰县| 湛江市| 武山县| 蚌埠市| 东明县| 宜阳县| 桂平市| 河池市| 梅州市| 德化县| 垣曲县| 临漳县|