延長(zhǎng)攪拌機(jī)外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯
延長(zhǎng)攪拌機(jī)外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯,延長(zhǎng),攪拌機(jī),外文,文獻(xiàn),翻譯,中英文
附錄一:
延長(zhǎng)攪拌機(jī):
摘要-在本文中,我們目前的工作是拓展一個(gè)眾所周知的三維圖形建模-攪拌機(jī),來(lái)支持觸覺(jué)建模和繪制。這種延長(zhǎng)攪拌機(jī)命名為 HAMLAT(觸覺(jué)應(yīng)用標(biāo)記語(yǔ)言創(chuàng)作工具) 。我們描述修改和添加攪拌器的源代碼,其中已使用創(chuàng)造 HAMLAT 此外,我們提出和討論設(shè)計(jì)的決定時(shí)所用的發(fā)展中的 HAMLAT, 也是一個(gè)“路線圖”的實(shí)施 ,其中描述了攪拌器的源代碼的改變。最后,我們的結(jié)論是討論我們未來(lái)的發(fā)展及研究途徑。
關(guān)鍵詞-觸覺(jué),HAM,圖形建模,攪拌器, 虛擬環(huán)境。一.介紹
A. 動(dòng)機(jī)
越來(lái)越多的通過(guò)觸覺(jué)的方式在人類(lèi)-電腦的互動(dòng)方式的應(yīng)用造成了對(duì)新的工具的巨大的需求,這些新的工具可以幫助新手用戶寫(xiě)作和編輯觸覺(jué)應(yīng)用。目前,觸覺(jué)的應(yīng)用發(fā)展過(guò)程是一個(gè)耗時(shí)的經(jīng)歷,它需要編程知識(shí)。觸覺(jué)應(yīng)用的復(fù)雜性,從一個(gè)事實(shí),即觸覺(jué)應(yīng)用組件(如觸覺(jué)的空氣污染指數(shù),設(shè)備,該觸覺(jué)描寫(xiě)算法等)需要互動(dòng)圖形組件, 以實(shí)現(xiàn)同步。
此外,一個(gè)缺少應(yīng)用可能性,因?yàn)閼?yīng)用是緊耦合到特定的裝置必須使用其相應(yīng)的空氣污染指數(shù)。因此,設(shè)備和空氣污染指數(shù)的異質(zhì)性,導(dǎo)致兩個(gè)研究人員和開(kāi)發(fā)人員分裂和迷失方向。在檢查所有需要考慮的事時(shí),有對(duì)創(chuàng)作工具明確的需要,可以建立觸覺(jué)的應(yīng)用, 也可以隱藏在應(yīng)用程序建模的編程(如空氣污染指數(shù),裝置,或虛擬模型) 。本文介紹了技術(shù)發(fā)展的觸覺(jué)應(yīng)用標(biāo)記語(yǔ)言創(chuàng)作工具(HAMLAT)。它的用意是解釋設(shè)計(jì)
決定用于發(fā)展 HAMLAT,還提供了執(zhí)行“路線圖”的一個(gè)應(yīng)用,描述該項(xiàng)目的源代碼。B 攪拌器
HAMLAT 是以攪拌器[ 1 ]軟件套件為基礎(chǔ), 這是一個(gè)開(kāi)放源碼的三維建模套件擁有豐富的功能集。它有一個(gè)先進(jìn)的用戶界面,它以它的高效率和靈活性,以及它的支援多種檔案格式,物理引擎,調(diào)制解調(diào)器等功能出名。
由于攪拌器的開(kāi)放式體系結(jié)構(gòu)和支持共同的基礎(chǔ),它被選定為發(fā)展 of hamlet 平臺(tái)的首選。攪拌器開(kāi)放資源的性質(zhì),意味著 HAMLAT 可以輕易地利用其現(xiàn)有的功能和集中討論相結(jié)合的特點(diǎn),使其成為一個(gè)完整的觸覺(jué)-可視化建模工具,發(fā)展為一個(gè)三維建模平臺(tái),從無(wú)到有,需要相當(dāng)多的發(fā)展時(shí)間和專(zhuān)門(mén)技術(shù),以便達(dá)到攪拌機(jī)水平的功能,。同時(shí),我們可以利用由從它的源代碼到 HAMLAT 源代碼樹(shù)的合并的變化改善未來(lái)的攪拌器
HAMLAT 建立在現(xiàn)有攪拌器組件,如用戶界面和編輯工具,通過(guò)加入新組建,其中側(cè)重在一個(gè)三維場(chǎng)景用于代表修改和渲染觸覺(jué)特性的物體。HAMLAT 用攪拌器并以此為基礎(chǔ),我們希望建立一個(gè)三維觸覺(jué)建模工具,它具有成熟等特點(diǎn),并結(jié)合攪拌器與 of hepatic 渲染的新穎性。
在編寫(xiě)本報(bào)告的時(shí)候,HAMLAT 是基于攪拌器 2.43 版本的源代碼。
C.項(xiàng)目目標(biāo)
如前所述,HAMLAT 項(xiàng)目的總體目標(biāo)是為了產(chǎn)生一個(gè)拋光應(yīng)用軟件,它結(jié)合了調(diào)制解調(diào)器圖形建模工具的特點(diǎn)與觸覺(jué)繪制技術(shù)。HAMLAT 有三維圖形建模軟件包“外觀與感覺(jué)”,但是還有另外的功能,例如,作為觸覺(jué)渲染和觸覺(jué)直觀的描述。這個(gè)允許藝術(shù)家,建造家,和開(kāi)發(fā)商產(chǎn)生逼真的三維觸覺(jué) -可視化虛擬環(huán)境。 一個(gè) HAMLAT 高層次的框圖結(jié)果,在圖 1 中表明。它說(shuō)明了在觸覺(jué)模型的數(shù)據(jù)流,HAMLAT 協(xié)助建模者,或應(yīng)用開(kāi)發(fā)商,在建設(shè)觸覺(jué) -視覺(jué)應(yīng)用,可存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中供日后由另一觸覺(jué)的應(yīng)用檢索。由觸覺(jué)-視覺(jué)的應(yīng)用我們參考任何在視覺(jué)上顯示三維場(chǎng)景的軟件,hectically 給一個(gè)用戶一個(gè)虛擬的設(shè)置。一個(gè) XML 文件的格式,所謂 HAML[ 2 ] ,是用來(lái)描述三維場(chǎng)景和儲(chǔ)存觸覺(jué)-視覺(jué)環(huán)境,通過(guò)興建一建模后播放給最終用戶。
傳統(tǒng)上,建設(shè)觸覺(jué) -視覺(jué)環(huán)境已需要一個(gè)強(qiáng)有力的技術(shù)和方案的背景。 繪制三維場(chǎng)景的任務(wù)是繁瑣的。所以在現(xiàn)場(chǎng)觸覺(jué)性能必須分配給個(gè)人,為完成這項(xiàng)任務(wù),目前有幾個(gè)問(wèn)題。HAMLAT 橋梁,這個(gè)差距通過(guò)融入 helm 框架和提供完整的解決方案,發(fā)展觸覺(jué)-視覺(jué)應(yīng)用,無(wú)需編程知識(shí)。
其余的文件,組織情況如下:在第 2 部分中,我們目前建議的架構(gòu)擴(kuò)展并討論設(shè)計(jì)的限制。在第 3 部分中介紹執(zhí)行的細(xì)節(jié),以及觸覺(jué)性使內(nèi)部的攪拌器框架能如何補(bǔ)充和拓展。第 4 部分我們討論工作中有關(guān)的問(wèn)題和今后的工作途徑。
二. System over view and architecture
攪拌器的設(shè)計(jì)理念,是基于三個(gè)主要任務(wù):數(shù)據(jù)存儲(chǔ),編輯和可視化。據(jù)遺留的文件[ 3 ] ,它沿襲了開(kāi)發(fā)周期為三維建模數(shù)據(jù)管道可視 - 編輯。一個(gè)三維場(chǎng)景代表的是在該攪拌器結(jié)構(gòu)中使用數(shù)據(jù)結(jié)構(gòu)。該建模者觀看現(xiàn)場(chǎng),進(jìn)行更改,使用編輯界面直接修改底層的數(shù)據(jù)結(jié)構(gòu),然后循環(huán)重復(fù)。
為了更好地了解這方面的發(fā)展周期,考慮在攪拌器中一個(gè)三維物體的代表體。一個(gè)三維物體可代表一個(gè)數(shù)組的頂點(diǎn),其中有舉辦了作為一個(gè)多邊形網(wǎng)格。用戶可以選擇運(yùn)作的任何數(shù)據(jù)集。編輯的任務(wù)可能包括行動(dòng),旋轉(zhuǎn),稱重和翻譯頂點(diǎn),或者從四到三角
拓?fù)浣Y(jié)構(gòu),也許重新嚙合算法,“清理”多余的頂點(diǎn)和變換,。數(shù)據(jù)可視化使用圖形三維渲染這是能夠顯示的對(duì)象作為一個(gè)線框或作為一個(gè)陰影,固體表面可視化是必要的,就編輯整體而言便見(jiàn)影響,總而言之,這個(gè)例子定義設(shè)計(jì)背后是攪拌器的建筑理念。
在攪拌機(jī),數(shù)據(jù)是作為一個(gè)有組織的一系列名單和相應(yīng)的數(shù)據(jù)類(lèi)型相結(jié)合,與項(xiàng)目之間的聯(lián)系在每份名單中,從簡(jiǎn)單的結(jié)構(gòu)中創(chuàng)造復(fù)雜的場(chǎng)景,這使得數(shù)據(jù)元素,在每個(gè)清單都可以重復(fù)使用,從而減少整體的存儲(chǔ)需求。舉例來(lái)說(shuō),網(wǎng)格可能與多個(gè)現(xiàn)場(chǎng)的物體相連接,但
位置和方向可能會(huì)改變,而每一個(gè)物件和拓?fù)浣Y(jié)構(gòu)的網(wǎng)格保持不變。說(shuō)明該組織的數(shù)據(jù)結(jié)構(gòu)和重用現(xiàn)場(chǎng)的要素是在如圖 2 中所示。一個(gè)現(xiàn)場(chǎng)物件連結(jié)三個(gè)對(duì)象,其中每個(gè)鏈接到兩個(gè)多邊形網(wǎng)格。該網(wǎng)格也都有一個(gè)共同的物質(zhì)財(cái)產(chǎn)。整個(gè)現(xiàn)場(chǎng)呈現(xiàn)的由數(shù)個(gè)可視化現(xiàn)場(chǎng)的屏幕到一個(gè)網(wǎng)絡(luò)上。
我們采用攪拌器的設(shè)計(jì)方法,為我們創(chuàng)作工具。數(shù)據(jù)結(jié)構(gòu)用來(lái)代表物體在一個(gè)三維場(chǎng)景已擴(kuò)大到包括該領(lǐng)域的觸覺(jué)特性(例如,剛度, 阻尼);用戶界面組件(例如,按鈕面板)
允許建模者改變對(duì)象屬性而得到更新,包括支持修改觸覺(jué)性能的一個(gè)對(duì)象。此外, 互動(dòng)觸覺(jué) -視覺(jué)渲染已實(shí)施,以顯示三維場(chǎng)景生動(dòng)和 hectically ,反饋現(xiàn)場(chǎng)有關(guān)情況即時(shí)提供給建模者或藝術(shù)家。
在現(xiàn)在的 HAMLAT 的版本中,攪拌機(jī)的框架的寫(xiě)稿包括如下:
* 數(shù)據(jù)結(jié)構(gòu)代表觸覺(jué)性能,
* 編輯界面為了修改觸覺(jué)性能,
* 外部轉(zhuǎn)譯為展示及預(yù)覽啟用的場(chǎng)面,
* 腳本讓場(chǎng)面擬進(jìn)口/出口以 HAMLAT 的檔案格式。
概述了攪拌器框架的變化,在圖 3 中所示。與 HAMLAT 有關(guān)的組建是灰色的陰影。HAMLAT 建立在現(xiàn)有攪拌器子系統(tǒng)上,延長(zhǎng)他們是為了為觸覺(jué)建模。觸覺(jué)和動(dòng)覺(jué)線索, 顯示由于與虛擬物體互動(dòng),在通常提供的基礎(chǔ)上,幾何的網(wǎng)格,無(wú)損檢測(cè)存儲(chǔ)在此數(shù)據(jù)類(lèi)型。現(xiàn)場(chǎng)的其他部件,如燈光,照相機(jī),或線條不能直觀地提供使用力反饋觸覺(jué)設(shè)備, 但并不是現(xiàn)在觸覺(jué)設(shè)計(jì)的興趣所在。
增強(qiáng)版的網(wǎng)格數(shù)據(jù)結(jié)構(gòu)如圖 4 所示。它包含的領(lǐng)域頂點(diǎn)和面對(duì)數(shù)據(jù),再加上一些特殊的自定義數(shù)據(jù)領(lǐng)域,允許數(shù)據(jù)被儲(chǔ)存到/來(lái)自磁盤(pán)和內(nèi)存。我們已修改這個(gè)數(shù)據(jù)類(lèi)型, 包括一個(gè)指針,以 mastics 數(shù)據(jù)結(jié)構(gòu),儲(chǔ)存觸覺(jué)性能如剛度,阻尼和摩擦,為網(wǎng)格元素
(圖 5 ) 。
A2.編輯網(wǎng)絡(luò)數(shù)據(jù)類(lèi)型
值得注意的是網(wǎng)絡(luò)數(shù)據(jù)類(lèi)型由一個(gè)固定的數(shù)據(jù)類(lèi)型,名字叫編輯網(wǎng)絡(luò),它在編輯網(wǎng)絡(luò)時(shí)使用,它包含了定點(diǎn),邊緣,和全局網(wǎng)絡(luò)的面對(duì)數(shù)據(jù)的復(fù)件。當(dāng)用戶轉(zhuǎn)到編輯代碼時(shí),攪拌機(jī)把數(shù)據(jù)從一個(gè)網(wǎng)絡(luò)復(fù)制到一個(gè)編輯網(wǎng)絡(luò),當(dāng)編輯結(jié)束,那么數(shù)據(jù)就復(fù)制回去。
必須注意確保觸覺(jué)數(shù)據(jù)結(jié)構(gòu)在復(fù)制的過(guò)程中保持完整,編輯網(wǎng)絡(luò)沒(méi)有轉(zhuǎn)變成包含觸
8
覺(jué)數(shù)據(jù)的復(fù)件,但是這個(gè)可以在未來(lái)的版本中改變(如果這個(gè)功能被要求的話),這個(gè)編輯方式主要應(yīng)用在修改地質(zhì)學(xué)和地理學(xué)網(wǎng)絡(luò),不是觸覺(jué)和圖像的拓展的特征。
A3.觸覺(jué)特性
在這個(gè)部分中,我們簡(jiǎn)要的討論觸覺(jué)特性,這個(gè)可能用 HAMLAT 來(lái)進(jìn)行模型化。建模者在應(yīng)用觸覺(jué)渲染了解這些特性和他們分布是重要的。
一個(gè)堅(jiān)硬的物體,決定了堅(jiān)固程度。,例如一塊巖石或者一個(gè)桌子,都有非常高的堅(jiān)硬度。軟物體,例如橡膠球,是有非常低的硬度。一個(gè)物體的這種硬度和軟度用在彈跳力公式:
當(dāng)反作用力 f 呈現(xiàn)在用戶面前,計(jì)算是用物體的硬度系數(shù) Ks(變量名為硬度)和 x 滲透深度(轉(zhuǎn)移)。硬度系數(shù)的范圍是在 0 和 1 之間。0 表示畸變沒(méi)有抵抗力。而 1 是最大值,它可以被觸覺(jué)設(shè)備測(cè)量到一個(gè)物體的抑制力,代表了它對(duì)畸變的抵抗力。它通常用公式:
Kid 是抑制系數(shù)(變量名是抑制),并且 dx/dy 是速度。這個(gè)抑制系數(shù)范圍也是在 0和 1 之間。一系列的[ 0,1 ] ,并可能被用來(lái)模擬粘性行為的物質(zhì)。它還增加了穩(wěn)定性靜摩擦(變數(shù)名稱 striation )和動(dòng)態(tài)摩擦(變數(shù)名稱 direction )系數(shù)是用來(lái)摩擦力量的模型,在有經(jīng)驗(yàn)的情況下, 探索表面的三維對(duì)象。
靜摩擦力在運(yùn)行時(shí),代理是不能移動(dòng)超過(guò)物體表面的,初步的力量必須用來(lái)克服靜摩擦。動(dòng)態(tài)摩擦是感覺(jué)的舉動(dòng),在整個(gè)表面,與摩擦相反。 摩擦系數(shù)也有一個(gè)范圍
【 0,1 】 ,值為 0 時(shí),表面上的一個(gè)三維物體覺(jué)得“滑” ,值為 1 時(shí),感到非常粗糙的。摩擦力通常呈現(xiàn)在一方向上,切向碰撞點(diǎn)的觸覺(jué)在物體表面。
B 編輯攪拌器使用一組非重疊的窗口,也即是所謂的空間來(lái)修改各方面的三維場(chǎng)景和對(duì)象。每個(gè)空間分成了一套領(lǐng)域和背景。也就是,他們提供功能在選定對(duì)象的類(lèi)型的基礎(chǔ)上。例如,如果一個(gè)相機(jī)選定的嵌板即將展出組件,允許建模者改變攝像機(jī)的焦距長(zhǎng)度和視角,但如果對(duì)象的另一種類(lèi)型是選定的,這些組件將不會(huì)出現(xiàn)。
圖 6 顯示屏幕發(fā)射按鈕 ,它是用來(lái)編輯觸覺(jué)網(wǎng)格的屬性的。它包括用戶界面面板允許建模改變圖形遮光性能的網(wǎng)格,進(jìn)行簡(jiǎn)單的重新嚙合行為,并修改觸覺(jué)性能而選擇網(wǎng)格。
HAMLAT 沿襲了脈絡(luò)的敏感行為,當(dāng)攪拌器只顯示觸覺(jué)編輯小組時(shí), 多邊形網(wǎng)格對(duì)象被選中。在未來(lái)的日子,這個(gè)小組可能會(huì)重復(fù)支持觸覺(jué)建模的其他物體類(lèi)型 , 例如NURB 表面。
攪拌器框架提供了許多用戶界面元件(例如,按鈕,滑塊,彈出式菜單),在可用于編輯的基本數(shù)據(jù)結(jié)構(gòu)。那個(gè)觸覺(jué)性能的網(wǎng)格對(duì)象是編輯的使用滑塊,或進(jìn)入一個(gè)浮動(dòng)值到一個(gè)文本框位于毗鄰的滑竿。當(dāng)價(jià)值滑塊/方塊值改變時(shí),觸發(fā)一個(gè)事件,在攪拌器窗口會(huì)顯示一個(gè)獨(dú)特的識(shí)別標(biāo)志,表明窗分制度。 這項(xiàng)活動(dòng)是為觸覺(jué)和 HAMLAT 代碼應(yīng)稱為更新觸覺(jué)用于當(dāng)前選定的主題詞。
C .觸覺(jué)視覺(jué)渲染
攪拌器目前支持的圖形繪制場(chǎng)景使用內(nèi)部渲染或外部渲染(例如, [ 4 ] ) 。本著這一精神,觸覺(jué)渲染所使用的 HAMLAT 已發(fā)展為一個(gè)外部渲染。它使用 OpenGL 和 open hepatics 工具箱[ 5 ]分別執(zhí)行圖形和觸覺(jué)的渲染。
三維場(chǎng)景,正在建模的渲染應(yīng)用在兩個(gè)階段:第一個(gè)是圖像場(chǎng)景,第二個(gè)是觸覺(jué)。第二個(gè)是要求的,因?yàn)?open hepatics 工具包攔截命令傳送給 OpenGL 的管道和使用它們,以顯示現(xiàn)場(chǎng)用觸覺(jué)渲染技術(shù)。在此通過(guò)觸覺(jué)性能,使每個(gè)網(wǎng)格對(duì)象使用得多,在通過(guò)同樣的方式和顏色,照明所使用的圖形呈現(xiàn)給他們,界定這類(lèi)材料為每個(gè)對(duì)象節(jié)省 CPU 周期, 照明及圖形材料從觸覺(jué)繪制通過(guò)時(shí)被排除。圖 7 顯示的源代碼是用來(lái)適用材料性能在觸覺(jué)繪制通過(guò)。那個(gè)觸覺(jué)渲染是獨(dú)立的從攪拌機(jī)框架在它的存在以外的原始源代碼。然而,它仍然嚴(yán)重依賴于攪拌器的數(shù)據(jù)結(jié)構(gòu)和類(lèi)型。
D 腳本
攪拌器包裝,暴露了許多內(nèi)部數(shù)據(jù)結(jié)構(gòu),使內(nèi)部的Python 腳本引擎可能訪問(wèn)它們類(lèi)似的數(shù)據(jù)結(jié)構(gòu),用于代表網(wǎng)格物體在這個(gè)攪拌器的框架內(nèi)包裝,一個(gè)三維場(chǎng)景讓用戶定義的腳本訪問(wèn)和修改的內(nèi)容。
一個(gè)網(wǎng)格物體的觸覺(jué)特性可以通過(guò)網(wǎng)絡(luò)包裝來(lái)達(dá)到已添加到每個(gè)這些階段和通過(guò)訪問(wèn)的 Python 腳本系統(tǒng)。圖 8 顯示原碼來(lái)讀取觸覺(jué)性能,從網(wǎng)格對(duì)象和出口到一
個(gè)文件。類(lèi)似的代碼是用來(lái)進(jìn)口/ 出口 HAML 場(chǎng)景從到檔案。
在 HAMLAT 的應(yīng)用,腳本允許從 helm 文件中讀和轉(zhuǎn)載進(jìn)口的三維場(chǎng)景, 出口腳本, 允許三維場(chǎng)景要寫(xiě)入到一個(gè) HAML 文件中,并且應(yīng)用在另一個(gè) HAML 應(yīng)用中
該 bay 封套也揭露攪拌器窗制度。圖 9 顯示了小組時(shí),會(huì)出現(xiàn)用戶出口三維場(chǎng)景向helm 檔案格式。它允許用戶指定的補(bǔ)充資料關(guān)于應(yīng)用程序,如描述,目標(biāo)硬件和系統(tǒng)需求。這些都是領(lǐng)域所定的 helm 規(guī)格[ 2 ] ,并已列入與執(zhí)筆的現(xiàn)場(chǎng),作為部分的 helm 檔案格式。 用戶界面組件上顯示的這個(gè)小組很容易擴(kuò)展到未來(lái)修改的 HAML。
目前,HAMLAT 支持基本功能建模和繪制觸覺(jué) -視覺(jué)應(yīng)用。場(chǎng)景可以創(chuàng)建,編輯,預(yù)覽,和出口的部分一個(gè)數(shù)據(jù)庫(kù),以便使用在其他觸覺(jué)-視覺(jué)應(yīng)用。不過(guò),還有很多方法, 能夠讓我們繼續(xù)利用現(xiàn)有的攪拌器的功能。 作為今后的工作中,我們的擴(kuò)展計(jì)劃,以HAMLAT 包括支持其他觸覺(jué)平臺(tái)和設(shè)備。
目前,HAMLAT 一系列的設(shè)備是支持自互動(dòng)渲染,是依賴于該 openhaptics 工具箱 [ 5 ] 。為了支持其他設(shè)備,跨平臺(tái)的圖書(shū)館,如 chai3d 或 haptik 可能被用來(lái)執(zhí)行渲染。這些圖書(shū)館支持繪制大范圍的觸覺(jué)硬件。所幸的是,由于我們執(zhí)行中模塊化,只有互動(dòng)觸覺(jué)渲染需要改變。 此外,支持多種硬件平臺(tái), 用戶界面組件,使選拔和配置觸覺(jué)設(shè)備將是重要的。多數(shù)的可能,這將是,增加一條,作為用戶使用部分編好程序在攪拌器中。 加入支持觸覺(jué)設(shè)備的一部分,編輯任務(wù)也是有計(jì)劃的功能。這將方便建模修改形狀,位置。和其他在現(xiàn)場(chǎng)的對(duì)象。舉例來(lái)說(shuō),多選擇方式在攪拌允許用戶操縱地理的三維物體用自然的界面,類(lèi)似重塑一塊粘土。HAMLAT 將在此基礎(chǔ)上讓建模操縱接口。
附錄二:
Extending Blender: Development of a Hepatic Authoring
Tool
Abstract -In this paper, we present our work to extend a well known 3D graphic modeler -Blender -to support hepatic modeling and rendering. The extension tool is named HAMLAT (hepatic Application Markup Language Authoring Tool). We describe the modifications and additions to the Blender source code which have been used to create HAMLAT Furthermore, we present and discuss the design decisions used when developing HAMLAT, and also an implementation "road map" which describes the changes to the Blender source code. Finally, we conclude with discussion of our future development and research avenues.
Keywords Hepatics HAML Graphic Modelers Blender Virtual Environments.
I. Introduction
A. Motivation
The increasing adoption of hepatic modality in human-computer interaction paradigms has led to a huge demand for new tools that help novice users to author and edit hepatic applications. Currently, the hepatic application development process is a time consuming experience that requires programming expertise. The complexity of hepatic applications development rises from the fact that the hepatic application components (such as the hepatic
56
API, the device, the hepatic rendering algorithms, etc.) need to interact with the graphic components in order to achieve synchronicity. Additionally, there is a lack of application portability as the application is tightly coupled to a specific device that necessitates the use of its corresponding API. Therefore, device and API heterogeneity lead to the fragmentation and disorientation of both researchers and developers. In view of all these considerations, there is a clear need for an authoring tool that can build hepatic applications while hiding programming details from the application modeler (such as API, device, or virtual model).
This paper describes the technical development of the hepatic Application Markup Language Authoring Tool (HAMLAT). It is intended to explain the design decisions used for developing HAMLAT and also provides an implementation "road map", describing the source code of the project.
B. Blender
HAMLAT is based on the blender [1] software suite, which is an open-source 3D modeling package with a rich feature set. It has a sophisticated user interface which is noted for its efficiency and flexibility, as well as its supports for multiple file formats, physics engine, modem computer graphic rendering and many other features.
Because of blender's open architecture and supportive community base, it
was selected as the platform of choice for development of HAMLAT. The open-source nature of Blender means HAMLAT can easily leverage its existing functionality and focus on integrating hepatic features which make it a complete hap to-visual modeling tool, since developing a 3D modeling platform from scratch requires considerable development time and expertise in order to reach the level of functionality of blender. Also, we can take advantage of future improvements to blender by merging changes from its source code into the HAMLAT source tree.
HAMLAT builds on existing Blender components, such as the user-interface and editing tools, by adding new components which focus on the representation, modification, and rendering of hepatic properties of objects in a 3D scene. By using Blender as the basis for HAMLAT, we hope to develop a 3D hepatic modeling tool which has the maturity and features of Blender combined with the novelty of hepatic rendering.
C. Project Goals
As previously stated, the overall goal for the HAMLAT project is to produce a polished software application which combines the features of a modem
graphic modeling tool with hepatic rendering techniques. HAMLAT has the "look and feel" of a 3D graphical modeling package, but with the addition of features such as hepatic rendering and hepatic property descriptors. This allows artists, modelers, and developers to generate realistic 3D hippo-visual virtual environments. A high-level block diagram of HAMLAT is shown in Figure 1. It illustrates the flow of data in the hepatic modeling. HAMLAT assists the modeler, or application developer, in building hap to-visual applications which may be stored in a database for later retrieval by another hepatic application. By hippo-visual application we refer to any software which displays a 3D scene both visually and
hectically to a user in a virtual setting. An XML file format, called HAML [2], is used to describe the 3D scenes and store the hippo-visual environments built by a modeler for later playback to an end user.
Traditionally, building hippo-visual environments has required a strong technical and programming background. The task of hectically rendering a 3D scene is tedious since hepatic properties must be assigned to individual objects in the scene and currently there are few high-level tools for accomplishing this task. HAMLAT bridges this gap by integrating into the HAML framework and delivering a complete solution for development of hippo visual applications
requiring no programming knowledge.
The remainder of the paper is organized as follows: in Section 2, we present the proposed architecture extensions and discuss design constraints. Section 3 describes the implementation details and how hepatic properties are added and rendered within the blender framework. In section 4 we discuss related issues and future work avenues.
II. SYSTEMOVERVIEWANDARCHITECTURE
The blender design philosophy is based on three main tasks: data storage, editing, and visualization. According to the legacy documentation [3], it follows a data visualize-edit development cycle for the 3D modeling
A 3D scene is represented using data structures within the Blender architecture. The modeler views the scene, makes changes using the editing interface which directly modifies the underlying data structures, and then the cycle repeats.
To better understand this development cycle, consider the representation of a 3D object in Blender. A 3D object may be represented by an array of vertices which have been organized as a polygonal mesh. Users may choose to operate on any subset of this data set. Editing tasks may include operations to rotate, scale, and translate the vertices, or perhaps a re-meshing algorithm to "cleanup" redundant vertices and transform from a quad to a triangle topology. The data is visualized using a graphical 3D rendered which is capable of displaying the object as a wireframe or as a shaded, solid surface. The
visualization is necessary in order to see the effects of editing on the data. In a nutshell, this example defines the design philosophy behind blender's architecture.
In blender, data is organized as a series of lists and base data types are combined with links between items in each list, creating complex scenes from simple structures. This allows data elements in each list to be reused, thus reducing the overall storage requirements. For example, a mesh may be linked by multiple scene objects, but the position and orientation may change for each object and the topology of the mesh remains the same. A diagram illustrating the organization of data structures and reuse of scene elements is shown in Figure 2. A scene object links to three objects, each of which link to two polygonal meshes. The meshes also share a common material property. The
entire scene is rendered on one of several screens, which visualizes the scene.
We adopt the Blender design approach for our authoring tool. The data structures which are used to represent objects in a 3D scene have been augmented to include fields for hepatic properties (e.g., stiffness, damping); user interface components (e.g., button panels) which allow the modeler to change object properties have also been updated to include support for modifying the hepatic properties of an object. Additionally, an interactive hippo-visual rendered has been implemented to display the 3D scene graphically and hectically, providing the
modeler or artist with immediate feedback about the changes they make to the scene.
A class diagram outlining the changes to the blender frame work is shown in Figure 3. Components which are pertinent to HAMLAT are shaded in gray. HAMLAT builds on existing blender sub-systems by extending them for hepatic modeling purposes. The tactile and kinesthetic cues, which are displayed due to interaction with virtual objects, are typically rendered based on the geometry of the mesh. in this data type. Other scene components such as lamps, cameras, or lines are not intuitively rendered using force feedback hepatic devices and are therefore not of current interest of chaotic rendering.
An augmented version of the mesh data structure is shown in Figure 4. It contains fields for vertex and face data, plus some special custom data fields which allow data to be stored to/retrieved from disk and memory. We have modified this data type to include a pointer to a hepatics data structure, which stores hepatic properties such as stiffness, damping, and friction for the mesh elements (Figure 5).
Similarly to the built-in graphical rendered, HAMLAT uses a custom rendered for displaying 3Ds scenes graphical and hap call, and is in end of the
connectivity is given in the next section.
IMPLEMENTATION
Data Structure
Blender uses many different data structures to represent the various types of objects in a 3D scene a polygonal mesh contains the location and topology of vertices; a lamp contains color and intensity values; and a camera object contains intrinsic viewing parameters.
The Mesh data structure is used by the blender
Blender rendered. This component is developed independently since heretical and graphical rendering must be performed simultaneously and synchronously. A simulation loop is used to update hepatic rendering forces at a rate which maintains stability and quality.
Where the force feedback vector which is displayed to the user is computed using the stiffness coefficient (variable name stiffness) for the object and x the
|penetration depth (displacement) of the hepatic proxy into an object. The stiffness coefficient has a range of [0,1],where 0 represents no resistance to deformation and 1 represents the maximum stiffness which may be rendered by the hepatic device. The damping of an object defines its resistance to the
rate of deformation due to some applied strut Hepatices force. It is typically rendered using the force equation:
Hepatic Properties
In this section we'll briefly discuss the hepatic properties which may currently be modeled using HAMLAT. It is important for the modeler to understand these properties and their basis for use in hepatic rendering.
The stiffness of an object defines how resistant it is to deformation by some applied force. Hard objects, such as a rock or table, have very high stiffness; soft objects, such as rubber ball, have low stiffness. The hardness-softness of an object is typically rendered using the spring-force equation: range of [0,1] and may be used to model viscous behavior of a material. It also increases the stability of the hepatic rendering loop ford stiff materials.
The static friction (variable name striation) and dynamic friction (variable name direction) coefficient are used to model the frictional forces experienced while exploring the surface of a 3D object. Static friction is experienced when the proxy is not moving over the object's surface, and an initial force must be used to overcome static friction. Dynamic friction is felt when the proxy moves across the surface, rubbing against it. Frictional coefficients also have a range of
/0,1], with a value of 0 making the surface of a 3D object feel "slippery" and a
value of 1 making the object feel very rough.
B. Editing
Blender uses a set of non-overlapping windows called spaces to modify various aspects of the 3D scene and its objects. Each space is divided into a set of areas and panels which are context aware. That is, they provide functionality based on the selected object type. For example, if a camera is selected the panel will display components which allow the modeler to change the focal length and viewing angle of the camera, but these components will not appear if an object of another type is selected.
Figure 6 shows a screen shot of the button space which is used to edit properties for a hepatic mesh. It includes user-interface panels which allow a modeler to change the graphical shading properties of the mesh, perform simple re-meshing operations, and to modify the hepatic properties of the selected mesh.
HAMLAT follows the context-sensitive behavior of Blender by only displaying the hepatic editing panel when a polygonal mesh object is selected. In the future, this panel may be duplicated to support hepatic modeling for other object types, such as NURB surfaces.
The blender framework offers many user-interface components (e.g., buttons, sliders, pop-up menus) which may be used to edit the underlying data structures. The hepatic properties for mesh objects are editable using sliders or by entering a float value into a text box located adjacent to the slider. When the
value of the slider/text box is changed, it triggers an event in the blender windowing a unique identifier indicates he first pass renders the scene graphically, and the second pass renders it hectically. The second pass is required because the Open Hepatics toolkit intercepts commands send to the OpenGL pipeline and uses them to display the scene using hepatic rendering techniques. In this pass, the hepatic properties of each mesh object are used much in the same way color and lighting are used by graphical rendering they define the type of material for each object. To save CPU cycles, the lighting and graphical material properties are excluded from the hepatic rendering pass.
Figure 7 shows source code which is used to apply the material properties during the hepatic rendering pass. The hepatic rendered is independent from the Blender framework in that it exists outside the original source code. However, it is still h
收藏