situationsolved

solved  时间:2021-01-17  阅读:()
Page1of4DanMorris'snoteson:EigenSkin:RealTimeLargeDeformationCharacterSkinninginHardwarePaulKry,DougJames,DineshPaiThebigpictureoWehavesome"skeleton"thatweknowhowtomovearound.
Intheirexample,it'sactuallytheskeletonofahand,butitcouldbeanysetoffixedrigidobjectsthatareattachedtoeachother.
Thewholepaperassumesthatmovingthesethingsaroundisasolvedproblem.
oWehavesome"softtissue"ontopoftheskeleton.
Weknowwhereeachvertexisatrest,butwewanttoputitatanice-lookingplaceasthebonesmovearound.
Notopologychanges,nonewverticesorremovedvertices.
SSD(skeletal-subspacedeformation)oWhat'sthesimplestpossibleapproachtomovingverticesaroundwithanunderlyingskeletonTheabsolutesimplestapproachistosaythateachvertexisjustattachedtoonebone,andwhereverthatbonemoves,thevertexmoveswithit.
Inotherwords,eachvertexstoresitspositionrelativetooneofthebonesandisrenderedinthelocalreferenceframeofthatbone.
I'llcallthis"stupidskeletaldeformation".
What'swrongwiththisTypicallytissuesactuallydeformasanunderlyingbonemovesaround,especiallyneartheintersectionoftwobones.
Thismethoddoesn'tcapturethis(verticesnevermoverelativetotheirneighbors),sotissueneverdeforms,andsometissuewouldjustpenetrateinsideneighboringtissuewhenajointmoved.
Thisisexactlythesameasusingyourfavoriterigidmeshclasstorepresentverticesandskippingthebonealtogether.
JustrotateandtranslateyourCMesh'sinsteadofyourbones.
Figure1:The"Morrisalgorithm"for"stupidskeletaldeformation.
"Eachstraightlineisabone,andeachcurveisasofttissuemesh,inwhicheachvertexis"attached"toexactlyonebone.
Notethatthesofttissuespenetrateeachother.
ThesituationwouldbeevenmessierifIdidn'thavethebigdiscontinuityinthemiddleofthe"surface".
Page2of4oWhat'sthenextstepupfromthisLet'ssayeachvertexstoresacouplepiecesofinformation…ifI'mavertex,Iknowwhichbonesmightaffectmyfinalposition,howfarIamfromeachofthosebonesatrest,andhow"important"eachboneisindecidingmyfinalposition(i.
e.
Istorea"weight"foreachbone).
WhenIgotorendermyself,Ileteachbone"vote"formycurrentposition,likethis://Mypositioninworldspacepositionp=(0,0,0);foreachbonethataffectsme{findthisbone'scurrenttransformation(positionandrotation);findmyownpositionrelativetothisboneatrest;transformthispositionintotheglobalreferenceframe;multiplythisglobalpositionbymy"weight"forthisbone;addthispositiontop;};glVertex3f(p.
x,p.
y,p.
z);This(Ithink)isthe"skeletalsubspacedeformation"algorithm(SSD)It'simportantthatverticesnearajointhaveroughlyequalweightsforbothbonestheylivenear.
Verticesinthemiddleoftheboneareprobablyaffectedonlybythatbone.
Theeffectisthatthere'snofunnyself-collision,sinceverticesnearthejointsareinterpolatedbetweenjoints.
Infact,forthispaper,theirSSDweightsarejustderivedbasedondistancetoabone…ifI'mclosetoaboneinanearest-pointsense,itgetsahighweight.
Asbonesgetfartheraway,theygetlowerweights.
Abovesomethresholddistance,abonedoesn'taffectmeatall.
oSSDisgoodenoughforalotofapplications.
It'seasytoimplementandavoidscertainawkwardself-collisions.
Page3of4oAnothernicepropertyofSSDisthattheonlythingsIhavetodoonlineforeachvertexareadditionsandmultiplicationsofsomeknownconstants.
Theonlythingsthatchangefromvertextovertexarethevertexpositionandtheweight,whichmakesthisreallyeasytodoinavertexshader(Icanfeedtheweightinatextureorwhatever).
Iputtherelevantbonepositionsinglobalmatrices,andsendawholebunchofverticesdownthepipe.
EigenskinoButtheauthorsarenothappywithSSD…ithasnophysicalbasisandgivesstrange"bulging"deformationsnearjoints.
oSoI'mgoingtoproposeanewapproach,called"theMorrisalgorithmforstupidvertexsuperposition".
ForgetSSDentirely,andtrytodothis:Runasuper-fancyFEMsimulationofyourskeletonoffline,andtrackthepositionofeachvertexinawholebunchofdifferenthandpositions.
Trytolearnsomesetofweightsateachvertexthattellsyouthepositionofthatvertexasalinearfunctionofeverybonepositionandrotation.
Whenyourenderinreal-time,justmultiplytheweightsbythebonepositions/rotationsandvoila,youhavevertexpositions.
oConceptually,thisisokay.
Inpractice,it'sjusttoomuchinformationtorepresentwithlinearsuperpositionandsimpleweights,andthelearningproblemisjusttoohard.
oInstead,theauthorsrealizethatSSDis"prettyclose".
Soinsteadoftryingtogoofflineandbuildalinearmapfrombonepositiontovertexposition,theyjustplantorunSSDonline,anduseafancyofflinesimulatortobuildalinearmapfrombonepositiontoSSDerror.
Soooooooclever.
oThenwhenwerunitonline,wejusthaveafewmoremultiplicationstodo,butwestillbasicallyhaveasimplelinearfunctionwithlimitedper-vertexdatathatwecanruninavertexshaderprogram.
oInfact,usingofflinesimulationtolearnSSDerrorinsteadofabsolutepositionisthekeyinsightinthispaper.
ThelearningitselfisbasicallyjustSVD:Foreachjoint,collectabunchofsample"poses"(boneconfigurations)andalltheassociatedvertexpositionsfromyourfancyFEMprogram(theycleverlyonlyusetheverticesthatareaffectednoticeablybymovingagivenjoint).
RemembertowritevertexpositionsasoffsetsfromwhatyouwouldgetifyouusedSSD.
PutallthevertexpositionsforeachposeinabigmatrixTaketheSVDofthatmatrix.
Nowyouhaveasetof"eigendisplacements"(fundamentaldisplacementscausedbymovingthisjoint)and–foreachPage4of4vertex–itsexactdisplacementineachposeintermsoftheseeigendisplacements.
Again,rememberthatdisplacementsareallrelativetotheSSD-basedpositions.
AswealwaysdowithSVD,throwoutthelowsingularvaluesandalltheirassociateddisplacements.
Weusuallydoittosavespace,butherewedoitbecausewehavealimitednumberofmultiplicationswecanperforminthegraphicshardwarethatwe'reultimatelygoingtouseforrendering.
Afootnote…notethatIsay"foreachjoint"atthebeginningofthisbulletedlist.
Theychoosetorepresenteachvertex'sdisplacementduetoeachjointindependently,sothismethodwouldn'tworkiftherewerecomplexornon-lineareffectsinvolvingmultiplejoints.
oWhenwerendereachvertex,we'llloaduptheeigendisplacementbasis(whichwegotfromourSVD)forthatvertexandthecurrentboneconfigurationforrelevantbones,andletthehardwaredothelinearsuperposition.
Thenwe'llrunSSDandaddtheresulttowhatwegotfromoureigenstuff.
oOneinterestingpointcomesupthat'srelatedspecificallytotheimplementationingraphicshardware.
Foreachvertex,Icanonlyfit64floats(atthetime)ofper-vertexdata,plussomeglobaldatathatdoesn'tchangefromvertextovertex(likematrixtransformations).
TheyconcludethatIcanfitroughly10eigendisplacementspervertex.
SohowdoIallocatethatspaceIfavertexwasaffectedbyjustonesinglebone,Iwoulduseall10spotstostoredisplacementsrelatedtothatbone(meaningIcouldusethefirst10singularvaluesfrommySVD).
Ifavertexisaffectedbytwobones,doItakefivesingularvalues(eigendisplacements)fromeachboneIcould,orIcoulddofourandsix,basedonthemagnitudeoftherelevantdisplacementsorsingularvalues.
Theydon'treallyspeculateonthatmuch,buttheydoimplyintheirconclusionthattheyendupusingjustoneortwosingularvaluesfromeachjointforagivenvertexinsomecases(probablybecausethatvertexwasaffectedbyfiveortendifferentjoints).

数脉科技8月促销,新客减400港币,BGP、CN2+BGP、阿里云线路低至350元

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。官方网站:https://www.shuhost.com* 更大带宽可在选购时选择同样享受优惠。* 目前仅提供HKBGP、阿里云产品,香港...

老薛主机VPS年付345元,活动进行时。

老薛主机,虽然是第一次分享这个商家的信息,但是这个商家实际上也有存在有一些年头。看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港VPS主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港VPS。如果没有记错的话,早年这个商家是主营个人网站虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站...

Virtono:€23.7/年,KVM-2GB/25GB/2TB/洛杉矶&达拉斯&纽约&罗马尼亚等

Virtono最近推出了夏季促销活动,为月付、季付、半年付等提供9折优惠码,年付已直接5折,而且下单后在LET回复订单号还能获得双倍内存,不限制付款周期。这是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心包括罗马尼亚、美国洛杉矶、达拉斯、迈阿密、英国和德国等。下面列出几款VPS主机配置信息,请留意,下列配置中...

solved为你推荐
网站空间租赁租用哪个网站空间最好?虚拟主机购买虚拟主机需要购买吗?我想自己做个网站,只买了域名了,请问还需要怎么做呢?免费云主机免费云主机哪家好?asp主机空间Asp空间是什么空间啊?跟有的网站提供的免费空间有什么区别吗?网站域名域名和网址有什么区别域名注册查询怎么查看域名是否注册查询ip怎么查询IP地址免备案虚拟空间香港免备案虚拟主机空间怎么样虚拟主机管理系统推荐几个适合windows的免费虚拟主机管理系统虚拟主机软件哪种虚拟机软件好用
高防服务器租用qy 国外私服 鲜果阅读 mysql主机 html空间 hostker 秒杀预告 135邮箱 免费防火墙 空间合租 河南移动m值兑换 网游服务器 个人免费主页 华为云盘 东莞idc 网页提速 国外在线代理服务器 免费asp空间申请 杭州电信宽带 免备案jsp空间 更多