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

        ?

        基于一種形式化方法的3D虛擬祭祀場(chǎng)景建模語(yǔ)言與環(huán)境

        2018-10-16 08:31:20徐曉丹李秉杰李伯森
        計(jì)算機(jī)應(yīng)用 2018年9期
        關(guān)鍵詞:界面

        徐曉丹,李秉杰,李伯森,呂 舜

        (1.民政部 一零一研究所,北京100070; 2.北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京 100191)

        0 引言

        隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)祭祀成為引導(dǎo)人民群眾從實(shí)地實(shí)物祭掃轉(zhuǎn)移到對(duì)逝者精神傳承的一種途徑,是節(jié)地生態(tài)安葬、綠色低碳祭掃、文明節(jié)儉的方式,是更加充滿個(gè)性、人文和文化特色的方式。其中三維(Three Dimensional, 3D)圖像虛擬祭祀借助互聯(lián)網(wǎng)、虛擬現(xiàn)實(shí)、大數(shù)據(jù)等技術(shù),將現(xiàn)實(shí)的紀(jì)念館與墓地通過(guò)虛擬技術(shù)展現(xiàn)到移動(dòng)、PC等終端設(shè)備上,實(shí)現(xiàn)跨越時(shí)空;以祭祀場(chǎng)景更加貼近實(shí)際、良好的視覺(jué)和交互體驗(yàn),方便人們隨時(shí)隨地祭奠已逝親人等優(yōu)點(diǎn)備受人們青睞。為此,民政部近年來(lái)組織建設(shè)“中國(guó)殯葬公共服務(wù)平臺(tái)”重大項(xiàng)目,3D虛擬祭祀是該項(xiàng)目中的一個(gè)重要組成部分,本文介紹了該項(xiàng)目建設(shè)過(guò)程中關(guān)于3D虛擬祭祀開(kāi)發(fā)的部分研究成果。

        3D虛擬祭祀的技術(shù)特點(diǎn):一是所構(gòu)造的場(chǎng)景是根據(jù)用戶需求自行進(jìn)行搭建的,用戶通過(guò)靜態(tài)或動(dòng)態(tài)的方式對(duì)場(chǎng)景進(jìn)行修改,這包括了對(duì)場(chǎng)景中對(duì)象的布局或?qū)ο蟊旧淼膶傩孕畔⑦M(jìn)行修改;二是3D虛擬祭祀場(chǎng)景較復(fù)雜,具有明顯的場(chǎng)景構(gòu)成粒度低、場(chǎng)景屬性種類(lèi)繁雜的特點(diǎn);三是要具備面向虛擬祭祀提供渲染任務(wù)調(diào)度與交互管理的基本功能,根據(jù)用戶前端平臺(tái)的性質(zhì),面向PC終端提供超文本標(biāo)記語(yǔ)言(Hyper Text Markup Language, HTML)5交互引擎構(gòu)造以及面向移動(dòng)終端提供云渲染引擎任務(wù)請(qǐng)求,用戶線上虛擬環(huán)境交互過(guò)程中實(shí)現(xiàn)各種操作動(dòng)作的捕捉以及響應(yīng)回饋,滿足不同終端用戶線上3D的虛擬環(huán)境體驗(yàn)。

        虛擬現(xiàn)實(shí)(Virtual Reality, VR)又被稱(chēng)作沉浸式多媒體或者是計(jì)算機(jī)模擬仿真[1]。通過(guò)虛擬現(xiàn)實(shí)技術(shù)可以在計(jì)算機(jī)中模擬出逼真的三維場(chǎng)景,給用戶良好的視覺(jué)和交互體驗(yàn),因此近些年來(lái)虛擬現(xiàn)實(shí)相關(guān)技術(shù)在各個(gè)領(lǐng)域的應(yīng)用越來(lái)越頻繁,涵蓋了軍事、教育、科研等多個(gè)方面并取得了良好的效果[2]。場(chǎng)景建模是虛擬現(xiàn)實(shí)相關(guān)應(yīng)用程序開(kāi)發(fā)中非常重要的環(huán)節(jié),因此在應(yīng)用場(chǎng)景建模技術(shù)時(shí),需要綜合分析目標(biāo)場(chǎng)景的構(gòu)成特點(diǎn)及業(yè)務(wù)需求以選擇合適的建模方法。

        目前場(chǎng)景建模技術(shù)主要分為傳統(tǒng)三維建模技術(shù)和基于圖像的幾何建模技術(shù)兩大類(lèi)[3]。在該技術(shù)領(lǐng)域的研究中,先前研究主要著眼于描述場(chǎng)景的組成和場(chǎng)景對(duì)象的特性,基于包括可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language, XML)、可擴(kuò)展虛擬現(xiàn)實(shí)建模語(yǔ)言(Extensible Virtual Reality Modeling Language, X-VRML)、可擴(kuò)展三維圖像(Extensible Three Dimensions, X3D)或自定義腳本語(yǔ)言在內(nèi)的多種文本格式形成場(chǎng)景描述文本文件,最終根據(jù)該描述文本利用模型進(jìn)行場(chǎng)景拼接完成建模工作[4-7]。

        這些方法一般能滿足對(duì)復(fù)雜程度低的場(chǎng)景的需求,還不能解決像3D虛擬祭祀這類(lèi)用戶根據(jù)自身需求自行搭建場(chǎng)景且構(gòu)成粒度細(xì)、對(duì)象屬性復(fù)雜的場(chǎng)景的情況,主要是因?yàn)檫@些建模技術(shù)普遍存在如下問(wèn)題:1)對(duì)復(fù)雜場(chǎng)景對(duì)象的屬性和特征描述手段不足,具體表現(xiàn)在數(shù)據(jù)類(lèi)型不足、構(gòu)造新數(shù)據(jù)類(lèi)型困難以及對(duì)數(shù)組、結(jié)構(gòu)體等復(fù)雜類(lèi)型描述困難等方面;2)業(yè)務(wù)耦合性強(qiáng),一方面沒(méi)有總結(jié)出抽象的場(chǎng)景對(duì)象描述方法,另一方面經(jīng)常局限于某一種具體的文本描述規(guī)則,因此導(dǎo)致其通用性不足;3)在設(shè)計(jì)時(shí)較少考慮到界面化建模支持,當(dāng)目標(biāo)場(chǎng)景的規(guī)模非常龐大時(shí),直接人工編輯建模文本會(huì)降低工作效率,并增加因人為疏忽導(dǎo)致的文本編輯錯(cuò)誤的概率。

        針對(duì)上述問(wèn)題,本文提出了一種基于形式化的場(chǎng)景建模語(yǔ)言與環(huán)境。首先,對(duì)場(chǎng)景的構(gòu)成特性進(jìn)行了清晰的分析,并基于巴科斯范式(Backus-Naur Form, BNF)規(guī)則[8]提出了場(chǎng)景建模語(yǔ)言;其次,定義了場(chǎng)景建模語(yǔ)言的操作使得該語(yǔ)言可以通過(guò)應(yīng)用程序編程接口(Application Programming Interface, API)調(diào)用的方式完成編輯,證明了該語(yǔ)言對(duì)界面化建模的支持;最后,定義了一套該語(yǔ)言的XML映射方法,實(shí)驗(yàn)結(jié)果表明通過(guò)自動(dòng)化的映射方法使場(chǎng)景建模結(jié)果以XML文本格式進(jìn)行存儲(chǔ),提升了建模結(jié)果的可復(fù)用性。

        1 3D場(chǎng)景建模語(yǔ)言

        1.1 3D場(chǎng)景建模語(yǔ)言語(yǔ)法規(guī)則定義

        本文基于ISO/IEC 14977標(biāo)準(zhǔn)化文檔中擴(kuò)展BNF規(guī)則給出了3D場(chǎng)景建模語(yǔ)言的語(yǔ)法規(guī)則[9]。其中擴(kuò)展BNF規(guī)則中的符號(hào)如表1所示。

        表1 擴(kuò)展BNF符號(hào)表

        3D場(chǎng)景建模語(yǔ)言語(yǔ)法規(guī)則定義如下:

        場(chǎng)景描述腳本=變量定義區(qū),場(chǎng)景對(duì)象模板定義區(qū),場(chǎng)景構(gòu)造腳本定義區(qū)

        變量定義區(qū)={變量定義}

        變量定義=變量名,變量類(lèi)型,{變量值}

        變量名=標(biāo)識(shí)符

        變量類(lèi)型=基礎(chǔ)數(shù)據(jù)類(lèi)型

        變量值=終結(jié)符

        場(chǎng)景對(duì)象模板定義區(qū)= {場(chǎng)景對(duì)象模板}

        場(chǎng)景對(duì)象模板=模板ID,場(chǎng)景對(duì)象類(lèi)型,缺省標(biāo)記,{屬性語(yǔ)句}

        屬性語(yǔ)句=鍵值屬性語(yǔ)句 | 序列屬性語(yǔ)句 | 結(jié)構(gòu)體屬語(yǔ)句

        鍵值屬性語(yǔ)句=語(yǔ)句基本信息,屬性類(lèi)型,屬性值

        序列屬性語(yǔ)句=語(yǔ)句基本信息,屬性類(lèi)型,{屬性值}

        結(jié)構(gòu)體屬性語(yǔ)句={鍵值屬性語(yǔ)句}

        屬性類(lèi)型=數(shù)據(jù)類(lèi)型,[數(shù)值范圍]

        屬性值=標(biāo)識(shí)符

        語(yǔ)句基本信息=屬性名,語(yǔ)句類(lèi)型,幫助信息

        屬性名=標(biāo)識(shí)符

        語(yǔ)句類(lèi)型="鍵值屬性", "序列屬性", "結(jié)構(gòu)體屬性"

        幫助信息=屬性別名, 屬性描述, 屬性分類(lèi)

        屬性別名=標(biāo)識(shí)符

        屬性描述=終結(jié)符

        屬性分類(lèi)=標(biāo)識(shí)符

        數(shù)值范圍=最小值,最大值

        最小值=終結(jié)符

        最大值=終結(jié)符

        數(shù)據(jù)類(lèi)型=基礎(chǔ)數(shù)據(jù)類(lèi)型|場(chǎng)景對(duì)象類(lèi)型|擴(kuò)展數(shù)據(jù)類(lèi)型

        基礎(chǔ)數(shù)據(jù)類(lèi)型="Integer"|"Float"|"Double"|"Boolean"

        |"String"|"Enum"|"Collection"

        場(chǎng)景對(duì)象類(lèi)型="Unit" | "Particle" | "Capacity" | "Item"

        擴(kuò)展數(shù)據(jù)類(lèi)型="ModelAsset" | "ParticleAsset" | "AudioAsset" | "MaterialAsset" | "TextureAsset"

        場(chǎng)景構(gòu)造腳本定義區(qū)= {場(chǎng)景對(duì)象}

        場(chǎng)景對(duì)象=索引ID, 模板ID, {特化信息}

        特化信息=(屬性名, 屬性值) | (屬性名, 成員名, 屬性值)

        終結(jié)符="′" , 符號(hào), {符號(hào)} , "′" | ′"′ , 符號(hào), {符號(hào)} , ′"′

        標(biāo)識(shí)符=字母, {字母 | 數(shù)字 | "_"}

        字符=字母 | 數(shù)字 | 符號(hào) | "_"

        數(shù)字="0" |"1" |"2" |"3" |"4" |"5" |"6" |"7" | "8" |"9"

        符號(hào)= "[" | "]" | "{" | "}" | "(" | ")" | "<" | ">"| "'" | '"' | "=" | "|" | "." | "," | ";"

        字母="A" | "B" | "C" | "D" | "E" | "F" | "G"| "H" | "I" | "J" | "K" | "L" | "M" | "N"| "O" | "P" | "Q" | "R" | "S" | "T" | "U"| "V" | "W" | "X" | "Y" | "Z" | "a" | "b"| "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p"| "q" | "r" | "s" | "t" | "u" | "v" | "w"| "x" | "y" | "z"

        由此,采用該語(yǔ)言對(duì)目標(biāo)3D場(chǎng)景進(jìn)行建模后最終得到的場(chǎng)景描述腳本由三個(gè)區(qū)域組成:變量定義區(qū),用于描述場(chǎng)景描述腳本中所使用的變量信息;場(chǎng)景對(duì)象模板定義區(qū),用于描述場(chǎng)景中所有的場(chǎng)景對(duì)象模板信息;場(chǎng)景構(gòu)造腳本定義區(qū),用于描述場(chǎng)景的實(shí)際構(gòu)成信息。其中,場(chǎng)景對(duì)象模板定義區(qū)是整個(gè)語(yǔ)言結(jié)構(gòu)中的關(guān)鍵組成部分。

        1.2 語(yǔ)言設(shè)計(jì)

        為加強(qiáng)語(yǔ)言本身對(duì)復(fù)雜場(chǎng)景對(duì)象屬性和特征的描述能力,同時(shí)賦予語(yǔ)言對(duì)界面化建模的支持特性,本文在語(yǔ)言的提出和設(shè)計(jì)過(guò)程中以形式化方法為基礎(chǔ),通過(guò)對(duì)3D祭祀場(chǎng)景的構(gòu)成特點(diǎn)進(jìn)行分析并對(duì)其進(jìn)行高度抽象,抽象出場(chǎng)景對(duì)象、場(chǎng)景對(duì)象模板、場(chǎng)景對(duì)象模板屬性三個(gè)層次,并基于BNF的描述規(guī)則,根據(jù)場(chǎng)景抽象層次提出場(chǎng)景建模語(yǔ)言。

        1.2.1 場(chǎng)景對(duì)象模板概念

        為對(duì)3D祭祀場(chǎng)景進(jìn)行建模,首先對(duì)祭祀場(chǎng)景的組成結(jié)構(gòu)進(jìn)行分析并抽象成如圖1所示的形式。為盡可能地使具體業(yè)務(wù)與場(chǎng)景結(jié)構(gòu)一致,提出場(chǎng)景對(duì)象的概念,它代表了場(chǎng)景中每一個(gè)獨(dú)立的對(duì)象。雖然對(duì)象的內(nèi)部可能由更細(xì)微的顆粒構(gòu)成,為簡(jiǎn)化暫時(shí)先不考慮內(nèi)部的構(gòu)成情況,將其看作一個(gè)整體。

        圖1 一般虛擬場(chǎng)景的抽象層次結(jié)構(gòu)

        場(chǎng)景對(duì)象模板是用于描述一類(lèi)性質(zhì)相同的場(chǎng)景對(duì)象,將具有相同特征的場(chǎng)景對(duì)象的屬性進(jìn)行提取所形成的一種抽象屬性集合。這些場(chǎng)景對(duì)象僅僅是在屬性構(gòu)成上相同,并非屬性值也一致。場(chǎng)景對(duì)象模板的形成過(guò)程分為兩個(gè)步驟:一是將場(chǎng)景中具有相同特征的對(duì)象進(jìn)行歸類(lèi);二是對(duì)同一種類(lèi)型的場(chǎng)景對(duì)象進(jìn)行屬性提取形成場(chǎng)景對(duì)象模板。場(chǎng)景對(duì)象模板形成后,需要保留每個(gè)場(chǎng)景對(duì)象特有的屬性值信息,因此每個(gè)對(duì)象要保留對(duì)應(yīng)的模板特化參數(shù)。為了壓縮參數(shù)數(shù)量,每個(gè)場(chǎng)景對(duì)象模板都會(huì)匹配一個(gè)默認(rèn)模板參數(shù),如果場(chǎng)景對(duì)象某個(gè)屬性的值與默認(rèn)模板參數(shù)一致則無(wú)需再進(jìn)行保存。

        通過(guò)這樣的抽象方式,將場(chǎng)景中的所有場(chǎng)景對(duì)象歸結(jié)為幾大類(lèi)場(chǎng)景對(duì)象模板,從而通過(guò)任何一個(gè)場(chǎng)景對(duì)象模板就可以隨意生成具有此類(lèi)特性的場(chǎng)景對(duì)象,該場(chǎng)景對(duì)象的屬性值來(lái)源于默認(rèn)模板參數(shù)和模板特化參數(shù)的組合。

        1.2.2 場(chǎng)景對(duì)象模板屬性概念

        場(chǎng)景對(duì)象中的復(fù)雜屬性構(gòu)成是影響目前大多數(shù)建模方法應(yīng)用的主要難點(diǎn)[10],為解決此難點(diǎn),本文在場(chǎng)景對(duì)象模板概念的基礎(chǔ)上,對(duì)其中的屬性信息進(jìn)行抽象,如圖1所示,提出三種屬性類(lèi)型:鍵值屬性、序列屬性、結(jié)構(gòu)體屬性。其中,鍵值屬性主要用于描述鍵值類(lèi)型的屬性信息,這種屬性只包含一個(gè)數(shù)據(jù)類(lèi)型和一個(gè)對(duì)應(yīng)數(shù)據(jù)類(lèi)型的值;序列屬性語(yǔ)句用于描述一系列具有相同數(shù)據(jù)類(lèi)型的數(shù)值所構(gòu)成的集合,這種屬性包含一個(gè)數(shù)據(jù)類(lèi)型和至少一個(gè)該數(shù)據(jù)類(lèi)型對(duì)應(yīng)的值,類(lèi)比于程序語(yǔ)言中的數(shù)組;結(jié)構(gòu)體屬性語(yǔ)句用于表示結(jié)構(gòu)體類(lèi)型的屬性信息,它可以看作多個(gè)鍵值類(lèi)型屬性信息的集合,類(lèi)比于程序語(yǔ)言中的結(jié)構(gòu)體。

        通過(guò)這種抽象的方式就可以將場(chǎng)景對(duì)象模板中的所有屬性信息抽象成為上述三種類(lèi)型的屬性并加以描述,基于這種結(jié)構(gòu)所設(shè)計(jì)出來(lái)的建模語(yǔ)言將會(huì)對(duì)具有復(fù)雜屬性結(jié)構(gòu)的場(chǎng)景對(duì)象有非常強(qiáng)的適應(yīng)性。

        除此之外,如果該語(yǔ)言所包含的三種屬性類(lèi)型無(wú)法滿足目標(biāo)3D場(chǎng)景的需求,也可以通過(guò)增添新的屬性類(lèi)型加以應(yīng)對(duì),由于場(chǎng)景建模語(yǔ)言是基于BNF設(shè)計(jì)的,因此只需要遵守語(yǔ)言的描述規(guī)范就可以在不破壞語(yǔ)言原有結(jié)構(gòu)的情況下實(shí)現(xiàn)語(yǔ)言的擴(kuò)充。

        1.2.3 引入界面化建模支持特性

        本文在設(shè)計(jì)3D場(chǎng)景建模語(yǔ)言時(shí),基于圖1所展現(xiàn)的抽象層次[11],結(jié)合BNF規(guī)則提出了一套嚴(yán)謹(jǐn)?shù)恼Z(yǔ)言語(yǔ)法模型,這有利于界面化編輯,只需提出一套該語(yǔ)言的編輯操作API即可實(shí)現(xiàn)對(duì)應(yīng)的界面化編輯環(huán)境。

        另外,為了在界面化編輯過(guò)程中用戶能夠更清晰地理解場(chǎng)景對(duì)象模板中每一個(gè)屬性的含義,對(duì)構(gòu)成場(chǎng)景對(duì)象模板的屬性根據(jù)其用戶再次進(jìn)行劃分,并為每一個(gè)屬性的含義進(jìn)行標(biāo)定,將這些屬性的描述信息嵌入到每一個(gè)屬性語(yǔ)句中。通過(guò)這樣的方式,在實(shí)際建模過(guò)程中,就可以對(duì)每個(gè)屬性的分類(lèi)及描述信息進(jìn)行標(biāo)識(shí),這有助于界面化程序識(shí)別各種屬性并將其相關(guān)信息展示給使用者,以輔助使用者完成場(chǎng)景建模工作。

        2 3D場(chǎng)景建模語(yǔ)言XML轉(zhuǎn)換規(guī)則

        因?yàn)殇秩境绦驅(qū)?chǎng)景描述腳本進(jìn)行解析時(shí)不能直接對(duì)該腳本進(jìn)行讀取,所以,還需要針對(duì)該腳本設(shè)計(jì)一套專(zhuān)用的語(yǔ)言解釋器。因此,為了使得本文所提出的建模語(yǔ)言能夠更容易地被渲染系統(tǒng)讀取和解析,還需設(shè)計(jì)3D場(chǎng)景建模語(yǔ)言的XML轉(zhuǎn)化規(guī)則,通過(guò)該規(guī)則可以將建模結(jié)果轉(zhuǎn)化為XML的存儲(chǔ)格式。這種做法的優(yōu)勢(shì)是:1)避免了為該語(yǔ)言開(kāi)發(fā)專(zhuān)門(mén)的語(yǔ)法解釋器,同時(shí)降低了渲染程序與語(yǔ)言之間的耦合程度;2)提升了建模結(jié)果的可復(fù)用性,當(dāng)需要使用其他描述格式重新對(duì)場(chǎng)景進(jìn)行建模時(shí),只需要實(shí)現(xiàn)對(duì)應(yīng)的自動(dòng)化轉(zhuǎn)換程序,而無(wú)需重新對(duì)該場(chǎng)景再進(jìn)行建模,此外轉(zhuǎn)換程序的實(shí)現(xiàn)難度遠(yuǎn)低于語(yǔ)言解釋器。

        為此,本文首先提出了一套轉(zhuǎn)換規(guī)則操作符,用于描述轉(zhuǎn)換規(guī)則應(yīng)遵循的執(zhí)行方式,然后再針對(duì)場(chǎng)景建模語(yǔ)言語(yǔ)法規(guī)則中的每一種非終結(jié)符和終結(jié)符給出對(duì)應(yīng)的轉(zhuǎn)化規(guī)則。

        表3 3D場(chǎng)景建模語(yǔ)言XML轉(zhuǎn)換規(guī)則

        2.1 轉(zhuǎn)換規(guī)則操作符

        為了刻畫(huà)轉(zhuǎn)換過(guò)程中的操作,基于3D場(chǎng)景建模語(yǔ)言的語(yǔ)法規(guī)則定義提出了一套轉(zhuǎn)換規(guī)則操作符,如表2所示,這些操作符以BNF語(yǔ)法規(guī)則中的符號(hào)為輸入進(jìn)行操作。其中,對(duì)符號(hào)進(jìn)行XML展開(kāi)時(shí)需要參考該符號(hào)下所支持的轉(zhuǎn)換規(guī)則,而對(duì)符號(hào)值展開(kāi)時(shí),則將符號(hào)所對(duì)應(yīng)的值直接填寫(xiě)到XML中即可。

        表2 3D場(chǎng)景建模語(yǔ)言XML轉(zhuǎn)換規(guī)則操作符

        2.2 轉(zhuǎn)換規(guī)則

        表3只列出了3D場(chǎng)景建模語(yǔ)言XML轉(zhuǎn)換規(guī)則中比較關(guān)鍵的部分,建模語(yǔ)言語(yǔ)法規(guī)則中的每一個(gè)非終結(jié)符都對(duì)應(yīng)了一套詳細(xì)的轉(zhuǎn)換規(guī)則,基于這些轉(zhuǎn)換規(guī)則即可按照語(yǔ)法樹(shù)自頂向下進(jìn)行展開(kāi)最終完成整個(gè)轉(zhuǎn)換過(guò)程。

        對(duì)于每一個(gè)非終結(jié)符號(hào)而言轉(zhuǎn)換規(guī)則并不是唯一的,這種設(shè)計(jì)的目的是為了壓縮轉(zhuǎn)換后的XML文本量,接下來(lái)介紹壓縮優(yōu)化原理。

        2.3 轉(zhuǎn)換過(guò)程中的壓縮優(yōu)化

        在建模語(yǔ)言的設(shè)計(jì)過(guò)程中為了讓場(chǎng)景建模語(yǔ)言邏輯縝密,導(dǎo)致了語(yǔ)言本身在使用時(shí)會(huì)產(chǎn)生一定的數(shù)據(jù)冗余,其主要表現(xiàn)在屬性語(yǔ)句的內(nèi)容冗余。如果存在兩個(gè)屬性名一致的屬性語(yǔ)句s1和s2,則根據(jù)屬性名的唯一性,兩個(gè)屬性語(yǔ)句的語(yǔ)句類(lèi)型必然是一致的。下面對(duì)不同語(yǔ)句類(lèi)型進(jìn)行討論:

        鍵值屬性語(yǔ)句時(shí):兩個(gè)屬性語(yǔ)句除了屬性值以外的構(gòu)成是完全一致的;

        序列屬性語(yǔ)句時(shí):兩個(gè)屬性語(yǔ)句除了屬性值序列以外的構(gòu)成是完全一致的;

        構(gòu)體屬性語(yǔ)句時(shí):兩個(gè)屬性語(yǔ)句中除鍵值屬性語(yǔ)句序列以外的構(gòu)成是完全一致的;對(duì)于任意鍵值屬性語(yǔ)句m1∈s1存在鍵值屬性語(yǔ)句m2∈s2,此時(shí)m1和m2除了屬性值以外的構(gòu)成一定是完全一致的;且對(duì)于任意鍵值屬性語(yǔ)句m2∈s2存在鍵值屬性語(yǔ)句m1∈s1,此時(shí)m1和m2除了屬性值以外的構(gòu)成一定是完全一致的。

        上述討論可以得到結(jié)論:如果屬性語(yǔ)句的定義中出現(xiàn)了同屬性名的屬性語(yǔ)句,那么就會(huì)產(chǎn)生冗余信息。而在實(shí)際的XML生成過(guò)程中,去除屬性語(yǔ)句的冗余是能有效地優(yōu)化建模結(jié)果的腳本大小。因此在轉(zhuǎn)換過(guò)程中,會(huì)對(duì)所有場(chǎng)景對(duì)象模板中的屬性信息進(jìn)行提取,過(guò)濾重復(fù)的內(nèi)容并統(tǒng)一放置在一個(gè)XML文件中進(jìn)行存儲(chǔ),將場(chǎng)景對(duì)象模板中屬性值信息單獨(dú)提取出來(lái)存放在另一個(gè)XML文件中,兩者通過(guò)屬性名稱(chēng)進(jìn)行關(guān)聯(lián),從而對(duì)轉(zhuǎn)化結(jié)果進(jìn)行了重新組織。如表4所示,將轉(zhuǎn)換后的XML內(nèi)容分別保存在不同的XML文件中,并約定每個(gè)XML文件的初始內(nèi)容。

        每一個(gè)XML文件都擁有初始的轉(zhuǎn)換操作需求,因此將先前已經(jīng)生成的場(chǎng)景建模結(jié)果代入到對(duì)應(yīng)的轉(zhuǎn)換操作中,就可以自動(dòng)生成對(duì)應(yīng)的XML文本信息。

        表4 場(chǎng)景描述腳本XML文件組織結(jié)構(gòu)

        3 3D場(chǎng)景建模編輯環(huán)境

        3.1 界面化建模的重要性

        在目前的建模方法應(yīng)用過(guò)程中,大多數(shù)方法都需要使用者通過(guò)文本編輯的形式直接對(duì)建模文件進(jìn)行修改,這種方法在面對(duì)數(shù)量級(jí)較小的建模結(jié)果時(shí)還是很有效的,但是,隨著目標(biāo)建模場(chǎng)景規(guī)模和復(fù)雜度的不斷提升,直接對(duì)文本進(jìn)行編輯不僅效率較低,還有可能因?yàn)槿藶槭д`引入一些錯(cuò)誤。其中主要的一部分錯(cuò)誤就是語(yǔ)法錯(cuò)誤,這些錯(cuò)誤的排查往往要消耗很多的精力和時(shí)間,會(huì)嚴(yán)重影響建模效率。

        為了解決該問(wèn)題,本文提出了3D場(chǎng)景建模編輯環(huán)境,其核心思想是實(shí)現(xiàn)一系列編輯語(yǔ)言的操作,通過(guò)這些操作可以讓使用者通過(guò)類(lèi)似于函數(shù)調(diào)用的形式完成建模,再借助界面化的窗口將操作進(jìn)一步封裝,即可實(shí)現(xiàn)界面化的編輯環(huán)境。這種編輯環(huán)境的優(yōu)勢(shì)在于:一是用戶在通過(guò)界面化手段建模過(guò)程中,只需填寫(xiě)必要參數(shù),其他內(nèi)容全部自動(dòng)生成,提高了建模速度;二是自動(dòng)化的生成過(guò)程避免了直接編輯文本而導(dǎo)致的人為因素輸入錯(cuò)誤;三是界面化的建模結(jié)果相比純文本而言更加直觀、容易編輯。

        3.2 3D場(chǎng)景建模語(yǔ)言操作

        由于3D場(chǎng)景建模語(yǔ)言是基于BNF描述的,因此本文按照遞歸的方式定義了語(yǔ)言編輯的相關(guān)操作。這些編輯操作根據(jù)場(chǎng)景描述腳本的組成結(jié)構(gòu),可以劃分為三個(gè)部分:變量定義區(qū)編輯操作、場(chǎng)景對(duì)象模板定義區(qū)編輯操作、場(chǎng)景構(gòu)造腳本區(qū)編輯操作。

        以變量定義區(qū)中的部分操作為例進(jìn)行解釋?zhuān)兞慷x區(qū)中變量查詢操作的偽代碼描述如下:

        findVar(varDefArea,name)=begin

        VarDefination var;

        foreach(var in varDefArea)

        if (var.name==name)

        return var;

        endif

        endforeach

        return null;

        end

        變量定義區(qū)中修改變量名操作的偽代碼描述如下:

        modifyVarName(varDefArea,name,newName)=begin

        VarDefination finded;

        finded:=findVar(varDefArea,name);

        if (finded!=null)

        varDefArea:=varDefArea〗{finded};

        finded.name:=newName;

        varDefArea:=varDefArea ∪ {finded};

        endif

        end

        可以看到這些編輯操作實(shí)際上就是根據(jù)BNF規(guī)范和場(chǎng)景描述腳本的格式,直接進(jìn)行腳本生成操作,并且這些操作之間是可以進(jìn)行相互調(diào)用的,例如修改變量名稱(chēng)的編輯操作modifyVarName調(diào)用了查找變量的方法findVar。

        當(dāng)完成了對(duì)所有編輯操作的描述后,就可以將這些偽代碼在界面化編輯環(huán)境中實(shí)現(xiàn),并使用用戶界面(User Interface, UI)將這些操作進(jìn)行封裝供用戶調(diào)用,從而實(shí)現(xiàn)界面化建模的目的。通過(guò)界面化建模形成的場(chǎng)景描述腳本,將會(huì)通過(guò)2.2節(jié)中所提到的XML轉(zhuǎn)化規(guī)則自動(dòng)轉(zhuǎn)化成為XML格式的場(chǎng)景描述腳本,以便渲染程序讀取和分析。

        4 對(duì)比分析及實(shí)驗(yàn)結(jié)果

        4.1 功能對(duì)比

        本文以“中國(guó)殯葬公共服務(wù)平臺(tái)”項(xiàng)目中具有典型代表性的祭祀用品蠟燭、木桌、畫(huà)框以及火焰粒子這6種場(chǎng)景對(duì)象為例,分別應(yīng)用本方法與相關(guān)建模方法觀察建模能力[4-6,12]。其中,測(cè)試所使用的場(chǎng)景對(duì)象特征信息如表5所示,經(jīng)實(shí)際測(cè)試后得到了如表6所示的結(jié)果。

        表5 典型場(chǎng)景對(duì)象特征信息

        通過(guò)對(duì)比可以得到如下結(jié)論:本方法相對(duì)于現(xiàn)有方法進(jìn)一步強(qiáng)化了針對(duì)復(fù)雜場(chǎng)景對(duì)象屬性和特征的描述能力,在增強(qiáng)了新增數(shù)據(jù)類(lèi)型特性支持的同時(shí)完善了序列屬性、結(jié)構(gòu)體屬性類(lèi)型的描述;本建模方法在界面化建模支持程度上優(yōu)于先前方法;本建模方法基于抽象的建模結(jié)果通過(guò)自動(dòng)化轉(zhuǎn)化方法可以生成各種文本結(jié)構(gòu)下的建模結(jié)果,相比采用固定文本格式描述的先前方法而言通用性、靈活性更強(qiáng),可復(fù)用程度高。

        表6 本文建模方法與先前建模方法的功能對(duì)比結(jié)果

        4.2 應(yīng)用流程對(duì)比

        相對(duì)于現(xiàn)有建模方法直接對(duì)目標(biāo)場(chǎng)景特征從零構(gòu)造描述規(guī)則[10],以人工編寫(xiě)和檢查的方式生成場(chǎng)景描述文本這種方式而言,本文提出的建模方法流程雖然復(fù)雜一些,但具有更強(qiáng)的通用性、描述能力和界面建模支持特性,具體應(yīng)用流程如圖2中實(shí)線所示:一是針對(duì)目標(biāo)場(chǎng)景特征進(jìn)行分析,對(duì)本文所提出的建模語(yǔ)言BNF語(yǔ)法規(guī)則進(jìn)行擴(kuò)充,形成用于描述目標(biāo)場(chǎng)景的建模語(yǔ)言語(yǔ)法規(guī)則;二是基于建模語(yǔ)言及場(chǎng)景資源文件,在界面化建模環(huán)境中通過(guò)調(diào)用建模語(yǔ)言編輯操作完成場(chǎng)景描述腳本的編輯生成工作;三是依據(jù)XML轉(zhuǎn)化規(guī)則將場(chǎng)景描述腳本轉(zhuǎn)化為XML格式的描述信息;四是將XML文本輸入到渲染程序中,完成解析和虛擬場(chǎng)景的生成工作。

        圖2 本文方法和先前方法應(yīng)用流程比較

        4.3 應(yīng)用案例

        圖3展示了網(wǎng)絡(luò)祭祀中基于C# .Net開(kāi)發(fā)的界面化建模原型系統(tǒng)的啟動(dòng)效果,該系統(tǒng)從功能上驗(yàn)證了界面化建模的可行性并且可根據(jù)項(xiàng)目進(jìn)展動(dòng)態(tài)擴(kuò)充建模數(shù)據(jù)。圖3中可以看到基于形式化的建模語(yǔ)言規(guī)則信息以及建模場(chǎng)景資源信息已經(jīng)被載入到系統(tǒng)中。

        圖4展示了變量定義區(qū)的界面化編輯環(huán)境,通過(guò)該窗體可以創(chuàng)建、修改、刪除業(yè)務(wù)所需要的枚舉、集合類(lèi)型變量,并且可以向變量中添加所需的成員信息。系統(tǒng)會(huì)將這些變量臨時(shí)保存在內(nèi)存中,并在后續(xù)的場(chǎng)景對(duì)象模板的編輯過(guò)程中根據(jù)需要自動(dòng)提示用戶進(jìn)行選擇。

        圖3 界面化建模環(huán)境啟動(dòng)效果

        圖4 變量編輯窗口

        圖5展示了場(chǎng)景對(duì)象模板的界面化編輯環(huán)境,通過(guò)該窗體用戶可以創(chuàng)建所需類(lèi)型的場(chǎng)景對(duì)象模板,并通過(guò)雙擊該模板中的屬性信息進(jìn)行編輯,此時(shí)系統(tǒng)會(huì)根據(jù)屬性的類(lèi)型自動(dòng)打開(kāi)對(duì)應(yīng)類(lèi)型的修改窗口方便用戶完成編輯操作。圖6、圖7和圖8分別展示了鍵值屬性、序列屬性和結(jié)構(gòu)體屬性的界面化編輯窗口。

        圖5 場(chǎng)景對(duì)象模板編輯窗口

        圖6 場(chǎng)景對(duì)象模板鍵值屬性編輯窗口

        圖9展示了界面化編輯后的場(chǎng)景對(duì)象模板自動(dòng)轉(zhuǎn)化效果,可以看到所有界面化編輯產(chǎn)生的信息會(huì)以XML的形式導(dǎo)出存儲(chǔ)并等待建模過(guò)程使用。

        圖10為實(shí)際生成的一個(gè)典型場(chǎng)景的建模結(jié)果效果圖,可以看到窗體內(nèi)部不僅可以顯示文字貼圖等信息,還能夠進(jìn)行3D物體的動(dòng)態(tài)展示,以及可以交互的按鈕等內(nèi)容。

        圖7 場(chǎng)景對(duì)象模板序列屬性編輯窗口

        圖8 場(chǎng)景對(duì)象模板結(jié)構(gòu)體屬性編輯窗口

        圖9 場(chǎng)景對(duì)象模板X(qián)ML轉(zhuǎn)化效果預(yù)覽

        圖10 3D場(chǎng)景交互效果

        5 結(jié)語(yǔ)

        本文對(duì)于現(xiàn)有3D場(chǎng)景建模方法普遍存在的業(yè)務(wù)耦合度高、復(fù)雜場(chǎng)景對(duì)象屬性和特征描述能力不足的問(wèn)題,為解決像3D虛擬祭祀這類(lèi)構(gòu)成粒度細(xì)、對(duì)象屬性復(fù)雜的場(chǎng)景建模技術(shù)難題,提出了一種基于形式化的3D場(chǎng)景建模方法。通過(guò)引入場(chǎng)景對(duì)象模板、場(chǎng)景對(duì)象模板屬性等概念,對(duì)場(chǎng)景的構(gòu)成進(jìn)行抽象,并基于BNF規(guī)則提出了一種低耦合、描述手段豐富的場(chǎng)景建模語(yǔ)言語(yǔ)法規(guī)則定義;基于該語(yǔ)言進(jìn)一步地提出了XML轉(zhuǎn)化規(guī)則和界面化建模環(huán)境,以增強(qiáng)建模結(jié)果的可復(fù)用性、提高建模速度。最后通過(guò)對(duì)課題中典型的幾類(lèi)場(chǎng)景對(duì)象進(jìn)行建模,對(duì)比了本文提出的方法與其他方法并進(jìn)行了相關(guān)分析,證明了本文提出的方法在描述復(fù)雜場(chǎng)景對(duì)象屬性和特征時(shí)能力較強(qiáng),在降低業(yè)務(wù)耦合度、提高界面化建模支持方面也有一定的改進(jìn)。

        [11] XIONG W, JIN Y, LIU Z. Recognizing Chinese number and quantifier prefix to enhance statistical parser in machine translation [J]. Journal of Computers, 2014, 9(4): 867-874.

        [12] 徐俊杰,孫長(zhǎng)嵩,張安真.基于XML的三維場(chǎng)景數(shù)據(jù)的組織與表示模型[C] // 北京地區(qū)高校研究生學(xué)術(shù)交流會(huì)——通信與信息技術(shù)會(huì)議.北京:北京郵電大學(xué)出版社,2006:1542-1547.(XU J J, SUN C S, ZHANG A Z. Model of scene date organization and expression based on XML [C] // Beijing University Graduate Academic Exchange Conference—Communication and Information Technology Conference. Beijing: Beijing University of Posts and Telecommunications Press, 2006: 1542-1547.)

        猜你喜歡
        界面
        聲波在海底界面反射系數(shù)仿真計(jì)算分析
        微重力下兩相控溫型儲(chǔ)液器內(nèi)氣液界面仿真分析
        國(guó)企黨委前置研究的“四個(gè)界面”
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
        西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
        空間界面
        金秋(2017年4期)2017-06-07 08:22:16
        鐵電隧道結(jié)界面效應(yīng)與界面調(diào)控
        電子顯微打開(kāi)材料界面世界之門(mén)
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        色狠狠色噜噜av天堂一区| 久久精品中文字幕第一页| 国产一区二区三区免费小视频| 国产三级精品三级男人的天堂 | 美女高潮黄又色高清视频免费| 日日av拍夜夜添久久免费| 国产69口爆吞精在线视频喝尿 | 国产免费av片在线观看播放| 日韩av在线毛片| 白白白色视频在线观看播放 | 久久不见久久见免费影院| 宝贝把腿张开我要添你下边动态图| 久久精品国产亚洲综合色| 免费在线观看草逼视频| 一边摸一边抽搐一进一出视频| 青青草原精品99久久精品66 | 久久精品国产亚洲av高清三区 | 久久精品av在线观看| 午夜福利啪啪片| 国产精品短视频| 国产麻豆成人精品av| 亚洲精品乱码久久久久久| 骚小妹影院| 免费国产黄片视频在线观看| 一区二区三区日本视频| 成人爽a毛片免费视频| av人摸人人人澡人人超碰小说| 国产亚洲日韩AV在线播放不卡| 一区二区三区国产色综合| 久久久国产打桩机| 福利网址在线观看| 国产精品亚洲一区二区三区妖精| 黑人老外3p爽粗大免费看视频| 欧美交换配乱吟粗大25p| 亚洲日产无码中文字幕| 亚洲一区二区三区福利久久蜜桃 | 亚洲 自拍 另类小说综合图区| 免费看奶头视频的网站| 久久亚洲av熟女国产| 精品国偷自产在线视频九色 | 爱性久久久久久久久|