PDA

View Full Version : Vertex Weighting Extensions



Reckoner
04-17-2002, 03:47 PM
I want to make use of either the GL_EXT_vertex_weighting or GL_ARB_vertex_blend extensions. Will either one be supported on both ATI and NVidia cards?

Korval
04-17-2002, 04:06 PM
Probably not. Both of these extensions are rendered pretty much useless by vertex program/shader extensions. You can write your own versions of these with those more powerful extensions. Unfortunately, neither nVidia nor ATi plan on supporting the same vertex program extension.

jwatte
04-17-2002, 05:21 PM
The reason these extensions are useless is that nVIDIA support two matrices, and ATI support four. That's certainly not enough to render a fully skinned figure :-/ In addition, when you only support two matrices, you can't even do things like render a triangle which consists of once vertex that's bound to bones A and B, and another vertex that's bound to bones B and C.

These extensions force you to split your geometry in a gazillion small buffers, each of which requires significant set-up, leading to an enormous waste of time. It's faster to do the blending yourself in unoptimized C code...

What's even worse: these extensions require that you specify a weight per POSSIBLE matrix, so if they supported 16 matrices, you'd have to specify 16 weights. Per vertex. Yuck!

Do what the man said, and build a vertex program/shader to do your blending, using indirect addressing. You pick the trade-off between speed and quality. And there are no per-triangle limitations, only per-vertex. Yum!

Except you're likely to run out of matrix constant space for the vertex programs, if you're doing a regular humanoid, and have to split your mesh in two or three pieces. Still beats those other extensions.

[This message has been edited by jwatte (edited 04-17-2002).]

Reckoner
04-17-2002, 06:09 PM
Thanks for the replies. I am actually not doing skeletal animation. I just want to add a subtle motion to a display list. I will have to split up my list for 2 matrices but I think 4 would be enough.

A Vertex program would be great but I would rather use an extension that is supported by multiple manufacturers. I guess I can use the vertex blend extension on ATI and an NVidia vertex program.

Anybody know any good samples for vertex programs similar to this (other than nvidia.com)?

Pentagram
04-18-2002, 04:26 AM
But when you try to use a vertex program you wil have to program the standard pipeline again (lights, texgen,...), with these extensions you still use the "standard" pipeline.
(Or am I wrong on this)

mcraighead
04-18-2002, 12:53 PM
Originally posted by Korval:
Unfortunately, neither nVidia nor ATi plan on supporting the same vertex program extension.

Not true...

- Matt

Nutty
04-18-2002, 01:02 PM
Cor.....
That would be nice.. Are you referring to GL 2, or something before then? http://www.opengl.org/discussion_boards/ubb/smile.gif

mcraighead
04-18-2002, 05:24 PM
Relatively near future. Read your ARB minutes (I think they've been posted for the March meeting).

- Matt