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).

UCloud新人优惠中国香港/日本/美国云服务器低至4元

UCloud优刻得商家这几年应该已经被我们不少的个人站长用户认知,且确实在当下阿里云、腾讯云服务商不断的只促销服务于新用户活动,给我们很多老用户折扣的空间不多。于是,我们可以通过拓展选择其他同类服务商享受新人的福利,这里其中之一就选择UCloud商家。UCloud服务商2020年创业板上市的,实际上很早就有认识到,那时候价格高的离谱,谁让他们只服务有钱的企业用户呢。这里希望融入到我们大众消费者,你...

6元虚拟主机是否值得购买

6元虚拟主机是否值得购买?近期各商家都纷纷推出了优质便宜的虚拟主机产品,其中不少6元的虚拟主机,这种主机是否值得购买,下面我们一起来看看。1、百度云6元体验三个月(活动时间有限抓紧体验)体验地址:https://cloud.baidu.com/campaign/experience/index.html?from=bchPromotion20182、Ucloud 10元云主机体验地址:https:...

Friendhosting 黑色星期五 VDS/VPS可享四五折优惠促销

Friendhosting商家在前面的篇幅中也又陆续介绍到,是一家保加利亚主机商,主要提供销售VPS和独立服务器出租业务,数据中心分布在:荷兰、保加利亚、立陶宛、捷克、乌克兰和美国洛杉矶等。这不近期黑色星期五活动,商家也有推出了黑五优惠,VPS全场一次性45折,虚拟主机4折,全球多机房可选,老用户续费可获9折加送1个月使用时长,VDS折后最低仅€14.53/年,有需要的可以看看。Friendhos...

solved为你推荐
美国虚拟主机空间请经验丰富的高手给指导一下,我想选择适合个人网站应用的美国虚拟主机(空间),都是哪些服务商比较好?海外服务器租用国外服务器租用网络服务器租用租网络服务器在哪些平台比较合适?info域名注册INFO域名有没有注册价值?域名购买域名注册和购买是一个意思吗?美国服务器托管美国服务器租用有哪些系列?免备案虚拟空间香港免备案虚拟主机空间怎么样虚拟空间哪个好虚拟内存一般设多大比较好?独立ip虚拟主机独立ip的虚拟主机和vps的区别和优势??100m虚拟主机100M虚拟主机有多大,能放多少东西
下载虚拟主机 免费试用vps 高防dns fastdomain 美国仿牌空间 外国域名 香港新世界电讯 好看的桌面背景图片 免费全能空间 777te 域名接入 linux服务器维护 免费申请网站 美国独立日 腾讯总部在哪 中国电信测速网站 万网空间 后门 cdn服务 九零网络 更多