亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PHP的X3D場(chǎng)景動(dòng)態(tài)生成技術(shù)研究

        2012-07-05 06:45:50潘光洋王雪鳳
        關(guān)鍵詞:展品文檔虛擬現(xiàn)實(shí)

        潘光洋 王雪鳳

        (廣東商學(xué)院 華商學(xué)院,廣州 511300)

        虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,為三維虛擬展示、虛擬設(shè)計(jì)和虛擬教學(xué)等提供了非常好的發(fā)展平臺(tái)。Web3d虛擬現(xiàn)實(shí)技術(shù)是虛擬現(xiàn)實(shí)技術(shù)和網(wǎng)絡(luò)技術(shù)的結(jié)合,隨著web3d技術(shù)的發(fā)展,web3d聯(lián)盟發(fā)布了X3d標(biāo)準(zhǔn)。X3d標(biāo)準(zhǔn)是web3d技術(shù)的核心,是vrml的發(fā)展,通過有限的已定義節(jié)點(diǎn)構(gòu)建三維虛擬現(xiàn)實(shí)場(chǎng)景,提供了開發(fā)者自定義模型節(jié)點(diǎn)的功能,擁有強(qiáng)大的交互設(shè)計(jì)能力,X3d場(chǎng)景能在網(wǎng)絡(luò)上快速傳輸。X3D標(biāo)準(zhǔn)規(guī)定了X3D場(chǎng)景文件格式,其包括X3D classic、X3D binary和XML。PHP(Hypertext Preprocessor,超文本預(yù)處理器),是一種腳本編程語言,主要用于編寫服務(wù)端腳本、命令行腳本和客戶端的GUI應(yīng)用程序[1],其在動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)和開發(fā)中得到廣泛應(yīng)用。

        本文是在構(gòu)建X3D虛擬美術(shù)館的項(xiàng)目基礎(chǔ)上研究X3D的編碼格式和PHP動(dòng)態(tài)生成XML文檔,最終提出基于PHP的X3D場(chǎng)景動(dòng)態(tài)生成技術(shù)的應(yīng)用方法。

        1 關(guān)鍵技術(shù)

        1.1 X3D的編碼格式

        Web3d聯(lián)盟的發(fā)布了X3D編碼格式文件ISO/IEC 19776。此標(biāo)準(zhǔn)文檔規(guī)定了X3d的編碼格式包括:X3D classic、X3D binary和XML,相應(yīng)的MIME類型分別是model/X3d+VRML、model/X3d+binary和model/X3d+xml,其中X3d binary格式是X3D文件的壓縮格式。X3D classic和XML格式是X3D文檔編寫的格式。使用X3D classic編碼格式的X3D文檔必須以“#X3D V3.0 utf8”字符串開頭,而使用XML編碼格式的X3D文檔則以“<?xml version="1.0"encoding="utf-8"?>”字符串開頭。本文在研究PHP動(dòng)態(tài)生成X3D場(chǎng)景技術(shù)中應(yīng)用XML編碼格式。接下來,介紹X3D中XML編碼格式的文件語法結(jié)構(gòu)。

        X3d文件語法結(jié)構(gòu)由文件結(jié)構(gòu)、文件頭、文件體和注釋組成[2]。X3d的文件結(jié)構(gòu)包含了文件頭和主程序概貌,在主程序概貌中包括頭文檔和場(chǎng)景。在場(chǎng)景中利用基本幾何節(jié)點(diǎn)、復(fù)雜節(jié)點(diǎn)、組節(jié)點(diǎn)、紋理節(jié)點(diǎn)、效果節(jié)點(diǎn)、組件節(jié)點(diǎn)和交互節(jié)點(diǎn)等創(chuàng)建虛擬現(xiàn)實(shí)的三維模型和場(chǎng)景。X3D的XML文件結(jié)構(gòu)如圖1所示。

        文件的節(jié)點(diǎn)編寫方式符合XML標(biāo)準(zhǔn),即每個(gè)節(jié)點(diǎn)都以“<節(jié)點(diǎn)名稱>”開始,以“</節(jié)點(diǎn)名稱>”結(jié)束或“<節(jié)點(diǎn)名稱 />”,如主程序概貌節(jié)點(diǎn)“<X3D>…</X3D>”和“<ImageTexture/>”。構(gòu)建虛擬美術(shù)館,本文使用了PHP動(dòng)態(tài)生成X3d場(chǎng)景使用的節(jié)點(diǎn)包括:Transform、ImageTexture、Anchor等,使用了節(jié)點(diǎn)屬性DEF和USE等。

        圖1 X3D的XML文件結(jié)構(gòu)

        1)節(jié)點(diǎn)屬性DEF和USE X3D的XML編碼格式標(biāo)準(zhǔn)中規(guī)定DEF用來定義節(jié)點(diǎn)在場(chǎng)景中的標(biāo)識(shí)名稱,USE表示在場(chǎng)景中應(yīng)用了某個(gè)使用DEF定義的標(biāo)識(shí)名稱。如在文檔中添加了一個(gè)標(biāo)識(shí)名稱為shape1的Transform節(jié)點(diǎn),則其代碼如下:

        <Transform DEF=”shape1” > </Transform>

        若場(chǎng)景中出現(xiàn)多個(gè)與“shape1”模型,可以使用USE進(jìn)行引用,代碼如下:

        <Transform USE=”shape1” > </Transform>

        2)Transform節(jié)點(diǎn)Transform節(jié)點(diǎn)是X3D的組節(jié)點(diǎn),它創(chuàng)建一個(gè)相對(duì)于已有坐標(biāo)系的新坐標(biāo)系,該節(jié)點(diǎn)所包含的空間都是在這個(gè)新坐標(biāo)系的基礎(chǔ)上創(chuàng)建的。其節(jié)點(diǎn)的屬性包括translation、rotation、scale、children等。translation域指定了新坐標(biāo)系原點(diǎn)在父坐標(biāo)系中的XYZ的坐標(biāo),缺省值為0.0 0.0 0.0,表示新坐標(biāo)系的原點(diǎn)與父坐標(biāo)系的重合,也表示組中的模型在父坐標(biāo)系中的位置。在虛擬美術(shù)館的構(gòu)建中,translation屬性用來表示畫框的位置信息。

        3)ImageTexture節(jié)點(diǎn)ImageTexture節(jié)點(diǎn)指明了一個(gè)紋理圖和將該紋理圖映射至幾何體表面時(shí)需要指定的參數(shù),作為Appearance外觀節(jié)點(diǎn)的子節(jié)點(diǎn)出現(xiàn)。其重要節(jié)點(diǎn)屬性是url,此屬性中虛擬美術(shù)館中用來展示展品圖片,代碼如下:

        <ImageTexture url=’/works/1.jpg’/>

        4)Anchor節(jié)點(diǎn)Anchor節(jié)點(diǎn)即超級(jí)銜接組節(jié)點(diǎn),它的作用是銜接X3D三維立體空間中各個(gè)不同場(chǎng)景和與網(wǎng)頁進(jìn)行交互。其重要節(jié)點(diǎn)屬性包括:description和url。description域:指定一個(gè)文本字符串提示,當(dāng)移動(dòng)光標(biāo)到描點(diǎn)而不點(diǎn)擊它時(shí),瀏覽器現(xiàn)實(shí)該提示字符串文件;url域:指定需裝入文件的路徑或網(wǎng)絡(luò)導(dǎo)航器地址URL。單擊錨節(jié)點(diǎn)的子節(jié)點(diǎn),可以跳轉(zhuǎn)到其他網(wǎng)址。本文的研究中使用description屬性顯示展品圖片的作者和展品名稱信息,使用url屬性傳遞展品信息與網(wǎng)頁進(jìn)行交互執(zhí)行網(wǎng)頁上定義的javascript函數(shù)。

        1.2 PHP技術(shù)

        PHP是一個(gè)操作簡(jiǎn)單、功能強(qiáng)大的動(dòng)態(tài)網(wǎng)站開發(fā)語言,是一種HTML內(nèi)嵌式的語言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,用PHP開發(fā)的網(wǎng)站,開發(fā)過程簡(jiǎn)單,用戶維護(hù)方便,而且具有很好的安全性[3]。PHP有良好的跨平臺(tái)性,非常容易進(jìn)行移植,能夠得到IIS和Apache等WEB服務(wù)器的支持,因此它廣泛的運(yùn)行在Windows、Unix、Linux等操作系統(tǒng)上。當(dāng)前PHP的開發(fā)大部分是在Apache服務(wù)器下進(jìn)行,由于PHP是開放源代碼的開發(fā)語言,其擁有龐大的開發(fā)者支持,擁有各種功能的類可供開發(fā)者進(jìn)行二次開發(fā)。PHP生來就能對(duì)mysql數(shù)據(jù)庫進(jìn)行數(shù)據(jù)操作,方便、安全地讀寫mysql數(shù)據(jù)庫。因此Apache+PHP+Mysql的開發(fā)組合是眾多網(wǎng)站開發(fā)者的首選。

        網(wǎng)頁上的PHP代碼編寫格式如下:

        <?php…….?>

        PHP是一種嵌入HTML文檔的腳本語言,那它能夠在HTML文檔中直接編寫代碼,能夠與javascript代碼進(jìn)行信息傳遞,也就是說,在編寫網(wǎng)頁代碼時(shí)可以將PHP代碼和HTML代碼混合。X3D的XML編碼也是一種標(biāo)記語言,所以可以在XML文檔中嵌入PHP代碼。在動(dòng)態(tài)生成X3D場(chǎng)景時(shí)使用了如下幾個(gè)PHP系統(tǒng)函數(shù):

        1)Header()函數(shù)header函數(shù)向客戶端發(fā)送原始的HTTP報(bào)頭。HTTP的報(bào)頭可以包含了文檔的類型、文檔的位置、文檔的編碼等。

        2)echo()函數(shù)echo函數(shù)表示在網(wǎng)頁中輸出一個(gè)或多個(gè)字符串。其作用是用于輸出PHP變量、字符串、常量和html等,使得PHP能與HTML完美地結(jié)合在一起,能給javascript傳遞信息。

        PHP在4.0版本之后完善了對(duì)面向?qū)ο缶幊蹋璒OP的支持。PHP使用關(guān)鍵字class來聲明一個(gè)類,后面緊跟類的名字,主體用 {}符號(hào)括起來。通過在類定義中使用關(guān)鍵字var來聲明變量,即創(chuàng)建了類的屬性,也叫類的成員屬性;通過在類定義中聲明函數(shù),即創(chuàng)建了類的方法[4]。在開發(fā)項(xiàng)目過程中,使用一個(gè)訪問數(shù)據(jù)庫的類封裝讀寫數(shù)據(jù)庫的方法,可以提高了PHP程序的重用性。

        2 應(yīng)用實(shí)例

        2.1 設(shè)計(jì)數(shù)據(jù)庫

        虛擬美術(shù)館項(xiàng)目所涉及的數(shù)據(jù)庫表比較多,本文針對(duì)動(dòng)態(tài)生成X3D場(chǎng)景所需的數(shù)據(jù)庫表進(jìn)行討論??紤]到數(shù)據(jù)庫保存數(shù)據(jù)的容量和訪問數(shù)據(jù)庫的頻率,在設(shè)計(jì)數(shù)據(jù)庫時(shí)要把握兩點(diǎn):(1)確定模型中哪些數(shù)據(jù)是不變的,哪些是變化的;(2)確定X3D模型文檔中哪些是數(shù)據(jù)才是主要數(shù)據(jù)、關(guān)鍵數(shù)據(jù)。本文的研究中涉及了3個(gè)數(shù)據(jù)表:展覽表gallery、展品表images和位置信息表positioninfo。展覽表保存了現(xiàn)實(shí)美術(shù)館舉辦的每一次展覽的信息,包括展覽的主題、展覽的海報(bào)、展覽舉辦時(shí)間等;展品表保存相應(yīng)展覽中的展品信息,包括展品的圖片路徑、展品作者、展品名稱和展品的簡(jiǎn)介等;位置信息表保存了展品放置在虛擬場(chǎng)景中的位置信息,包括位置名稱、位置的三維坐標(biāo)和展品放置在墻的正反面信息等。

        2.2 生成X3D場(chǎng)景

        PHP動(dòng)態(tài)生成X3D場(chǎng)景的方法是將原有的X3D場(chǎng)景文檔進(jìn)行處理,變化的數(shù)據(jù)保存在數(shù)據(jù)庫中,不變的數(shù)據(jù)保存在PHP文檔中;并且能過PHP將變化的數(shù)據(jù)從數(shù)據(jù)庫中讀取出來,結(jié)合不變的數(shù)據(jù)形成X3D場(chǎng)景文檔;最后通過X3D瀏覽器顯示出來,其邏輯過程如圖2所示。

        圖2 PHP動(dòng)態(tài)生成X3D場(chǎng)景邏輯圖

        PHP動(dòng)態(tài)生成X3D場(chǎng)景的部分代碼和解釋如下:

        1)向?yàn)g覽器說明此文檔的編碼格式是X3D的XML編碼格式。

        header('Content- type:model/x3d+xml');

        2)數(shù)據(jù)庫中通過左聯(lián)接的方式聯(lián)接展品信息表、展覽表和位置信息表,查詢指定展覽中各位置的展品信息。

        $sql="SELECT p.positionid,p.positionname,p.type,p.positioninfo,i.path,i.filename,i.author,i.title,i.imageid FROM position as p left outer join(select* from images where actived=1 and galleryid=".$vgallery_id.")as i on p.positionid=i.positionid";

        3)生成展品的信息節(jié)點(diǎn)Anchor。此節(jié)點(diǎn)顯示展品的作者和展品名稱信息,通過javascript:showInfo()函數(shù)為瀏覽展覽的用戶提供了添加展品和修改展品的功能。

        <Anchor url= 'javascript:showInfo(”".(!isset($image ["imageid"])?"addimage":"editimage|".$image["imageid"])." |".$image ["positionid"]."”);'description= '作者:".$image ["author"].",標(biāo)題:".$image ["title"]." '>

        4)生成展品圖片貼圖節(jié)點(diǎn)。

        < ImageTexture url= '”".BASEURL.'MyWebsiteImages/'.$image ["path"].'_ '.WEBSITE_KEY.$imgsize.$image["filename"]."”'/>

        生成的X3D文檔顯示在X3D播放器中,還應(yīng)該在其他網(wǎng)頁文檔中添加如下代碼:

        <embed id=ContactFrame name=ContactFrame height="600"width="800"src="gallery.php?vgallery_id='.$galleryid.'" > < /embed>

        2.3 實(shí)例顯示效果

        虛擬美術(shù)館的“2010屆美術(shù)專業(yè)畢業(yè)優(yōu)秀作品展”展覽俯視圖如圖3所示。圖中有些展區(qū)的展品相同,那是因?yàn)檎箙^(qū)還沒添加展品,應(yīng)用了默認(rèn)展品。第一幅圖旁邊有顯示了“作者:,標(biāo)題:ximiling”白色信息欄,那是Anchor節(jié)點(diǎn)的description屬性決定的。

        圖3 X3D場(chǎng)景的俯視圖

        單擊場(chǎng)景中的第二展區(qū)的默認(rèn)展品,即可添加展品信息。保存展品信息后,瀏覽界面回到場(chǎng)景如圖4所示。

        3 結(jié)語

        虛擬美術(shù)館的構(gòu)建實(shí)例證明PHP動(dòng)態(tài)生成X3D場(chǎng)景技術(shù)的可行性和實(shí)用性。PHP動(dòng)態(tài)生成X3D場(chǎng)景技術(shù)可以應(yīng)用在虛擬實(shí)驗(yàn)教學(xué)系統(tǒng)和虛擬圖書館系統(tǒng)等網(wǎng)上虛擬現(xiàn)實(shí)系統(tǒng),也可以用于構(gòu)建一個(gè)擁有虛擬場(chǎng)景的虛擬社區(qū)。

        圖4 添加展品后的俯視圖

        [1]Bisson S.An introduction to PHP[J].Application Development Advisor,2002,6(4):38 -41.

        [2]張金釗.X3D虛擬現(xiàn)實(shí)設(shè)計(jì)-第二代立體網(wǎng)絡(luò)程序設(shè)計(jì)語言[M].北京:電子工業(yè)出版社,2007.

        [3]杜闖.PHP在動(dòng)態(tài)網(wǎng)站開發(fā)中的優(yōu)勢(shì)[J].電腦知識(shí)與技術(shù),2010,6(13):3342-3344.

        [4]PHP5權(quán)威編程[M].簡(jiǎn)張桂,譯.北京:電子工業(yè)出版社,2008.

        猜你喜歡
        展品文檔虛擬現(xiàn)實(shí)
        展品選刊
        展品被盜了
        有人一聲不吭向你扔了個(gè)文檔
        CIM T2017部分展商主要展品預(yù)覽(一)
        風(fēng)口上的虛擬現(xiàn)實(shí)
        商周刊(2017年24期)2017-02-02 01:42:55
        基于RI碼計(jì)算的Word復(fù)制文檔鑒別
        虛擬現(xiàn)實(shí)技術(shù)向科幻小說借靈感
        海外星云(2016年7期)2016-12-01 04:18:00
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        HTC斥資千萬美元入股虛擬現(xiàn)實(shí)設(shè)備商WEVR
        CCMT2016展品預(yù)覽(1)
        亚洲日本精品一区久久精品| 中国人在线观看免费的视频播放| 日韩女同在线免费观看| 日本人妻精品有码字幕| 日本一区二区三区人妻| 精品国产亚洲亚洲国产 | 麻豆最新国产av原创| 国产亚洲成性色av人片在线观| 老太婆性杂交视频| 成年女人色毛片| 美女扒开内裤让男生桶| 亚洲国产精品500在线观看| 亚洲欧美日韩精品香蕉| 日本一区不卡高清在线观看| 大又黄又粗又爽少妇毛片| 日本国产一区在线观看| 久草福利国产精品资源| av一区二区三区在线| 少妇人妻中文字幕hd| 国产女人的高潮国语对白| 日韩制服国产精品一区| 免费黄色电影在线观看| 国产福利小视频在线观看| 中文无码免费在线| 少妇被猛烈进入中文字幕| 91日韩东京热中文字幕| 内射人妻无套中出无码| 中文字幕一精品亚洲无线一区| 亚洲中文字幕无码天然素人在线| 50岁退休熟女露脸高潮| 亚洲五月天综合| 久久久久久久久久免免费精品| 在线免费观看国产视频不卡| 亚洲av一二三四五区在线| 91精品国产乱码久久中文| 风韵丰满熟妇啪啪区老熟熟女| 怡红院av一区二区三区| 亚洲国产成人久久综合电影| 四虎成人精品无码永久在线| 亚洲AV无码一区二区三区少妇av| 成人av在线免费播放|