<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 303  文章 - 883  trackbacks - 0
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    歡迎光臨! 
    閑聊 QQ:1074961813

    隨筆分類(357)

    我管理的群

    公共blog

    • n維空間
    • Email : java3d@126.com 群 : 12999758

    參與管理的論壇

    好友的blog

    我的其他blog

    朋友的網站

    搜索

    •  

    最新評論

    類型:整理?|?來自:86VR?|?作者:雷朝銓,吳偉斌?|?時間:2005-3-31?|? 點擊: 814

    摘要:  借助EAI 和Script 節點將Java 和VRML 相結合,構建了一個三維交互式的虛擬場景,該場景克服了VRML 在交互方面的不足,實現了用戶與虛擬場景之間以及用戶與用戶之間的交互和共享的功能,并在此基礎上,構建了一個用于計算機圖形學教學的虛擬場景框架,為VRML 在遠程教育方面的普及和應用做了有益的探索.

    關鍵詞: VRML ;Java ; EAI ; 交互式;虛擬場景

      虛擬現實技術是當前國際上的一個研究熱點,是一種逼真的通過各種傳感設備模擬人在自然環境中的視、聽、動作等行為的人機界面技術,實現操作者和環境直接進行自然交互. 該技術已經廣泛地應用于軍事、航空航天、醫學、建筑設計、機械、地理、化學等眾多的領域.


      虛擬現實建模語言(Virtual Reality Modeling Language , 縮寫為VRML) 是一個開放的、可擴充的三維場景描述語言,它描述了如何在World Wide Web 上創建和瀏覽三維虛擬場景. VRML 的構思始于1994 年春瑞士日內瓦的萬維網(WWW) 的第一屆國際會議上. 1994 年10 月在芝加哥召開的第二次萬維網會議上公布了VRML1. 0 的規范草案,其主要的功能是生成靜態的3D 場景,以及與HTML 鏈接的一些功能和措施. 1998 年1 月VRML 被ISO 正式批準為國際標準( ISO/ IEC/ 4772 -1 :1997 , 通常被稱為VRML1997 , 也被稱為VRML2. 0) . VRML2. 0 版將VRML 的靜態世界改變為動態世界,并強化了互動功能,此外還增加了動畫、傳感器、事件、行為和腳本等功能. VRML 提供了54 個功能強大的節點用于描述三維場景中的對象,能夠利用層次性文件關系創建任意大的動態境界[ 1 ]. 目前,國內在虛擬現實技術的應用方面除了個別領域外,基本上還處于探索研究階段,主要是應用VRML 的三維建模功能創建一個用戶可以瀏覽的靜態三維場景,而在創建動態場景和多用戶場景方面的研究相對較少. 本文旨在討論使用VRML 與J ava 創建多用戶交互式場景的結合方法,并給出了系統框架和實現方法.

    1  VRML 與J ava 相結合

      VRML 本身并不具備與外部交互的能力,也不能完成普通程序設計中的轉折、分支、循環等基本特征,它必須和其他語言相結合才能構造出具備交互能力的三維場景. 為了在虛擬場景中增加和刪除對象,或者定義動畫和對象的行為功能,一種方法是通過擴展Script 節點,利用J avaScript 和J ava 編程提高VRML 的應用擴展能力[ 2 ] ;另一種方法是使用EA I. Script 節點本身沒有任何動作,其動作是由J ava 腳本來實現的. 然而,應用Script 節點只能按照預定的規則改變場景, 無法滿足復雜的交互操作. 此時, 這里采用EA I(External Authoring Interface : 外部程序接口) 實現外部應用程序與VRML 場景的實時交互. EA I 是Silicon Graphics 公司的Chris Marrin 1997 年1 月提出的一種應用程序接口,是基于VRML 和J ava 小應用(J ava Applet) 之間事件傳遞而提出的規約,實現J ava Applet 與VRML 虛擬場景之間的相互通信. EA I 方法依賴于一個與VRML 瀏覽器相聯系的Java 包的支持. 該J ava 包由vrml. external. 3 、vrml. external. field. 3 、vrml. external. node. 3 以及vrml. external. exception. 3 四個部分組成開發者使用該接口創建的小應用程序可以動態地創建、修改和刪除VRML 場景中的節點[ 3 ]. EA I 允許用以下四種方式訪問VRML 場景: (1) 訪問BSI(Browser Script Interface : 瀏覽器腳本接口) 接口函數; (2) 發送一個事件給VRML 場景中節點的事件入口(event In) ; (3) 讀取從VRML 場景中節點的事件出口(eventOut) 發出的最新值; (4) 當事件從節點的事件出口(eventOut) 發出時,獲得一個通知,激活callback 方法.

      VRML 場景中任何使用DEF 定義的節點都可以被J ava Applet 程序所訪問,獲得一個節點的句柄后,該節點的event In 和eventOut 就能被引用. Java Applet 可以監視VRML 場景中節點的改變并能夠在節點間傳遞事件來直接改變節點的屬性. 簡單的說,一方面EA I 能把VRML模型的變化傳遞給J ava Applet , 另一方面Java Applet 可以通過EA I 給VRML 傳送各種各樣的事件和信息,控制和改變虛擬場景.

      就功能而言,使用Script 節點和使用EA I 實現對VRML 場景的控制并沒有什么不同. 一般來說對于單一的VRML 事件實現交互及運算功能可選擇內部的Script , 若需集成多種媒體,并進行復雜網絡控制,則使用EA I 更適宜.

    2  交互式虛擬場景的實現

    2. 1  系統框架

      一個基于VRML 和J ava 相結合的多用戶交互的虛擬場景的框架見圖1.
      圖1  具有多用戶交互、共享功能的虛擬場景框架

      圖1 場景基于客戶機/ 服務器模式. 服務器端包含HTTP 服務器、場景服務器和數據庫服務器. HTTP 服務器負責HTML 文件、VRML 文件Java 文件以及其他相關資源(如聲音、圖片、影像等) 的存儲與傳輸;場景服務器負責用戶的登記和管理,響應用戶的請求,將每一個在線用戶的請求、控制信息加以合成,再以廣播的方式傳送給所有用戶. 數據庫存儲所有變動對象的當前信息,如當一個新用戶登陸以后,他的化身信息將寫入該數據庫,并通過數據庫讀取其它對象的信息,通過EA I 將這些信息在客戶端的虛擬世界中表現出來.

    2. 2  場景交互性的實現

      虛擬場景的交互性體現在兩個方面:一是用戶與虛擬場景內的虛擬對象的交互,用戶可以改變場景中虛擬對象的狀態、位置,甚至可以對對象進行添加和刪除操作;二是與其他用戶之間的交互,用戶可以控制替身的行為(如走、跑、轉身、舉手等) 和表情,可以看到其他用戶替身狀態的變化,可以與其他用戶相互交換意見,開展討論、演示,從事虛擬試驗,合作開發等. 用戶與虛擬場景的交互是通過在Java Applet 中使用EA I 來實現的,其處理流程如下:

    (1)Java 通過與VRML 進行相互通信,可以獲取虛擬空間的數據信息,如替身的狀態和動作,實體的狀態等,形成一個通信數據包;
    (2) 各個節點通過TCP/ IP 協議下的Java Socket 機制進行相互連接,將該通信數據包通過網絡實時傳輸給各個節點;
    (3) 當某個節點接受到相應的數據包后,Java 可以對VRML 空間進行動態控制,改變3D替身的位置和方向以及實體的狀態,保持用戶間信息的一致和事件的同步.下面是控制物體平移的部分關鍵Java 代碼:

    browser = Browser. getBrowser() ;
    // 獲得VRML 瀏覽器(場景) 的句柄
    Node trigon1 = browser. getNode(”TRIGON1”
    );
    // 獲得場景中TRIGON1 對象的句柄
    translation = (EventinSFNode)trigon1. get Event In(”);
    set-translation”
    // 設定場景中該節點準備接受事件的域
    translation. setValue(xyz)
    // 設定改變場景中該節點的事件平移物體

    2. 3  多用戶共享的實現

      EAI 能夠克服VRML 瀏覽器在用戶接口方面的限制,通過其它的應用程序控制虛擬場景,使用戶能夠創建符合自己意圖的虛擬場景,進而實現多個用戶同時共享. 用戶在虛擬場景中的交互是以替身的形式實現的. 這里,替身的定義符合H -Anim1. 0的人物建模標準[5 ]. H-Anim1. 0 標準提供了一個具有良好的兼容性、靈活性、簡單性的人物模型的構造方法,按此標準建立的多用戶共享虛擬場景具有很好的通用性和開放型. 外部程序,如Java Applet , 通常是以事件的形式讀取和控制VRML 場景. 當場景中的一個替身發生變化或者替身的行為使得虛擬場景發生了改變,該信息將以事件的形式傳送給服務器. 服務器再將接受到的信息以IP 廣播的形式傳送給虛擬場景內所有的用戶,同時將此信息存放在數據庫里. 當用戶接受到服務器發出的信息時, 可以在客戶端直接通過EAI 更改VRML 場景或替身的狀態,這樣在每個用戶的瀏覽器上可以看到其他人的行為和替身的變化以及由此產生的場景的變化,從而實現了虛擬場景的多用戶共享.

      另外,當多個用戶進行合作開發或者共同進行虛擬實驗時,應避免多個用戶對同一物體進行修改而產生的沖突. 這里引入鎖定機制避免該沖突,即當一個用戶對某一物體進行控制時,會向服務器發送一個鎖定請求,此時該物體不能被其它用戶控制. 只有當用戶對物體解鎖后,其它用戶才能提出另一個鎖定要求. 控制物體節點的(ExposedField) touchsensorenabled 域可以實現對物體的鎖定與解鎖.

    3  應用實例

      基于以上的分析,這里建立了一個多用戶交互式用于計算機圖形學遠程教學的虛擬場景. 用戶以替身的形式進入虛擬場景,當用戶點擊不同的變換控制按鈕時,在彈出的窗口中顯示該變換的算法,同時虛擬場景中圖形也發生相應的變換.用戶則可以自由地在場景中漫游,從不同角度觀察圖形的變換,從而達到對不同變換算法加深理解的目的. 目前該系統正處于開發階段,以上所述圖

    2  用于計算機圖形學教學的虛擬場景的功能將逐步得以實現. 圖2 是虛擬場景的屏幕拷貝,僅供參考. 本文將Java 與VRML 相結合,借助EAI 和VRML 的Script 節點構建了一個三維交互式虛擬場景,提出了系統的整體框架,給出了用戶與虛擬場景以及用戶之間的交互方式,并指出多用戶共享時應注意的沖突問題. 在此基礎上,開發了一個具有初步功能的用于計算機圖形學遠程教學的虛擬場景,該場景有助于加深學習者對計算機圖形學各種算法的理解.

    參考文獻:
    [ 1 ]  VRML97 Specification[ EB/OL ] . ISO/IEC 14772-2 :2002[ S] . http ://www. web3d. org.
    [ 2 ]  賽博科技工作室. VRML 與Java 編程技術[ M ] . 北京:人民郵電出版社,2002.
    [ 3 ]  H. M. Deitel , P. J . Deitel. 奚紅宇,史曉華,邵 暉譯.JAVA 程序設計高級教程[ M ] . 北京:電子工業出版社,1999.
    Developing 3D Interactive Virtual Scene with the Combination of VRML and JAVA L EI Chao2quan1 ,WU Wei2bin2 (1. Professional Education Department , Ningde Teachers College , Ningde Fujian 352100 , China ;
    2. Network Info Center ,Quanzhou Normal University ,Fujian 362000 ,China)
    Abstract :By using EAI and Script node , Java and VRML are combined in this paper to develop a 3D interactive virtual scene. This scene overcomes the shortage of VRML in the aspect of interactivity and features the interaction between the user and the virtual scene. And a multi2user shared environment is also realized in this scene. Based on this structure , a frame of the virtual scene is constructed for the computer graphics education.
    Key words :VRML ;Java ; EA I ;interactivity ;virtual scene. 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.



    地震讓大伙知道:居安思危,才是生存之道。
    posted on 2007-03-19 13:57 小尋 閱讀(2109) 評論(1)  編輯  收藏 所屬分類: j2se/j2ee/j2me多媒體開發

    FeedBack:
    # re: [轉]VRML與JAVA相結合開發3D交互式虛擬場景 2008-06-11 21:06 xx
    xazxax  回復  更多評論
      
    主站蜘蛛池模板: 久久精品视频免费| 亚洲Av无码乱码在线znlu| 免费无码一区二区三区蜜桃大| 国产极品粉嫩泬免费观看| 亚洲精品美女网站| 中文字幕的电影免费网站| 中文亚洲AV片不卡在线观看| 精品国产福利尤物免费| 久久久久亚洲AV无码专区桃色| 中文字幕亚洲色图| 日韩在线视频线视频免费网站| 免费观看黄色的网站| 久久精品国产亚洲Aⅴ香蕉| 一级**爱片免费视频| 亚洲日韩小电影在线观看| 色欲A∨无码蜜臀AV免费播| 日本人的色道www免费一区| 亚洲人成电影福利在线播放| 黄色a三级三级三级免费看| 亚洲av片一区二区三区| 国产在线播放线91免费| 无码久久精品国产亚洲Av影片| 亚洲免费一级视频| 亚洲AV综合色区无码一二三区| 57pao一国产成视频永久免费| 亚洲国产精品一区二区第一页| 色欲A∨无码蜜臀AV免费播 | 国产无遮挡吃胸膜奶免费看视频| 菠萝菠萝蜜在线免费视频| 亚洲乳大丰满中文字幕| 国产精彩免费视频| 亚洲理论片在线观看| 久久久免费的精品| 亚洲va在线va天堂成人| 最近免费中文字幕高清大全| 亚洲av乱码一区二区三区按摩 | 一级做受视频免费是看美女 | 最近新韩国日本免费观看| 亚洲人成网站色7799| 91麻豆精品国产自产在线观看亚洲| 色欲国产麻豆一精品一AV一免费|