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

HostRound:美国达拉斯/洛杉矶/纽约/荷兰大硬盘服务器,1TB NVMe+4TB HDD,$179/月

hostround怎么样?大硬盘服务器,高防服务器。hostround,美国商家,2017年成立,正规注册公司(Company File #6180543),提供虚拟主机、VPS云主机、美国服务器、荷兰服务器租用等。现在有1款特价大硬盘独服,位于达拉斯,配置还不错,本月订购时包括免费 500Gbps DDoS 保护,有兴趣的可以关注一下。点击直达:hostround官方网站地址美国\荷兰独立服务器...

咖啡主机22元/月起,美国洛杉矶弹性轻量云主机仅13元/月起,高防云20G防御仅18元/月

咖啡主机怎么样?咖啡主机是一家国人主机销售商,成立于2016年8月,之前云服务器网已经多次分享过他家的云服务器产品了,商家主要销售香港、洛杉矶等地的VPS产品,Cera机房 三网直连去程 回程CUVIP优化 本产品并非原生地区本土IP,线路方面都有CN2直连国内,机器比较稳定。咖啡主机目前推出美国洛杉矶弹性轻量云主机仅13元/月起,高防云20G防御仅18元/月;香港弹性云服务器,香港HKBN CN...

cera:秋季美国便宜VPS促销,低至24/月起,多款VPS配置,自带免费Windows

介绍:819云怎么样?819云创办于2019,由一家从2017年开始从业的idc行业商家创办,主要从事云服务器,和物理机器819云—-带来了9月最新的秋季便宜vps促销活动,一共4款便宜vps,从2~32G内存,支持Windows系统,…高速建站的美国vps位于洛杉矶cera机房,服务器接入1Gbps带宽,采用魔方管理系统,适合新手玩耍!官方网站:https://www.8...

solved为你推荐
cm域名注册CM域名后缀怎么样啊?百度对CM域名收录友好吗?asp主机空间Asp空间是什么空间啊?跟有的网站提供的免费空间有什么区别吗?免费国内空间谁知道国内哪个免费空间好,要1GB的域名注册查询如何知道域名注册信息?ip代理地址代理ip地址是怎么来的?me域名me域名怎么样?免费网站空间免费个人网站 空间100m网站空间50M的网页内容买100M的网站空间够用了没?免费网站空间申请需要一个免费的网站空间申请地址。北京网站空间网站空间哪里的好,
二级域名 安徽双线服务器租用 php主机租用 北京租服务器 BWH Hello图床 网站监控 ibrs 北京双线机房 asp免费空间申请 183是联通还是移动 hostloc 中国电信宽带测速网 购买国外空间 华为云服务登录 域名与空间 便宜空间 www789 西安服务器托管 德讯 更多