Go Back   nV News Forums > Software Forums > Software Development

Newegg Daily Deals

Thread Tools
Old 12-26-06, 11:28 AM   #1
Registered User
Join Date: Aug 2006
Posts: 38
Talking Boneinterpolations

Yesterday I've do some experiments with an interactice geometrie program (See attachment). A bonesystem wich use a linear interpolation isn't a problem,
a month ago, I've wrote a vertexshader that do that with compressed matrices. For lowpolymodels is the linear interpolation doesn't makes trouble, but for medium and highpolymodels (>100K faces) it doesn't looks good. Knees or elbows looks more than a buckled pipe than something organic.

So I've create in Kig a geometrical model of my linear bone interpolation (blue) and add a lerp interpolation (green). The Lerp interpolation is verry cheap in the Verteshader it cost only a normalisation and a multiplication with the distance from joint to vertex (it's static, so it could be the W componet from gl_Vertex)
The convex side looks much better but the concav side has still a too large hack.

After that I've add a third interpolation: I've add the differens between linear and lerp to the the lerp interpolation (red) . It looks like a usable simple way to fill the hacks.

For the standart linear bonesystem I need two atribute vec4 per bone. One for weighting and one for indexing (practicel 3 bones per Vertex should be enough) for the lerp interpolation another storage would be better:
Each vertex is assigned to one joint. Most joints connect two and rare three bones. Because the jointnummber is needet for each vertex and every times the same bones are joined at the same joint, it would be enough to store the bonedepencys as uniform variable indexed by the jointnumber. So only one value is needet to index all bonerotationmatrices (or quarternions) The tree other values could be used for weighting up to four bones per joint (The sum is every time 1.0 so only 3 values for 4 bones are needet)
An other Idea is to store one value in that vector, that modify the interpolation form linear over lerp to hyperlerp. Then there remain only two values, but enough to store weigthing for three bones.

Writing a vertexshader shouldn't be a problem, but I don't know an editor that is able to edit meshes that are transformed by a custom vertexshader or is able to skinn for lerp or slerp. (I think about to add that features to my shadereditor, but it's too early for adding mesh editing tools)
Attached Thumbnails
Click image for larger version

Name:	bones_interpolate.png
Views:	262
Size:	24.0 KB
ID:	23066  
oc2k1 is offline   Reply With Quote
Old 12-29-06, 05:14 PM   #2
Registered User
Join Date: Aug 2006
Posts: 38
Default Re: Boneinterpolations

Blenders boneanimationsystem is realy unusable. Maya use the same linear interpolation ( It may be possible too use the flexors, but that isn't that I want) Blender and Maya have both the problem that they are developed for nonrealtime rendering
I'm thinking about coding a special program for skinning. But that take some days

I found in "Game Programing Gems 4" an artikel that use the slerp interpolation too (without any comment how to create the needet meshdata :P )
oc2k1 is offline   Reply With Quote
Old 01-04-07, 12:59 PM   #3
Official pain in the ass
Tuork's Avatar
Join Date: May 2003
Posts: 1,197
Send a message via MSN to Tuork
Default Re: Boneinterpolations

You guys are speaking in japanese.

I will hopefuly one day be able to come back and understand what it is you are talking about.

Sorry for the off-topic-ness...
My avatar: "An obscure and non sensical pattern made to get people to post what they think it is" - Vamp

Dell XPS M1530
Core2Duo T5550 1.86Ghz | 3GB DDR2 | 8600M GT 256MB | 250GB Hdd | BenQ FP202W 20" LCD | MX1000 mouse | Inspire T5400 5.1
Tuork is offline   Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

All times are GMT -5. The time now is 07:49 AM.

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.