購買設(shè)計請充值后下載,,資源目錄下的文件所見即所得,都可以點開預覽,,資料完整,充值下載可得到資源目錄里的所有文件。。?!咀ⅰ浚篸wg后綴為CAD圖紙,doc,docx為WORD文檔,原稿無水印,可編輯。。。具體請見文件預覽,有不明白之處,可咨詢QQ:12401814
南昌航空大學科技學院學士學位論文
畢業(yè)設(shè)計(論文)外文翻譯
題目 Extending Blender: Development of a Haptic Authoring Tool
延長攪拌機:一個觸覺創(chuàng)作工具開發(fā)
專 業(yè) 名 稱 機 械 設(shè) 計 制 造 及 其 自 動 化
班 級 學 號 0 7 8 1 0 5 2 0 3
學 生 姓 名 陳 科 林
指 導 教 師 許 瑛
填 表 日 期 2011 年 3 月 11 日
延長攪拌機:一個觸覺創(chuàng)作工具開發(fā)
摘要:在本文中,我們目前的工作是拓展一個眾所周知的三維圖形建模-攪拌機,來支持觸覺建模和繪制。這種延長攪拌機命名為HAMLAT(觸覺應(yīng)用標記語言創(chuàng)作工具) 。我們描述修改和添加攪拌器的源代碼,其中已使用創(chuàng)造HAMLAT此外,我們提出和討論設(shè)計的決定時所用的發(fā)展中的HAMLAT, 也是一個“路線圖”的實施 ,其中描述了攪拌器的源代碼的改變。最后,我們的結(jié)論是討論我們未來的發(fā)展及研究途徑。
關(guān)鍵詞:觸覺,HAM,圖形建模,攪拌器, 虛擬環(huán)境。
一.介紹
A. 動機
越來越多的通過觸覺的方式在人類-電腦的互動方式的應(yīng)用造成了對新的工具的巨大的需求,這些新的工具可以幫助新手用戶寫作和編輯觸覺應(yīng)用。目前,觸覺的應(yīng)用發(fā)展過程是一個耗時的經(jīng)歷,它需要編程知識。觸覺應(yīng)用的復雜性,從一個事實,即觸覺應(yīng)用組件(如觸覺的空氣污染指數(shù),設(shè)備,該觸覺描寫算法等)需要互動圖形組件,以實現(xiàn)同步。
此外,一個缺少應(yīng)用可能性,因為應(yīng)用是緊耦合到特定的裝置必須使用其相應(yīng)的空氣污染指數(shù)。因此,設(shè)備和空氣污染指數(shù)的異質(zhì)性,導致兩個研究人員和開發(fā)人員分裂和迷失方向。在檢查所有需要考慮的事時,有對創(chuàng)作工具明確的需要,可以建立觸覺的應(yīng)用, 也可以隱藏在應(yīng)用程序建模的編程(如空氣污染指數(shù),裝置,或虛擬模型) 。
本文介紹了技術(shù)發(fā)展的觸覺應(yīng)用標記語言創(chuàng)作工具(HAMLAT)。它的用意是解釋設(shè)計決定用于發(fā)展HAMLAT,還提供了執(zhí)行“路線圖”的一個應(yīng)用,描述該項目的源代碼。
B攪拌器
HAMLAT是以攪拌器[ 1 ]軟件套件為基礎(chǔ), 這是一個開放源碼的三維建模套件擁有豐富的功能集。它有一個先進的用戶界面,它以它的高效率和靈活性,以及它的支援多種檔案格式,物理引擎,調(diào)制解調(diào)器等功能出名。
由于攪拌器的開放式體系結(jié)構(gòu)和支持共同的基礎(chǔ),它被選定為發(fā)展ofhamlat平臺的首選。攪拌器開放資源的性質(zhì),意味著HAMLAT可以輕易地利用其現(xiàn)有的功能和集中討論相結(jié)合的特點,使其成為一個完整的觸覺-可視化建模工具,發(fā)展為一個三維建模平臺,從無到有,需要相當多的發(fā)展時間和專門技術(shù),以便達到攪拌機水平的功能,。同時,我們可以利用由從它的源代碼到HAMLAT源代碼樹的合并的變化改善未來的攪拌器
HAMLAT建立在現(xiàn)有攪拌器組件,如用戶界面和編輯工具,通過加入新組建,其中側(cè)重在一個三維場景用于代表修改和渲染觸覺特性的物體。HAMLAT用攪拌器并以此為基礎(chǔ),我們希望建立一個三維觸覺建模工具,它具有成熟等特點,并結(jié)合攪拌器與ofhaptic渲染的新穎性。
在編寫本報告的時候,HAMLAT是基于攪拌器2.43版本的源代碼。
C.項目目標
如前所述,HAMLAT項目的總體目標是為了產(chǎn)生一個拋光應(yīng)用軟件,它結(jié)合了調(diào)制解調(diào)器圖形建模工具的特點與觸覺繪制技術(shù)。HAMLAT有三維圖形建模軟件包“外觀與感覺”,但是還有另外的功能,例如,作為觸覺渲染和觸覺直觀的描述。這個允許藝術(shù)家,建造家,和開發(fā)商產(chǎn)生逼真的三維觸覺 -可視化虛擬環(huán)境。 一個HAMLAT高層次的框圖結(jié)果,在圖1中表明。它說明了在觸覺模型的數(shù)據(jù)流,HAMLAT協(xié)助建模者,或應(yīng)用開發(fā)商,在建設(shè)觸覺 -視覺應(yīng)用,可存儲在一個數(shù)據(jù)庫中供日后由另一觸覺的應(yīng)用檢索。由觸覺-視覺的應(yīng)用我們參考任何在視覺上顯示三維場景的軟件, haptically給一個用戶一個虛擬的設(shè)置。一個XML文件的格式,所謂HAML[ 2 ] ,是用來描述三維場景和儲存觸覺-視覺環(huán)境,通過興建一建模后播放給最終用戶。
傳統(tǒng)上,建設(shè)觸覺 -視覺環(huán)境已需要一個強有力的技術(shù)和方案的背景。 繪制三維場景的任務(wù)是繁瑣的。所以在現(xiàn)場觸覺性能必須分配給個人,為完成這項任務(wù),目前有幾個問題。HAMLAT橋梁,這個差距通過融入haml框架和提供完整的解決方案,發(fā)展觸覺-視覺應(yīng)用,無需編程知識。
其余的文件,組織情況如下:在第2部分中,我們目前建議的架構(gòu)擴展并討論設(shè)計的限制。在第3部分中介紹執(zhí)行的細節(jié),以及觸覺性使內(nèi)部的攪拌器框架能如何補充和拓展。第4部分我們討論工作中有關(guān)的問題和今后的工作途徑。
二.編輯和可視化
攪拌器的設(shè)計理念,是基于三個主要任務(wù):數(shù)據(jù)存儲,編輯和可視化。據(jù)遺留的文件[ 3 ] ,它沿襲了開發(fā)周期為三維建模數(shù)據(jù)管道可視 - 編輯。一個三維場景代表的是在該攪拌器結(jié)構(gòu)中使用數(shù)據(jù)結(jié)構(gòu)。該建模者觀看現(xiàn)場,進行更改,使用編輯界面直接修改底層的數(shù)據(jù)結(jié)構(gòu),然后循環(huán)重復。
為了更好地了解這方面的發(fā)展周期,考慮在攪拌器中一個三維物體的代表體。一個三維物體可代表一個數(shù)組的頂點,其中有舉辦了作為一個多邊形網(wǎng)格。用戶可以選擇運作的任何數(shù)據(jù)集。編輯的任務(wù)可能包括行動,旋轉(zhuǎn),稱重和翻譯頂點,或者從四到三角拓撲結(jié)構(gòu),也許重新嚙合算法,“清理”多余的頂點和變換,。數(shù)據(jù)可視化使用圖形三維渲染這是能夠顯示的對象作為一個線框或作為一個陰影,固體表面可視化是必要的,就編輯整體而言便見影響,總而言之,這個例子定義設(shè)計背后是攪拌器的建筑理念。
在攪拌機,數(shù)據(jù)是作為一個有組織的一系列名單和相應(yīng)的數(shù)據(jù)類型相結(jié)合,與項目之間的聯(lián)系在每份名單中,從簡單的結(jié)構(gòu)中創(chuàng)造復雜的場景,這使得數(shù)據(jù)元素,在每個清單都可以重復使用,從而減少整體的存儲需求。舉例來說,網(wǎng)格可能與多個現(xiàn)場的物體相連接,但
位置和方向可能會改變,而每一個物件和拓撲結(jié)構(gòu)的網(wǎng)格保持不變。說明該組織的數(shù)據(jù)結(jié)構(gòu)和重用現(xiàn)場的要素是在如圖2中所示。一個現(xiàn)場物件連結(jié)三個對象,其中每個鏈接到兩個多邊形網(wǎng)格。該網(wǎng)格也都有一個共同的物質(zhì)財產(chǎn)。整個現(xiàn)場呈現(xiàn)的由數(shù)個可視化現(xiàn)場的屏幕到一個網(wǎng)絡(luò)上。
我們采用攪拌器的設(shè)計方法,為我們創(chuàng)作工具。數(shù)據(jù)結(jié)構(gòu)用來代表物體在一個三維場景已擴大到包括該領(lǐng)域的觸覺特性(例如,剛度, 阻尼);用戶界面組件(例如,按鈕面板)
允許建模者改變對象屬性而得到更新,包括支持修改觸覺性能的一個對象。此外,互動觸覺 -視覺渲染已實施,以顯示三維場景生動和haptically ,反饋現(xiàn)場有關(guān)情況即時提供給建模者或藝術(shù)家。
在現(xiàn)在的HAMLAT的版本中,攪拌機的框架的寫稿包括如下:
* 數(shù)據(jù)結(jié)構(gòu)代表觸覺性能,
* 編輯界面為了修改觸覺性能,
* 外部轉(zhuǎn)譯為展示及預覽啟用的場面,
* 腳本讓場面擬進口/出口以HAMLAT的檔案格式。
概述了攪拌器框架的變化,在圖3中所示。與HAMLAT有關(guān)的組建是灰色的陰影。HAMLAT建立在現(xiàn)有攪拌器子系統(tǒng)上,延長他們是為了為觸覺建模。觸覺和動覺線索, 顯示由于與虛擬物體互動,在通常提供的基礎(chǔ)上,幾何的網(wǎng)格,無損檢測存儲在此數(shù)據(jù)類型?,F(xiàn)場的其他部件,如燈光,照相機,或線條不能直觀地提供使用力反饋觸覺設(shè)備,但并不是現(xiàn)在觸覺設(shè)計的興趣所在。
增強版的網(wǎng)格數(shù)據(jù)結(jié)構(gòu)如圖4所示。它包含的領(lǐng)域頂點和面對數(shù)據(jù),再加上一些特殊的自定義數(shù)據(jù)領(lǐng)域,允許數(shù)據(jù)被儲存到/來自磁盤和內(nèi)存。我們已修改這個數(shù)據(jù)類型,包括一個指針,以mhaptics數(shù)據(jù)結(jié)構(gòu),儲存觸覺性能如剛度,阻尼和摩擦,為網(wǎng)格元素(圖5 ) 。
A2.編輯網(wǎng)絡(luò)數(shù)據(jù)類型
值得注意的是網(wǎng)絡(luò)數(shù)據(jù)類型由一個固定的數(shù)據(jù)類型,名字叫編輯網(wǎng)絡(luò),它在編輯網(wǎng)絡(luò)時使用,它包含了定點,邊緣,和全局網(wǎng)絡(luò)的面對數(shù)據(jù)的復件。當用戶轉(zhuǎn)到編輯代碼時,攪拌機把數(shù)據(jù)從一個網(wǎng)絡(luò)復制到一個編輯網(wǎng)絡(luò),當編輯結(jié)束,那么數(shù)據(jù)就復制回去。
必須注意確保觸覺數(shù)據(jù)結(jié)構(gòu)在復制的過程中保持完整,編輯網(wǎng)絡(luò)沒有轉(zhuǎn)變成包含觸覺數(shù)據(jù)的復件,但是這個可以在未來的版本中改變(如果這個功能被要求的話),這個編輯方式主要應(yīng)用在修改地質(zhì)學和地理學網(wǎng)絡(luò),不是觸覺和圖像的拓展的特征。
A3.觸覺特性
在這個部分中,我們簡要的討論觸覺特性,這個可能用HAMLAT來進行模型化。建模者在應(yīng)用觸覺渲染了解這些特性和他們分布是重要的。
一個堅硬的物體,決定了堅固程度。,例如一塊巖石或者一個桌子,都有非常高的堅硬度。軟物體,例如橡膠球,是有非常低的硬度。一個物體的這種硬度和軟度用在彈跳力公式:
當反作用力f呈現(xiàn)在用戶面前,計算是用物體的硬度系數(shù)Ks(變量名為硬度)和x滲透深度(轉(zhuǎn)移)。硬度系數(shù)的范圍是在0和1之間。0表示畸變沒有抵抗力。而1是最大值,它可以被觸覺設(shè)備測量到一個物體的抑制力,代表了它對畸變的抵抗力。它通常用公式:
Kd是抑制系數(shù)(變量名是抑制),并且dx/dy是速度。這個抑制系數(shù)范圍也是在0和1之間。一系列的[ 0,1 ] ,并可能被用來模擬粘性行為的物質(zhì)。它還增加了穩(wěn)定性靜摩擦(變數(shù)名稱stjriction )和動態(tài)摩擦(變數(shù)名稱dyjriction )系數(shù)是用來摩擦力量的模型,在有經(jīng)驗的情況下, 探索表面的三維對象。
靜摩擦力在運行時,代理是不能移動超過物體表面的,初步的力量必須用來克服靜摩擦。動態(tài)摩擦是感覺的舉動,在整個表面,與摩擦相反。 摩擦系數(shù)也有一個范圍【 0,1 】 ,值為0時,表面上的一個三維物體覺得“滑” ,值為1時,感到非常粗糙的。摩擦力通常呈現(xiàn)在一方向上,切向碰撞點的觸覺在物體表面。
B 編輯攪拌器使用一組非重疊的窗口,也即是所謂的空間來修改各方面的三維場景和對象。每個空間分成了一套領(lǐng)域和背景。也就是,他們提供功能在選定對象的類型的基礎(chǔ)上。例如,如果一個相機選定的嵌板即將展出組件,允許建模者改變攝像機的焦距長度和視角,但如果對象的另一種類型是選定的,這些組件將不會出現(xiàn)。
圖6顯示屏幕發(fā)射按鈕 ,它是用來編輯觸覺網(wǎng)格的屬性的。它包括用戶界面面板允許建模改變圖形遮光性能的網(wǎng)格,進行簡單的重新嚙合行為,并修改觸覺性能而選擇網(wǎng)格。
HAMLAT沿襲了脈絡(luò)的敏感行為,當攪拌器只顯示觸覺編輯小組時, 多邊形網(wǎng)格對象被選中。在未來的日子,這個小組可能會重復支持觸覺建模的其他物體類型 , 例如NURB表面。
攪拌器框架提供了許多用戶界面元件(例如,按鈕,滑塊,彈出式菜單),在可用于編輯的基本數(shù)據(jù)結(jié)構(gòu)。那個觸覺性能的網(wǎng)格對象是編輯的使用滑塊,或進入一個浮動值到一個文本框位于毗鄰的滑桿。當價值滑塊/方塊值改變時,觸發(fā)一個事件,在攪拌器窗口會顯示一個獨特的識別標志,表明窗分制度。 這項活動是為觸覺和HAMLAT代碼應(yīng)稱為更新觸覺用于當前選定的主題詞。
C .觸覺視覺渲染
攪拌器目前支持的圖形繪制場景使用內(nèi)部渲染或外部渲染(例如, [ 4 ] ) 。本著這一精神,觸覺渲染所使用的HAMLAT已發(fā)展為一個外部渲染。它使用OpenGL和openhaptics工具箱[ 5 ]分別執(zhí)行圖形和觸覺的渲染。
三維場景,正在建模的渲染應(yīng)用在兩個階段:第一個是圖像場景,第二個是觸覺。第二個是要求的,因為openhaptics工具包攔截命令傳送給OpenGL的管道和使用它們,以顯示現(xiàn)場用觸覺渲染技術(shù)。在此通過觸覺性能,使每個網(wǎng)格對象使用得多,在通過同樣的方式和顏色,照明所使用的圖形呈現(xiàn)給他們,界定這類材料為每個對象節(jié)省CPU周期, 照明及圖形材料從觸覺繪制通過時被排除。圖7顯示的源代碼是用來適用材料性能在觸覺繪制通過。那個觸覺渲染是獨立的從攪拌機框架在它的存在以外的原始源代碼。然而,它仍然嚴重依賴于攪拌器的數(shù)據(jù)結(jié)構(gòu)和類型。
D腳本
攪拌器( bpy )包裝,暴露了許多內(nèi)部數(shù)據(jù)結(jié)構(gòu),使內(nèi)部的Python 腳本引擎可能訪問它們類似的數(shù)據(jù)結(jié)構(gòu),用于代表網(wǎng)格物體在這個攪拌器的框架內(nèi)包裝,一個三維場景讓用戶定義的腳本訪問和修改的內(nèi)容。
一個網(wǎng)格物體的觸覺特性可以通過網(wǎng)絡(luò)包裝來達到已添加到每個這些階段和通過訪問的Python腳本系統(tǒng)。圖8 顯示原碼來讀取觸覺性能,從網(wǎng)格對象和出口到一個文件。類似的代碼是用來進口/ 出口HAML場景從到檔案。
在HAMLAT的應(yīng)用,腳本允許從haml文件中讀和轉(zhuǎn)載進口的三維場景, 出口腳本,允許三維場景要寫入到一個HAML文件中,并且應(yīng)用在另一個HAML應(yīng)用中
該bpy封套也揭露攪拌器窗制度。圖9顯示了小組時,會出現(xiàn)用戶出口三維場景向haml檔案格式。它允許用戶指定的補充資料關(guān)于應(yīng)用程序,如描述,目標硬件和系統(tǒng)需求。這些都是領(lǐng)域所定的haml規(guī)格[ 2 ] ,并已列入與執(zhí)筆的現(xiàn)場,作為部分的haml檔案格式。 用戶界面組件上顯示的這個小組很容易擴展到未來修改的HAML。
目前,HAMLAT支持基本功能建模和繪制觸覺 -視覺應(yīng)用。場景可以創(chuàng)建,編輯,預覽,和出口的部分一個數(shù)據(jù)庫,以便使用在其他觸覺-視覺應(yīng)用。不過,還有很多方法,能夠讓我們繼續(xù)利用現(xiàn)有的攪拌器的功能。 作為今后的工作中,我們的擴展計劃,以HAMLAT包括支持其他觸覺平臺和設(shè)備。
目前,HAMLAT一系列的設(shè)備是支持自互動渲染,是依賴于該openhaptics工具箱[ 5 ] 。為了支持其他設(shè)備,跨平臺的圖書館,如chai3d或haptik可能被用來執(zhí)行渲染。這些圖書館支持繪制大范圍的觸覺硬件。所幸的是,由于我們執(zhí)行中模塊化,只有互動觸覺渲染需要改變。 此外,支持多種硬件平臺, 用戶界面組件,使選拔和配置觸覺設(shè)備將是重要的。多數(shù)的可能,這將是,增加一條,作為用戶使用部分編好程序在攪拌器中。 加入支持觸覺設(shè)備的一部分,編輯任務(wù)也是有計劃的功能。這將方便建模修改形狀,位置。和其他在現(xiàn)場的對象。舉例來說,多選擇方式在攪拌允許用戶操縱地理的三維物體用自然的界面,類似重塑一塊粘土。HAMLAT將在此基礎(chǔ)上讓建模操縱接口。
參考文獻:
[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