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

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

无视CC攻击CDN ,DDOS打不死高防CDN,免备案CDN,月付58元起

快快CDN主营业务为海外服务器无须备案,高防CDN,防劫持CDN,香港服务器,美国服务器,加速CDN,是一家综合性的主机服务商。美国高防服务器,1800DDOS防御,单机1800G DDOS防御,大陆直链 cn2线路,线路友好。快快CDN全球安全防护平台是一款集 DDOS 清洗、CC 指纹识别、WAF 防护为一体的外加全球加速的超强安全加速网络,为您的各类型业务保驾护航加速前进!价格都非常给力,需...

solved为你推荐
php虚拟主机求php虚拟主机提供商。。。哪里的 好,价格也优惠的网站域名注册有没有免费的域名申请域名备案查询如何查询自己域名是否备案,怎么查询备案号?虚拟主机推荐谁可以给推荐下好用的虚拟主机域名服务什么叫主域名服务器?域名服务商最好的域名服务商是哪一家国内免费空间国内哪里有免费的空间?美国vps主机美国VPS好?还是香港VPS好?云服务器租用云服务器租用需要注意哪些方面虚拟主机服务商请问哪个服务商的虚拟主机比较好呀
域名升级访问中 韩国服务器租用 域名服务器的作用 域名备案中心 什么是二级域名 westhost mediafire 表格样式 香港新世界电讯 租空间 国外网站代理服务器 个人空间申请 已备案删除域名 1g内存 新加坡空间 空间服务器 apnic 广州服务器托管 小夜博客 空间排行榜 更多