News Update 5/23/2011 - Weighted Vertices

Super Cool Wicked Guy
🌠 Staff
Joined
May 28, 2006
Messages
478
Best answers
0
@Zeth vertex weights are not that long in games since the computations are heavy...standart HL uses software skinning and vertex weights would use 4time the power of non vertexweights models, that's why older games doesn't support it. Anyway i thought about vertex animations and there are some problems with it wich are the reason why it isn't used that much. First they are huge to store, 2nd they are **** to blend, just look at zeq2lite when flying from left to right, the model flattens. 3rd without submeshing it's hard to blend mutiple animations for different part of a model together, you most over have no hirarchial structure. Most games today use bones for a simple reason...it's faster and easyer to hardware accelerate. To animate a vertex animation based model you would have to store current vertex and the vertex of the next frame and blend. Wich means storing at least 2 times the data on the GPU and you need to parse the new geometry to the GPU every frame wich is slow aswell.
 
Member
🎈 Advanced
Joined
Apr 10, 2004
Messages
64
Best answers
0
@Zeth vertex weights are not that long in games since the computations are heavy...standart HL uses software skinning and vertex weights would use 4time the power of non vertexweights models, that's why older games doesn't support it.
My wording was that older mesh formats from 1999 allowed vertex weighting (which they do). If we exclude tech demos from research groups/GPU creators and consider commercial games only, yes, you may hit the 2001 margin.

Anyway i thought about vertex animations and there are some problems with it wich are the reason why it isn't used that much. First they are huge to store, 2nd they are **** to blend, just look at zeq2lite when flying from left to right, the model flattens. 3rd without submeshing it's hard to blend mutiple animations for different part of a model together, you most over have no hirarchial structure.
ZEQ2-lite uses morph-based vertex animation NOT pose-state based vertex animations. There's quite a huge difference. Morph-based vertex animations are essentially just snapshots of the ENTIRE mesh every single frame. This is why Quake 3 naturally can perform vertex animations, but yes, it's also why the file sizes are so large. The flattening of models, however, is not due to the vertex animation format (at least not fully). The reason it occurs is because the engine naturally interpolates the previous frame with the next (sort of an automatic vertex tween). Since many of ZEQ2-lite's animations were designed in single frame styles, there's no animation data to propagate the tween and thus the model contorts to try and predict the transition. If bone data existed OR if the animations had a higher frame count, a normal and natural tween would occur.

Additionally, you don't need to submesh the model with pose-state vertex animations. Just like skeletal blend masks (which I'm sure you use to play individual bone-based animations on specific parts), you can use a vertex pose state on a particular set of vertexes with a simple mask. The result is that the file size is very small and the vertex-pose can be weighted to any value you choose on any region of the model.

Most games today use bones for a simple reason...it's faster and easyer to hardware accelerate. To animate a vertex animation based model you would have to store current vertex and the vertex of the next frame and blend. Wich means storing at least 2 times the data on the GPU and you need to parse the new geometry to the GPU every frame wich is slow aswell.
Just to clear any misconceptions, let me say that morph-based vertex animations are actually much faster than skeletal animations (but use more memory, obviously). Pose-state animations are only slightly slower, but that's only if are aren't using a vertex shader for hardware skinning (which you should be unless your bottleneck is GPU-oriented already [which it shouldn't be]). Even if you were using pose-state animations on the CPU, you'd see similar (if not better) performance than using bones to track the changes -- not to mention how much easier it'd be on your artists. Modern games do not use skeletal based animations exclusively but rather rely on what I mentioned above -- facial expressions / clothing and so forth with pose-state vertex animations and core limb movement handled with skeleton animation.

I can understand completely though if time of development overhead would be a complication.
 
Member
✔️ HL Verified
🍂 Regular
Joined
Oct 16, 2006
Messages
379
Best answers
0
Location
the Netherlands
My knowledge on models is quite slim, but do weighted vertexes automaticly increase the polycount ?
Also, what changes did you have to make in the model renderer ?
 
Member
🎈 Advanced
Joined
Apr 10, 2004
Messages
64
Best answers
0
My knowledge on models is quite slim, but do weighted vertexes automaticly increase the polycount ?
Weighted vertexes in themselves do not effect triangle count, no. You have essentially the same vertexes as you normally would. The difference is that you are assigning the vertexes to more than one bone. Rather than a single bone influencing the vertexes movement, you can create a blend or "weight" value (a number from 0 to 1.0 gauging the percent). This weight value will let you control exactly how much influence the bone's movement has on the vertexes final position.

While I'm no 3D modeler, I'd assume usually with proper support for vertex weights you'd find yourself adding additional rows of triangles on areas like the knees/shoulders and other joints to make sure you are able to create a rig that is flexible/transitional enough. Therefore in the sense of that, you would (slightly) increase the triangle count.
 
Super Cool Wicked Guy
🌠 Staff
Joined
May 28, 2006
Messages
478
Best answers
0
OK that was something new for me^^ but i don't know if we could use vertex based animations that well because we use GPU skinning and my main point was...the memory amount, you would somehow have to transfer the data to the gpu and for around 400-500 animations per model that would be quite a lot of data. Sure not everything needs to be stored the whole time but updating vertexdata might stall teh GPU depening on the amount of data send. Also we didn't want to add a whole new modelformat. The current implementation still supports old non weighted HL1 models so that freelance modelers don't have to worry about vertexweights.
Oh and vertex weights are essential for hightpoly models...they would look like **** without it
 
Everyone's Favorite Weirdo :D
🌠 Staff
✔️ HL Verified
💻 Oldtimer
Joined
Dec 31, 2001
Messages
1,423
Best answers
0
It's Unreal Tournament 3, you bastard!
lol, wth?

This thread got pretty damn interesting, Im learning so much more stuff because of this. Zeth, do you work for Zeq2?
 
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
lol, wth?

This thread got pretty damn interesting, Im learning so much more stuff because of this. Zeth, do you work for Zeq2?
Thats right. He and i usually have interesting discussions left and right :p

Sadly for my side he outweighs me in knowledge by a mile.
 
New Member
Joined
Jul 7, 2009
Messages
2
Best answers
0
i had no clue you guys used 3ds max/ or i think mudbox since thats what i use to make models in my graphic communications class. pretty cool to see what i do inclass contributing to how this game is gonna be :)
 
Super Cool Wicked Guy
🌠 Staff
Joined
May 28, 2006
Messages
478
Best answers
0
Then goku got a hole in his pants XD
 
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
In other words, he joins the team and helps ESF with stuff..
Just cause hes working on a different project doesnt mean hell work for us if he starts posting on this forum. He is a member like everyone else.
 
Force Pit Member
Joined
Dec 1, 2002
Messages
874
Best answers
0
Location
Gothenburg, Sweden
Think Denz had wishful thinking behind his post! And so do I, been reading what you guys are saying. I like this Zeth, he is unbiased as Prozac mentioned and seems to have a lot of knowledge. Sadly, this late in the game, I presume it wouldn't work out too well if he moved to ESF. :)
 

Users who are viewing this thread

Top Bottom