購(gòu)買設(shè)計(jì)請(qǐng)充值后下載,,資源目錄下的文件所見(jiàn)即所得,都可以點(diǎn)開(kāi)預(yù)覽,,資料完整,充值下載可得到資源目錄里的所有文件。。。【注】:dwg后綴為CAD圖紙,doc,docx為WORD文檔,原稿無(wú)水印,可編輯。。。具體請(qǐng)見(jiàn)文件預(yù)覽,有不明白之處,可咨詢QQ:12401814
南昌航空大學(xué)科技學(xué)院學(xué)士學(xué)位論文
畢業(yè)設(shè)計(jì)(論文)外文翻譯
題目 Extending Blender: Development of a Haptic Authoring Tool
延長(zhǎng)攪拌機(jī):一個(gè)觸覺(jué)創(chuàng)作工具開(kāi)發(fā)
專 業(yè) 名 稱 機(jī) 械 設(shè) 計(jì) 制 造 及 其 自 動(dòng) 化
班 級(jí) 學(xué) 號(hào) 0 7 8 1 0 5 2 0 3
學(xué) 生 姓 名 陳 科 林
指 導(dǎo) 教 師 許 瑛
填 表 日 期 2011 年 3 月 11 日
延長(zhǎng)攪拌機(jī):一個(gè)觸覺(jué)創(chuàng)作工具開(kāi)發(fā)
摘要:在本文中,我們目前的工作是拓展一個(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é)的方式在人類-電腦的互動(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ā)展ofhamlat平臺(tái)的首選。攪拌器開(kāi)放資源的性質(zhì),意味著HAMLAT可以輕易地利用其現(xiàn)有的功能和集中討論相結(jié)合的特點(diǎn),使其成為一個(gè)完整的觸覺(jué)-可視化建模工具,發(fā)展為一個(gè)三維建模平臺(tái),從無(wú)到有,需要相當(dāng)多的發(fā)展時(shí)間和專門(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é)合攪拌器與ofhaptic渲染的新穎性。
在編寫(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)景的軟件, haptically給一個(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ò)融入haml框架和提供完整的解決方案,發(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)題和今后的工作途徑。
二.編輯和可視化
攪拌器的設(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ù)類型相結(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)和haptically ,反饋現(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ù)類型?,F(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ù)類型,包括一個(gè)指針,以mhaptics數(shù)據(jù)結(jié)構(gòu),儲(chǔ)存觸覺(jué)性能如剛度,阻尼和摩擦,為網(wǎng)格元素(圖5 ) 。
A2.編輯網(wǎng)絡(luò)數(shù)據(jù)類型
值得注意的是網(wǎng)絡(luò)數(shù)據(jù)類型由一個(gè)固定的數(shù)據(jù)類型,名字叫編輯網(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)變成包含觸覺(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ì)畸變的抵抗力。它通常用公式:
Kd是抑制系數(shù)(變量名是抑制),并且dx/dy是速度。這個(gè)抑制系數(shù)范圍也是在0和1之間。一系列的[ 0,1 ] ,并可能被用來(lái)模擬粘性行為的物質(zhì)。它還增加了穩(wěn)定性靜摩擦(變數(shù)名稱stjriction )和動(dòng)態(tài)摩擦(變數(shù)名稱dyjriction )系數(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ì)象的類型的基礎(chǔ)上。例如,如果一個(gè)相機(jī)選定的嵌板即將展出組件,允許建模者改變攝像機(jī)的焦距長(zhǎng)度和視角,但如果對(duì)象的另一種類型是選定的,這些組件將不會(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é)建模的其他物體類型 , 例如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和openhaptics工具箱[ 5 ]分別執(zhí)行圖形和觸覺(jué)的渲染。
三維場(chǎng)景,正在建模的渲染應(yīng)用在兩個(gè)階段:第一個(gè)是圖像場(chǎng)景,第二個(gè)是觸覺(jué)。第二個(gè)是要求的,因?yàn)閛penhaptics工具包攔截命令傳送給OpenGL的管道和使用它們,以顯示現(xiàn)場(chǎng)用觸覺(jué)渲染技術(shù)。在此通過(guò)觸覺(jué)性能,使每個(gè)網(wǎng)格對(duì)象使用得多,在通過(guò)同樣的方式和顏色,照明所使用的圖形呈現(xiàn)給他們,界定這類材料為每個(gè)對(duì)象節(jié)省CPU周期, 照明及圖形材料從觸覺(jué)繪制通過(guò)時(shí)被排除。圖7顯示的源代碼是用來(lái)適用材料性能在觸覺(jué)繪制通過(guò)。那個(gè)觸覺(jué)渲染是獨(dú)立的從攪拌機(jī)框架在它的存在以外的原始源代碼。然而,它仍然嚴(yán)重依賴于攪拌器的數(shù)據(jù)結(jié)構(gòu)和類型。
D腳本
攪拌器( bpy )包裝,暴露了許多內(nèi)部數(shù)據(jù)結(jié)構(gòu),使內(nèi)部的Python 腳本引擎可能訪問(wèn)它們類似的數(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)進(jìn)口/ 出口HAML場(chǎng)景從到檔案。
在HAMLAT的應(yīng)用,腳本允許從haml文件中讀和轉(zhuǎn)載進(jìn)口的三維場(chǎng)景, 出口腳本,允許三維場(chǎng)景要寫(xiě)入到一個(gè)HAML文件中,并且應(yīng)用在另一個(gè)HAML應(yīng)用中
該bpy封套也揭露攪拌器窗制度。圖9顯示了小組時(shí),會(huì)出現(xiàn)用戶出口三維場(chǎng)景向haml檔案格式。它允許用戶指定的補(bǔ)充資料關(guān)于應(yīng)用程序,如描述,目標(biāo)硬件和系統(tǒng)需求。這些都是領(lǐng)域所定的haml規(guī)格[ 2 ] ,并已列入與執(zhí)筆的現(xiàn)場(chǎng),作為部分的haml檔案格式。 用戶界面組件上顯示的這個(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ō),多選擇方式在攪拌允許用戶操縱地理的三維物體用自然的界面,類似重塑一塊粘土。HAMLAT將在此基礎(chǔ)上讓建模操縱接口。
參考文獻(xiàn):
[1] Blender organization, "Blender official website,"http.//www.blender.org, September 2007.
[2] F. R. El-Far, M. Eid, M. Orozco, A. El Saddik, "Haptic Application Meta-Language," DS-RT, Malaga, Spain, 2006.con
[3] Blender Organization, "Blender Architecture,"berGrasp http://www.blender.org/development/architecture, September 2007
[4] YafRay, "Free Raytracing for the Masses," http://www.yafray.org,September 2007.
[5] SensAble Technologies, Inc. "OpenHaptics Toolkit,"http://www.sensable.com/products-openhaptics-toolkit.htm,September 2007.
[6] M. Eid, M. Mansour, R. Iglesias, A. El Saddik. "A Device Independent Haptic Player," IEEE Intl. Conference on VirtualE nvironments, Human-Computer Interfaces, and Measurement Systems (VECIMS 2007), Italy, 2007.
[7] F. Conti, F. Barbagli, D. Morris, C. Sewell, "CHAI: An Open-
Source Library for the Rapid Development of Haptic Scenes,"Demo paper atIEEE WorldHaptics, Pisa, Italy, March 2005.
外文資料原文:
Extending Blender: Development of a Haptic Authoring Tool
Student name:Chen Kelin Class: 0781052
Supervisor: Professor Xu Yi
Abstract:In this paper, we present our work to extend a well known 3D graphic modeler - Blender - to support haptic modeling and rendering. The extension tool is named HAMLAT (Haptic 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 - Haptics, HAML, Graphic Modelers, Blender, Virtual Environments.
I. INTRODUCTION
A. Motivation
The increasing adoption of haptic modality in human-computer interaction paradigms has led to a huge demand for new tools that help novice users to author and edit haptic applications. Currently, the haptic application development process is a time consuming experience that requires programming expertise. The complexity of haptic applications development rises from the fact that the haptic application components (such as the haptic API, the device, the haptic 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 haptic applications while hiding programming details from the application modeler (such as API, device, or virtual model).
This paper describes the technical development of the Haptic 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 haptic features which make it a complete hapto-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 haptic properties of objectsin a 3D scene. By using Blender as the basis for HAMLAT, we hope to develop a 3D haptic modeling tool
which has the maturity and features of Blender combined
with the novelty of haptic rendering.
At the time of writing, HAMLAT is based on Blender version 2.43 source code.
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 haptic rendering techniques. HAMLAT has the "look and feel" of a 3D graphical modeling package, but with the addition of features such as haptic rendering and haptic property descriptors. This allows artists, modelers, and developers to generate realistic 3D hapto-visual virtual environments.
A high-level block diagram of HAMLAT is shown in Figure 1. It illustrates the flow of data in the haptic modeling. HAMLAT assists the modeler, or application developer, in building hapto-visual applications which may be stored in a database for later retrieval by another haptic application. By hapto-visual application we refer to any software which displays a 3D scene both visually and haptically to a user in a virtual setting. An XML file format, called HAML [2], is used to describe the 3D scenes and store the hapto-visual environments built by a modeler for later playback to an end user.
Traditionally, building hapto-visual environments has required a strong technical and programming background. The task of haptically rendering a 3D scene is tedious
since haptic 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 hapto- 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 haptic properties are added and rendered within the Blender framework. In Section 4 we discuss related issues and future work avenues.
II. SYSTEM OVERVIEW AND ARCHITECTURE
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 pipe line. 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 renderer 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 haptic 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 haptic properties of an object. Additionally, an interactive hapto-visual renderer has been implemented to display the
3D scene graphically and haptically, providing the modeler or artist with immediate feedback about the changes they make to the scene. in the current version of the HAMLAT. the modifications to the Blender framework include: data structures for representing haptic properties,
an editing interface for modifying haptic properties, an external renderer for displaying and previewing haptically enabled scenes, scripts which allow scenes to be imported/exported in the HAML file format.
A class diagram outlining the changes to the Blender ramework is shown in Figure 3. Components which are ertinent to HAMLAT are shaded in gray. HAMLAT builds on existing Blender sub-systems by extending them or haptic modeling purposes. Data structures for representing object geometry and graphical rendering areaugmented to include field which encompass the tactile properties necessary for haptic rendering.
To allow the user to modify haptic properties GUI Components are integrated as part of the Blender editing panels. The operations triggered by these components
operate directly on the d ata structures used for representing hatic cues and may be considered part of the editing step of the Blender design cycle.
Similarly to the built-in graphical renderer, HAMLAT uses a custom rendlerer for displaying 3Ds scenes grphcal and haptcall, an is ineedn of the Blender renderer. This component is developed independently since haptical and graphical rendering must be performed simultaneously and synchronously. A simulation loop is used to update haptic rendering forces at a rate which maintains stability and quality. A detailed discussion of the implementation of these classes and their connectivity is given in the next section.
III IMLIEMENTATION
A Data Structure
A.1 Mesh Data Type
Blender uses many different data structures to represent the various types of objects in a 3D scene a vertices; a lamp contains colour and intensity values; and camera a object contains intrinsic viewing parameters.
The Mesh data structure iS used by the Blender inframework to describe a polygonal mesh object. It iS of particular interest for hapic rendering since many solid objects in a 3D scene may be represented using this type of data structure. The tactile and kinesthetic cues, which are displayed due to interaction with virtual objects, are typically rendered based on the geometry of the mesh. Hptic rendering is performed based primary on data stored in this data type. Other scene components such as lamps, cameras, or lines are not intuitively rendered using force feedback haptic devices and are therefore not of current interest for haptic 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 MHaptics data structure, which stores haptic properties such as stiffness, damping, and friction for the mesh elements (Figure 5).
A.2 Edit Mesh Data Type
It should be noted that the Mesh data type has a comPlimentary data structure, called EditMesh, which is used when editing mesh data. It holds a copy of the vertex, edge ,and face data for a polygonal mesh. when the user switches to editing mode, the Blender copies the data from a Mesh into an EditMesh and when editing is complete the data is copied back.
Care must be taken to ensure that the hapic property data structure remains intact during the copy sequence. The EditMesh data structure has not been modified to contain a copy of the hapic property data ,but this may
properties in edit mode is required). The editing mode is mainly used to modify mesh topology and geometry, not the haptic and graphical rendering characteristics,
A.3 Haptic Properties
In this section we'll briefly discuss the haptic properties which may currently be modeled using HAMLAT. It is important for the modeler to understand these
properties and their basis for use in haptic 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:
Where the force feedback vector f which is displayed to the user is computed using ks the stiffness coefficient (variable name stiffness)for the object and x the penetration depth (displacement) of the haptic 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 haptic device. The damping of an object defines its resistance to the rate of deformation due to some applied force. It is typically rendered using the force eq