亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種虛擬現(xiàn)實(shí)軟件開放式開發(fā)系統(tǒng)及方法與流程

文檔序號(hào):11406804閱讀:960來源:國知局
一種虛擬現(xiàn)實(shí)軟件開放式開發(fā)系統(tǒng)及方法與流程

本發(fā)明屬于計(jì)算機(jī)軟件領(lǐng)域,涉及一種虛擬現(xiàn)實(shí)軟件開放式開發(fā)系統(tǒng)及方法。

現(xiàn)有技術(shù)

虛擬現(xiàn)實(shí)(virtualreality)是一種計(jì)算機(jī)軟件模擬技術(shù),以計(jì)算機(jī)軟件模擬真實(shí)世界的視覺和物理現(xiàn)象及其內(nèi)在機(jī)理。

現(xiàn)有的虛擬現(xiàn)實(shí)開發(fā)平臺(tái),如unity、unreal等,其開發(fā)及應(yīng)用流程如附圖1所示,包括3d模型導(dǎo)入、帖圖渲染、編寫程序代碼、編譯生成可執(zhí)行程序、安裝、使用、問題反饋、修改等環(huán)節(jié)。最終提交給用戶的主要是執(zhí)行程序(exe文件)、函數(shù)庫,以及配套的3d模型數(shù)據(jù)及其貼圖。

從軟件結(jié)構(gòu)上來說,所有被開發(fā)的功能算法、數(shù)據(jù)結(jié)構(gòu)等全部都打包封裝在exe文件中,對(duì)應(yīng)用程序的用戶是不可見的。因此,在上述開發(fā)流程中,用戶只參與軟件的使用和問題反饋兩個(gè)環(huán)節(jié),其它全部由專業(yè)的軟件開發(fā)者完成。這種開發(fā)者與使用者分離的軟件開發(fā)與應(yīng)用模式,具有開發(fā)與應(yīng)用關(guān)系清晰、軟件功能一致性好的優(yōu)點(diǎn)。

而在虛擬現(xiàn)實(shí)應(yīng)用領(lǐng)域,行業(yè)用戶的需求往往是非常個(gè)性化的。例如工業(yè)產(chǎn)品的虛擬仿真培訓(xùn)系統(tǒng),每一款都需要進(jìn)行個(gè)性化定制。而現(xiàn)有的開發(fā)模式下,用戶無法對(duì)軟件進(jìn)行自主開發(fā)或修改,哪怕是一個(gè)簡單的功能需求發(fā)生變化,都需要找到專業(yè)的開發(fā)者來完成,并生成不同的執(zhí)行程序(軟件版本)返回給用戶,導(dǎo)致對(duì)軟件個(gè)性化需求的響應(yīng)速度慢、定制成本高、版本管理困難,阻礙了虛擬現(xiàn)實(shí)技術(shù)在各行業(yè)的推廣。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有虛擬現(xiàn)實(shí)軟件開發(fā)方法存在的問題,我們提出并實(shí)現(xiàn)一種虛擬現(xiàn)實(shí)軟件開放式開發(fā)系統(tǒng)及其方法,旨在實(shí)現(xiàn)用戶可隨時(shí)隨地自行修改甚至開發(fā)虛擬現(xiàn)實(shí)軟件的功能。其技術(shù)方案如下。

本發(fā)明的一種虛擬現(xiàn)實(shí)軟件開放式開發(fā)系統(tǒng)包括:

編譯執(zhí)行程序,對(duì)虛擬現(xiàn)實(shí)應(yīng)用軟件的功能描述數(shù)據(jù)進(jìn)行解讀,并根據(jù)其給出的邏輯和指令,調(diào)用3d模型、以及函數(shù)庫中的相關(guān)函數(shù),完成對(duì)軟件功能的執(zhí)行;

功能描述數(shù)據(jù),以約定的協(xié)議,存貯某一虛擬現(xiàn)實(shí)應(yīng)用軟件的所有功能描述,即所有功能所對(duì)應(yīng)的算法、數(shù)據(jù)結(jié)構(gòu)、調(diào)用函數(shù)的描述;

功能編輯器,用于編輯和生成所述的功能描述數(shù)據(jù);

3d模型庫,包含3d模型和3d場景;

函數(shù)庫。

本發(fā)明的虛擬現(xiàn)實(shí)軟件開放式開發(fā)系統(tǒng)的開發(fā)方法包括如下步驟:

1)場景構(gòu)建:導(dǎo)入3d模型,并進(jìn)行貼圖渲染;

2)功能開發(fā):使用功能編輯器,將所要開發(fā)的虛擬現(xiàn)實(shí)軟件功能的算法和數(shù)據(jù)結(jié)構(gòu)編輯編寫為功能描述數(shù)據(jù),在編寫過程中,隨時(shí)調(diào)用編譯執(zhí)行程序,對(duì)功能描述數(shù)據(jù)進(jìn)行解釋和執(zhí)行,使用戶可實(shí)時(shí)查看開發(fā)效果,以便調(diào)試;功能描述數(shù)據(jù)編寫完成后,保存,

3)交付安裝:開發(fā)結(jié)束后,交付給用戶的是一個(gè)與具體應(yīng)用軟件功能無關(guān)的編譯執(zhí)行程序,與具體應(yīng)用軟件局部相關(guān)的函數(shù)庫,與應(yīng)用軟件完全相關(guān)的功能描述數(shù)據(jù)、3d場景。

4)軟件使用:用戶啟動(dòng)編譯執(zhí)行程序后,編譯執(zhí)行程序按需讀取部分或全部功能描述數(shù)據(jù),對(duì)其中的功能描述進(jìn)行解讀和編譯,之后,按照解讀結(jié)果所給出的邏輯,調(diào)用3d模型,并從函數(shù)庫中調(diào)用功能描述數(shù)據(jù)中指定的函數(shù),并執(zhí)行其所描述的軟件功能;

5)軟件修改:當(dāng)軟件功能需要修改時(shí),直接使用功能編輯器修改功能描述數(shù)據(jù)并加以保存;啟動(dòng)編譯執(zhí)行程序后,重新載入修改后的功能描述數(shù)據(jù),軟件的功能即相應(yīng)發(fā)生改變,從而實(shí)現(xiàn)軟件功能開發(fā)的開放性,即任何人都可以隨時(shí)對(duì)軟件進(jìn)行修改。

所述的與具體應(yīng)用軟件局部相關(guān)的函數(shù)庫可以隨時(shí)擴(kuò)展,擴(kuò)展方法為:1)用戶采用通用的計(jì)算機(jī)程序開發(fā)出功能函數(shù),然后在現(xiàn)有的計(jì)算機(jī)編譯環(huán)境中編譯生成(或添加到)函數(shù)庫;2)為該函數(shù)命名其對(duì)應(yīng)的功能描述關(guān)鍵詞,并添加到功能描述數(shù)據(jù)詞庫中,并建立映射關(guān)系。

本發(fā)明的核心在于將應(yīng)用軟件軟件的具體功能從可執(zhí)行(exe)程序中分離出來,放到開放式的功能描述數(shù)據(jù)中,形成一個(gè)“組合工具”式的軟件開發(fā)和應(yīng)用架構(gòu)。即使用一個(gè)統(tǒng)一的編譯執(zhí)行程序,搭配不同的功能描述數(shù)據(jù),產(chǎn)生不同的軟件功能。其技術(shù)效果表現(xiàn)在:

1)任何用戶可在任何時(shí)間、任何地點(diǎn)通過編輯功能描述數(shù)據(jù),對(duì)軟件功能進(jìn)行修改而無需重新編譯,從而解決軟件個(gè)性化開發(fā)與應(yīng)用的“最后一公里”問題,實(shí)現(xiàn)“千人千面”式的軟件個(gè)性化開發(fā)。

2)因?yàn)椴捎昧私y(tǒng)一的可執(zhí)行程序,因此軟件的分發(fā)管理也變得更加簡單。用戶只需要安裝一個(gè)程序,通過下載不同的功能描述數(shù)據(jù)包,即可運(yùn)行不同的軟件。而經(jīng)過用戶自行修改的個(gè)性化功能數(shù)據(jù)包,則由用戶自行管理即可。

3)與可執(zhí)行程序(exe文件)不同,功能描述數(shù)據(jù)數(shù)據(jù)具有非常好的開放性,便于隨時(shí)進(jìn)行共享、引用、繼承、組合,因此更加有利于協(xié)同開發(fā),實(shí)現(xiàn)隨時(shí)、隨地、人人的3a(anytime、anywhere、anybody)的開發(fā)模式。

附圖說明

圖1為現(xiàn)有虛擬現(xiàn)實(shí)軟件開發(fā)及應(yīng)用流程;

圖2本發(fā)明涉及的虛擬現(xiàn)實(shí)開發(fā)及應(yīng)用架構(gòu);

圖3本發(fā)明涉及的虛擬現(xiàn)實(shí)軟件開發(fā)及應(yīng)用流程。

具體實(shí)施方式

本發(fā)明的核心思想,是將虛擬現(xiàn)實(shí)軟件中用于對(duì)功能進(jìn)行表達(dá)的算法、數(shù)據(jù)結(jié)構(gòu)等,以外部數(shù)據(jù)的方式,從exe程序中分離出來,而非像現(xiàn)有的應(yīng)用程序一樣,封裝在exe程序中。其開發(fā)及應(yīng)用架構(gòu)如圖2所示。

除了常規(guī)的3d模型庫、函數(shù)庫之外,其中的關(guān)鍵構(gòu)件及其實(shí)現(xiàn)方案是:

1)功能描述數(shù)據(jù):可以是一組數(shù)據(jù)文件(如各類文本或二進(jìn)制文件),也可以是數(shù)據(jù)庫中的數(shù)據(jù)包。它以約定的協(xié)議,存貯了某個(gè)虛擬現(xiàn)實(shí)應(yīng)用軟件的所有功能描述,即所有功能所對(duì)應(yīng)的算法、數(shù)據(jù)結(jié)構(gòu)、調(diào)用函數(shù)的描述,其作用類似于通常軟件開發(fā)架構(gòu)中的源代碼。功能描述數(shù)據(jù)是由功能編輯器來進(jìn)行編寫開發(fā)的。

2)編譯執(zhí)行程序:是一個(gè)統(tǒng)一的、與具體的應(yīng)用軟件無關(guān)的可執(zhí)行(exe)程序,負(fù)責(zé)按約定的協(xié)議,對(duì)某一個(gè)應(yīng)用軟件的功能描述數(shù)據(jù)進(jìn)行解讀,并根據(jù)其給出的邏輯和指令,調(diào)用3d模型,以及函數(shù)庫中的相關(guān)函數(shù),完成對(duì)軟件功能的執(zhí)行。與通常的軟件開發(fā)及編譯工具所不同的是,本發(fā)明涉及的編譯執(zhí)行程序相當(dāng)于“編譯器+執(zhí)行程序”,并且是在某一應(yīng)用程序運(yùn)行時(shí)才對(duì)相應(yīng)的功能描述數(shù)據(jù)文件進(jìn)行編譯和執(zhí)行。

3)功能編輯器:用于編輯和生成功能描述數(shù)據(jù)。當(dāng)功能描述數(shù)據(jù)是文本文件時(shí),軟件功能編輯器就相當(dāng)于一個(gè)專用的文本編輯器,理論上甚至可以直接使用常規(guī)的文本編輯器。在開發(fā)過程中,功能編輯器同步調(diào)用編譯執(zhí)行程序,以便隨時(shí)查看開發(fā)效果,用于開發(fā)調(diào)試。

基于這一架構(gòu),本發(fā)明提出的虛擬現(xiàn)實(shí)開發(fā)與應(yīng)用流程如圖3所示。

1)場景構(gòu)建:開發(fā)者需要導(dǎo)入3d模型,并進(jìn)行貼圖渲染。

2)功能開發(fā):開發(fā)者使用功能編輯器,將所要開發(fā)的虛擬現(xiàn)實(shí)軟件功能的算法和數(shù)據(jù)結(jié)構(gòu)編輯編寫為功能描述數(shù)據(jù),編寫過程與通常的計(jì)算機(jī)程序編寫方式相似。在編寫過程中,隨時(shí)調(diào)用編譯執(zhí)行程序,對(duì)功能描述數(shù)據(jù)進(jìn)行解釋和執(zhí)行,使用戶可實(shí)時(shí)查看開發(fā)效果,以便調(diào)試。功能描述數(shù)據(jù)編寫完成后,只需要保存即可,而不需要進(jìn)行編譯生成可執(zhí)行文件。

3)交付安裝:開發(fā)結(jié)束后,交付給用戶的是一個(gè)與具體應(yīng)用軟件無關(guān)的、統(tǒng)一的編譯執(zhí)行程序(exe文件),與具體應(yīng)用軟件局部相關(guān)的函數(shù)庫(可能有應(yīng)用軟件專用的函數(shù)庫),與應(yīng)用軟件完全相關(guān)的功能描述數(shù)據(jù)、3d場景。

4)軟件使用:用戶啟動(dòng)編譯執(zhí)行程序后,它立即按需讀取(節(jié)省運(yùn)算開銷)部分或全部功能描述數(shù)據(jù),對(duì)其中的功能描述進(jìn)行解讀和編譯,解讀的內(nèi)容包括運(yùn)算邏輯(算法)、變量、函數(shù)等。之后,按照解讀結(jié)果所給出的邏輯,調(diào)用3d模型,并從函數(shù)庫中調(diào)用功能描述數(shù)據(jù)中指定的函數(shù),并執(zhí)行其所描述的軟件功能。例如,在一個(gè)虛擬現(xiàn)實(shí)場景中有一個(gè)虛擬的電燈3d模型,當(dāng)我們用鼠標(biāo)左鍵點(diǎn)擊它時(shí),電燈打開。這個(gè)功能可描述為:ifmouse_left_click(light)thenswitch(light)。在這句描述中,if…then…是邏輯(算法),mouse_left_click和switch是函數(shù)庫中相關(guān)函數(shù)對(duì)應(yīng)的關(guān)鍵詞,而light則是電燈的識(shí)別名和狀態(tài)變量(初始值可設(shè)為0,表示關(guān)閉)。編譯執(zhí)行程序首先對(duì)這個(gè)描述中的邏輯進(jìn)行解讀,而后調(diào)用mous_left_click指向的函數(shù),監(jiān)控鼠標(biāo)行為。當(dāng)探測到鼠標(biāo)點(diǎn)擊light所代表的對(duì)象(電燈)時(shí),立即調(diào)用并執(zhí)行switch指向的開燈函數(shù),使該函數(shù)中的參數(shù)light所指向的對(duì)象(電燈)的3d模型呈現(xiàn)打開(高亮)的效果,同時(shí)將light狀態(tài)值切換為1,表示打開的狀態(tài)。

5)軟件修改:由于應(yīng)用軟件開發(fā)的結(jié)果是以功能描述數(shù)據(jù)存放的,不需要事先編譯生成可執(zhí)行程序(exe文件)。因此,當(dāng)軟件功能需要修改時(shí),即使是應(yīng)用軟件的用戶也可直接使用功能編輯器修改功能描述數(shù)據(jù)并加以保存。啟動(dòng)編譯執(zhí)行程序后,重新載入修改后的功能描述數(shù)據(jù),軟件的功能即相應(yīng)發(fā)生改變,從而實(shí)現(xiàn)軟件功能開發(fā)的開放性,即任何人都可以隨時(shí)對(duì)軟件進(jìn)行修改。

在本發(fā)明中,無論是什么虛擬現(xiàn)實(shí)軟件,其運(yùn)行都是通過編譯執(zhí)行程序進(jìn)行的。也就是說,各種不同的虛擬現(xiàn)實(shí)軟件采用的是一個(gè)統(tǒng)一的可執(zhí)行程序,是功能描述數(shù)據(jù)的不同造成了不同軟件的功能差異。

根據(jù)不同的開發(fā)需求,功能描述數(shù)據(jù)可以采用不同的格式,如文本、電子表、數(shù)據(jù)庫等,彼此之間通過格式轉(zhuǎn)換器相互轉(zhuǎn)化。例如,當(dāng)我們需要通過網(wǎng)絡(luò)進(jìn)行協(xié)同開發(fā)時(shí),可將功能描述數(shù)據(jù)以數(shù)據(jù)庫的方式進(jìn)行存貯和管理,而在網(wǎng)絡(luò)斷開或單機(jī)版開發(fā)時(shí),功能描述文件則可能就是本地終端上的文本文件。

3d模型庫可以隨時(shí)擴(kuò)展,其實(shí)現(xiàn)方法為:1)用戶采用第三方建模工具完成3d模型并進(jìn)行渲染。2)將3d模型以通用格式(如.fbx)存放在指定的文件夾或數(shù)據(jù)庫中,并填寫模型描述表。3)根據(jù)模型描述表,由系統(tǒng)自動(dòng)修改3d模型庫的索引目錄。

函數(shù)庫有兩種基本的創(chuàng)建方式,1)基于opengl或c3d等圖形底層自行開發(fā)。2)直接采用現(xiàn)有的第三方虛擬現(xiàn)實(shí)引擎函數(shù)庫,實(shí)現(xiàn)跨引擎開發(fā)。同時(shí),函數(shù)庫也可以隨時(shí)擴(kuò)展,其步驟是:1)用戶采用通用的計(jì)算機(jī)程序開發(fā)出功能函數(shù),然后在現(xiàn)有的計(jì)算機(jī)編譯環(huán)境中編譯生成(或添加到)函數(shù)庫。2)為該函數(shù)命名其對(duì)應(yīng)的功能描述關(guān)鍵詞,并添加到功能描述數(shù)據(jù)詞庫中,并建立映射(指向)關(guān)系。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1