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

        ?

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

        2018-10-16 08:31:20徐曉丹李秉杰李伯森
        計算機應(yīng)用 2018年9期
        關(guān)鍵詞:鍵值語句對象

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

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

        0 引言

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

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

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

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

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

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

        1 3D場景建模語言

        1.1 3D場景建模語言語法規(guī)則定義

        本文基于ISO/IEC 14977標準化文檔中擴展BNF規(guī)則給出了3D場景建模語言的語法規(guī)則[9]。其中擴展BNF規(guī)則中的符號如表1所示。

        表1 擴展BNF符號表

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

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

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

        變量定義=變量名,變量類型,{變量值}

        變量名=標識符

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

        變量值=終結(jié)符

        場景對象模板定義區(qū)= {場景對象模板}

        場景對象模板=模板ID,場景對象類型,缺省標記,{屬性語句}

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

        鍵值屬性語句=語句基本信息,屬性類型,屬性值

        序列屬性語句=語句基本信息,屬性類型,{屬性值}

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

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

        屬性值=標識符

        語句基本信息=屬性名,語句類型,幫助信息

        屬性名=標識符

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

        幫助信息=屬性別名, 屬性描述, 屬性分類

        屬性別名=標識符

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

        屬性分類=標識符

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

        最小值=終結(jié)符

        最大值=終結(jié)符

        數(shù)據(jù)類型=基礎(chǔ)數(shù)據(jù)類型|場景對象類型|擴展數(shù)據(jù)類型

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

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

        場景對象類型="Unit" | "Particle" | "Capacity" | "Item"

        擴展數(shù)據(jù)類型="ModelAsset" | "ParticleAsset" | "AudioAsset" | "MaterialAsset" | "TextureAsset"

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

        場景對象=索引ID, 模板ID, {特化信息}

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

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

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

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

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

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

        字母="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"

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

        1.2 語言設(shè)計

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

        1.2.1 場景對象模板概念

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

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

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

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

        1.2.2 場景對象模板屬性概念

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        3.1 界面化建模的重要性

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

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

        3.2 3D場景建模語言操作

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

        以變量定義區(qū)中的部分操作為例進行解釋,變量定義區(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

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

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

        4 對比分析及實驗結(jié)果

        4.1 功能對比

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

        表5 典型場景對象特征信息

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

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

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

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

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

        4.3 應(yīng)用案例

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

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

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

        圖4 變量編輯窗口

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

        圖5 場景對象模板編輯窗口

        圖6 場景對象模板鍵值屬性編輯窗口

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

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

        圖7 場景對象模板序列屬性編輯窗口

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

        圖9 場景對象模板XML轉(zhuǎn)化效果預(yù)覽

        圖10 3D場景交互效果

        5 結(jié)語

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

        [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] 徐俊杰,孫長嵩,張安真.基于XML的三維場景數(shù)據(jù)的組織與表示模型[C] // 北京地區(qū)高校研究生學(xué)術(shù)交流會——通信與信息技術(shù)會議.北京:北京郵電大學(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.)

        猜你喜歡
        鍵值語句對象
        神秘來電
        睿士(2023年2期)2023-03-02 02:01:09
        非請勿進 為注冊表的重要鍵值上把“鎖”
        重點:語句銜接
        攻略對象的心思好難猜
        意林(2018年3期)2018-03-02 15:17:24
        精彩語句
        一鍵直達 Windows 10注冊表編輯高招
        電腦愛好者(2017年9期)2017-06-01 21:38:08
        基于熵的快速掃描法的FNEA初始對象的生成方法
        區(qū)間對象族的可鎮(zhèn)定性分析
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        作文語句實錄
        国产va免费精品高清在线观看| 一区二区三区四区国产亚洲| 亚洲av人片在线观看| 久久久久成人精品无码中文字幕| 国产在线无码制服丝袜无码| 精品一区二区三区四区少妇 | 国产一区二区三区中出| 人妻丰满熟妇aⅴ无码| 东京热加勒比无码少妇| 国产99页| 亚洲一区二区岛国高清| 无码人妻精品中文字幕| 亚洲欧美日韩中文在线制服| 日韩久久久黄色一级av| av中文字幕性女高清在线| 国产成人综合日韩精品无码| 国产高潮国产高潮久久久| 久久久久久岛国免费网站| av天堂网手机在线观看| 天天躁夜夜躁狠狠躁2021a2| 亚洲熟女少妇一区二区| 亚洲熟妇夜夜一区二区三区| 国内嫩模自拍偷拍视频| 亚洲精品无码久久久| 国产久视频国内精品999| 亚洲中文字幕高清乱码毛片| 婷婷久久国产综合精品| 最近最新中文字幕| 男女好痛好深好爽视频一区| 中文字幕色资源在线视频| 久久久中日ab精品综合| 最近中文av字幕在线中文 | 欧美亚洲日韩国产区| 成年人男女啪啪网站视频| 久久久国产精品123| 中国熟妇人妻xxxxx| 午夜影院91| 久久精品国产69国产精品亚洲| 妺妺窝人体色www聚色窝| 亚洲国产夜色在线观看| 精品亚洲av一区二区|