- Affine motion: "globale beweging" van het karakter waarbij elke mesh wordt beïnvloed door 1 dominant bot.
- Residual motion: beweging onder invloed van de andere botten, deze beweging is het meest uitgesproken rond de gewrichten waar de "huid" sterk wordt beïnvloed door verschillende botten.
Boven zie je de affine motion. Elke mesh wordt beïnvloed door 1 bot. Vooral aan de gewrichten zie je gaten in de mesh. Dit komt omdat rond de gewrichten de meshes worden beïnvloed door meerdere botten terwijl er hier maar invloed is van 1 bot.
Hier zie je de restbeweging. Hier heb je alleen de invloed van de andere botten. Zoals je ziet is het plaatje niet helemaal correct. Sommige delen van de mesh maken een veel te grote swing!
Het probleem zit bij de berekening van de bot/mesh relatie. We kennen een mesh toe aan een bot als de meerderheid van zijn punten het meest wordt beïnvloed door dat bot. Sommige punten worden echter veel meer beïnvloed door een ander bot. Dus deze punten waren beter toegekend aan een ander bot. Dit zijn de punten die worden "meegetrokken" met een ander bot in de mesh.
Een bewijs voor deze redenering wordt hierboven getoond. Hier hebben we punten van de mesh die sterk worden beïnvloed door een ander bot niet mee getransformeerd. Dan zie je een beeld dat meer lijkt op wat we eigenlijk willen bekomen.
De oplossing is volgens mij om in plaats van voor elke mesh een dominant bot te berekenen een dominant bot te berekenen voor elk punt van de mesh. Dus een veel fijnere methode.
Dat wil niet zeggen dat moesten we de methode toepassen op de "foute" restbeweging we een fout beeld zouden renderen. De fuzzy boxes gaan wel heel inefficiënt zijn voor de punten met grote uitwijking. Hoewel het interessant is om te onderzoeken of dit heel veel gaat verschillen in de globale framerate. Dus de vraag is: hoe groot is de invloed van foute bot/mesh toekenningen op de methode?
Hier volgt zeker nog een part 2!
Geen opmerkingen:
Een reactie posten