外文翻译--延长搅拌机.doc
英文原文HAVE2007-IEEEInternationalWorkshoponHapticAudioVisualEnvironmentsandtheirApplicationsOttawa,Canada12-14October2007ExtendingBlender:DevelopmentofaHapticAuthoringToolSheldonAndrews,MohamadEid2,AtifAlamri2,andAbdulmotalebElSaddik2MultimediaCommunicationsResearchLaboratory-MCRLabSchoolofInformationTechnologyandEngineering-UniversityofOttawaOttawa,Ontario,KIN6N5,CanadasandrO71site.uottawa.ca,2teid,atifWabedmcrlab.uottawa.CaAbstract-Inthispaper,wepresentourworktoextendawellknown3Dgraphicmodeler-Blender-tosupporthapticmodelingandrendering.TheextensiontoolisnamedHAMLAT(HapticApplicationMarkupLanguageAuthoringTool).WedescribethemodificationsandadditionstotheBlendersourcecodewhichhavebeenusedtocreateHAMLATFurthermore,wepresentanddiscussthedesigndecisionsusedwhendevelopingHAMLAT,andalsoanimplementation"roadmap"whichdescribesthechangestotheBlendersourcecode.Finally,weconcludewithdiscussionofourfuturedevelopmentandresearchavenues.Keywords-Haptics,HAML,GraphicModelers,Blender,VirtualEnvironments.I.INTRODUCTIONA.MotivationTheincreasingadoptionofhapticmodalityinhuman-computerinteractionparadigmshasledtoahugedemandfornewtoolsthathelpnoviceuserstoauthorandedithapticapplications.Currently,thehapticapplicationdevelopmentprocessisatimeconsumingexperiencethatrequiresprogrammingexpertise.Thecomplexityofhapticapplicationsdevelopmentrisesfromthefactthatthehapticapplicationcomponents(suchasthehapticAPI,thedevice,thehapticrenderingalgorithms,etc.)needtointeractwiththegraphiccomponentsinordertoachievesynchronicity.Additionally,thereisalackofapplicationportabilityastheapplicationistightlycoupledtoaspecificdevicethatnecessitatestheuseofitscorrespondingAPI.Therefore,deviceandAPIheterogeneityleadtothefragmentationanddisorientationofbothresearchersanddevelopers.Inviewofalltheseconsiderations,thereisaclearneedforanauthoringtoolthatcanbuildhapticapplicationswhilehidingprogrammingdetailsfromtheapplicationmodeler(suchasAPI,device,orvirtualmodel).ThispaperdescribesthetechnicaldevelopmentoftheHapticApplicationMarkupLanguageAuthoringTool(HAMLAT).ItisintendedtoexplainthedesigndecisionsusedfordevelopingHAMLATandalsoprovidesanimplementation"roadmap",describingthesourcecodeoftheproject.B.BlenderHAMLATisbasedontheBlender1softwaresuite,whichisanopen-source3Dmodelingpackagewitharichfeatureset.Ithasasophisticateduserinterfacewhichisnotedforitsefficiencyandflexibility,aswellasitssupportsformultiplefileformats,physicsengine,modemcomputergraphicrenderingandmanyotherfeatures.BecauseofBlendersopenarchitectureandsupportivecommunitybase,itwasselectedastheplatformofchoicefordevelopmentofHAMLAT.Theopen-sourcenatureofBlendermeansHAMLATcaneasilyleverageitsexistingfunctionalityandfocusonintegratinghapticfeatureswhichmakeitacompletehapto-visualmodelingtool,sincedevelopinga3DmodelingplatformfromscratchrequiresconsiderabledevelopmenttimeandexpertiseinordertoreachtheleveloffunctionalityofBlender.Also,wecantakeadvantageoffutureimprovementstoBlenderbymergingchangesfromitssourcecodeintotheHAMLATsourcetree.HAMLATbuildsonexistingBlendercomponents,suchastheuser-interfaceandeditingtools,byaddingnewcomponentswhichfocusontherepresentation,modification,andrenderingofhapticpropertiesofobjectsina3Dscene.ByusingBlenderasthebasisforHAMLAT,wehopetodevelopa3DhapticmodelingtoolwhichhasthematurityandfeaturesofBlendercombinedwiththenoveltyofhapticrendering.Atthetimeofwriting,HAMLATisbasedonBlenderversion2.43sourcecode.C.ProjectGoalsAspreviouslystated,theoverallgoalfortheHAMLATprojectistoproduceapolishedsoftwareapplicationwhichcombinesthefeaturesofamodemgraphicmodelingtoolwithhapticrenderingtechniques.HAMLAThasthe"lookandfeel"ofa3Dgraphicalmodelingpackage,butwiththeadditionoffeaturessuchashapticrenderingandhapticpropertydescriptors.Thisallowsartists,modelers,anddeveloperstogeneraterealistic3Dhapto-visualvirtualenvironments.Ahigh-levelblockdiagramofHAMLATisshowninFigure1.Itillustratestheflowofdatainthehapticmodeling.HAMLATassiststhemodeler,orapplicationdeveloper,inbuildinghapto-visualapplicationswhichmaybestoredinadatabaseforlaterretrievalbyanotherhapticapplication.Byhapto-visualapplicationwerefertoanysoftwarewhichdisplaysa3Dscenebothvisuallyandhapticallytoauserinavirtualsetting.AnXMLfileformat,calledHAML2,isusedtodescribethe3Dscenesandstorethehapto-visualenvironmentsbuiltbyamodelerforlaterplaybacktoanenduser.Traditionally,buildinghapto-visualenvironmentshasrequiredastrongtechnicalandprogrammingbackground.Thetaskofhapticallyrenderinga3Dsceneistedioussincehapticpropertiesmustbeassignedtoindividualobjectsinthesceneandcurrentlytherearefewhigh-leveltoolsforaccomplishingthistask.HAMLATbridgesthisgapbyintegratingintotheHAMLframeworkanddeliveringacompletesolutionfordevelopmentofhapto-visualapplicationsrequiringnoprogrammingknowledge.Theremainderofthepaperisorganizedasfollows:inSection2,wepresenttheproposedarchitectureextensionsanddiscussdesignconstraints.Section3describestheimplementationdetailsandhowhapticpropertiesareaddedandrenderedwithintheBlenderframework.InSection4wediscussrelatedissuesandfutureworkavenues.II.SYSTEMOVERVIEWANDARCHITECTURETheBlenderdesignphilosophyisbasedonthreemaintasks:datastorage,editing,andvisualization.Accordingtothelegacydocumentation3,itfollowsadata-visualize-editdevelopmentcycleforthe3Dmodelingpipeline.A3DsceneisrepresentedusingdatastructureswithintheBlenderarchitecture.Themodelerviewsthescene,makeschangesusingtheeditinginterfacewhichdirectlymodifiestheunderlyingdatastructures,andthenthecyclerepeats.Tobetterunderstandthisdevelopmentcycle,considertherepresentationofa3DobjectinBlender.A3Dobjectmayberepresentedbyanarrayofverticeswhichhavebeenorganizedasapolygonalmesh.Usersmaychoosetooperateonanysubsetofthisdataset.Editingtasksmayincludeoperationstorotate,scale,andtranslatethevertices,orperhapsare-meshingalgorithmto"cleanup"redundantverticesandtransformfromaquadtoatriangletopology.Thedataisvisualizedusingagraphical3Drendererwhichiscapableofdisplayingtheobjectasawireframeorasashaded,solidsurface.Thevisualizationisnecessaryinordertoseetheeffectsofeditingonthedata.Inanutshell,thisexampledefinesthedesignphilosophybehindBlendersarchitecture.InBlender,dataisorganizedasaseriesoflistsandbasedatatypesarecombinedwithlinksbetweenitemsineachlist,creatingcomplexscenesfromsimplestructures.Thisallowsdataelementsineachlisttobereused,thusreducingtheoverallstoragerequirements.Forexample,ameshmaybelinkedbymultiplesceneobjects,butthepositionandorientationmaychangeforeachobjectandthetopologyofthemeshremainsthesame.AdiagramillustratingtheorganizationofdatastructuresandreuseofsceneelementsisshowninFigure2.Asceneobjectlinkstothreeobjects,eachofwhichlinktotwopolygonalmeshes.Themeshesalsoshareacommonmaterialproperty.Theentiresceneisrenderedononeofseveralscreens,whichvisualizesthescene.WeadopttheBlenderdesignapproachforourauthoringtool.Thedatastructureswhichareusedtorepresentobjectsina3Dscenehavebeenaugmentedtoincludefieldsforhapticproperties(e.g.,stiffness,damping);userinterfacecomponents(e.g.,buttonpanels)whichallowthemodelertochangeobjectpropertieshavealsobeenupdatedtoincludesupportformodifyingthehapticpropertiesofanobject.Additionally,aninteractivehapto-visualrendererhasbeenimplementedtodisplaythe3Dscenegraphicallyandhaptically,providingthemodelerorartistwithimmediatefeedbackaboutthechangestheymaketothescene.inthecurrentversionoftheHAMLAT.themodificationstotheBlenderframeworkinclude:datastructuresforrepresentinghapticproperties,aneditinginterfaceformodifyinghapticproperties,anexternalrendererfordisplayingandpreviewinghapticallyenabledscenes,scriptswhichallowscenestobeimported/exportedintheHAMLfileformat.AclassdiagramoutliningthechangestotheBlenderrameworkisshowninFigure3.ComponentswhichareertinenttoHAMLATareshadedingray.HAMLATbuildsonexistingBlendersub-systemsbyextendingthemorhapticmodelingpurposes.Datastructuresforrepresentingobjectgeometryandgraphicalrenderingareaugmentedtoincludefieldwhichencompassthetactilepropertiesnecessaryforhapticrendering.ToallowtheusertomodifyhapticpropertiesGUIComponentsareintegratedaspartoftheBlendereditingpanels.TheoperationstriggeredbythesecomponentsoperatedirectlyonthedatastructuresusedforrepresentinghaticcuesandmaybeconsideredpartoftheeditingstepoftheBlenderdesigncycle.Similarlytothebuilt-ingraphicalrenderer,HAMLATusesacustomrendlererfordisplaying3Dsscenesgrphcalandhaptcall,anisineednoftheBlenderrenderer.Thiscomponentisdevelopedindependentlysincehapticalandgraphicalrenderingmustbeperformedsimultaneouslyandsynchronously.Asimulationloopisusedtoupdatehapticrenderingforcesataratewhichmaintainsstabilityandquality.Adetaileddiscussionoftheimplementationoftheseclassesandtheirconnectivityisgiveninthenextsection.IIIIMLIEMENTATIONADataStructureA.1MeshDataType