Vertex Weights Example

Blitz3D Forums/Blitz3D Programming/Vertex Weights Example

TeraBit(Posted 2003) [#1]
Hi all,

I threw together some examples of what Vertex Weighting is and the difference it can make in even crude cases (as here!) The examples below both have only two bones...



Above: A simple example of how a basic weighted capsule might deform (I have to stress that I didn't set them up carefully at all! Just threw in the defaults).



Above: An example of how the same capsule will deform with rigid binding (no matter how hard you try to set it up).

You can also see them move with these two video clips (Zipped 500kb in total)


dangerdave(Posted 2003) [#2]
Good show Lee!
The video clips are very convincing.
Hopefully the Blitz Master will implement it soon.


Mustang(Posted 2003) [#3]
Yup... this is exactly what I meant... if you use even modest amount of polygons ("vertex density") then you need weights - or you get sharp ugly kinks.

If TeraBits capsules would have been say 6 or 8 sided with very few lenghtwise segments, you MIGHT have been okay even without weights... but I certainly would like to use character models that look just as good as any new game content out there today, and I need more than 666 polygons per character to do that. And weights for animating them nicely.


(tu) sinu(Posted 2003) [#4]
"Good show Lee! "

exactly what we needed, look how much better the first example is even for a simple shape. Now think how much improvement it gives us for highly detailed characters.


skn3(Posted 2003) [#5]
Here is a real world example which I have been trying and trying to get looking nicer in unweighted.

http://skn3.acsv.net/junk/weightavis.zip


skidracer(Posted 2003) [#6]
I seem to remember a knee bone in the song.

Perhaps you could parse a b3d file and automatically insert auto slurping bones at such joints. They could even compress / zscale as the joint was bent.

.\.
 .\.
  o\|o
  o/|o
 ./.
./.


The o's represent verts reassigned to added knee bone that is parented same as shin and oriented using slurped quartenion maths?


TeraBit(Posted 2003) [#7]
Unfortunately this cannot be controlled from the model package. This would be a 'BlitzTakeAGuessAtWhatYouWant' command. Why not just put weighted verts in? The file format already supports it and so to the moddeling packages so..


Mustang(Posted 2003) [#8]
Perhaps you could parse a b3d file and automatically insert auto slurping bones at such joints. They could even compress / zscale as the joint was bent.


Uhh... and THIS would be easy to code then, eh? :)

What if I WANT to make a kink like that... this "auto feature" would not let me do that! Just give us the bloody weights, or I have to show you with my monster model why the weights are needed... walk / run animations are simple stuff compared few moves he/she/it makes :)


TeraBit(Posted 2003) [#9]
I wonder if vertex weights are interpreted in exactly the same way by different pacakges, Lightwave, Max, CFX?


Mustang(Posted 2003) [#10]
I wonder if vertex weights are interpreted in exactly the same way by different pacakges, Lightwave, Max, CFX?


Not necessarily... LW has bones & weightmaps of course, but it also has several other options like followers etc that affect the final deformation of the vertices.

I think it is then down to exporters/converters to make the .B3D output look good, ie like it looks in the animating soft.

Of course you can support only subset of the features, and animators have to then use only the basics like bones & weightmaps. This might lead bit more complicated setups (more "control" bones & weightmaps) than "partially automated fixes" that LW for example has - but I would take "weightmaps only" option anyday, because without those it is just impossible to animate characters nicely.


TeraBit(Posted 2003) [#11]
Yeah I used to wonder why the head of my model moved with my arms until I found the 'WeightMaps Only' Option.


Mustang(Posted 2003) [#12]
until I found the 'WeightMaps Only' Option


:D