Sign in to follow this  
jorgander

Fixed function skinning possible?

Recommended Posts

Is fixed function matrix palette skinning possible, and if so, how? I did a bit of research and came up with a few things, most of them hardware and/or OS dependant. I'm wondering if there is a more standard implementation, perhaps not supported *everywhere*, but nearly so. I added glWeightPointerARB and glMatrixIndexPointerARB into my rendering code, naively assuming they would be supported by my card (GForce 7800GT). While my card wasn't made yesterday, it's not *that* old. However, wglGetProcAddress("glWeightPointerARB") and wglGetProcAddress("glMatrixIndexPointerARB") both return NULL. Basically I want to do soft skinning without a vertex program. Possible or no?

Share this post


Link to post
Share on other sites
I am impressed! You have found an ARB extension I did not even know existed [smile]

The extension string is GL_ARB_matrix_palette, and the specification is here.

My card (Radeon X1600) also doesn't support this extension, so I would guess that this extension has been dropped completely since high-level shaders came along.

Share this post


Link to post
Share on other sites
Matrix pallette skinning is probably not offered anymore on all recent hw and drivers. They want you to use shaders.

Share this post


Link to post
Share on other sites
To be honest, the fixed function T&L hardware wasn't very good at doing matrix palette skinning (IIRC). If you do need to support this class of hardware then you're probably best off implementing skinning in software on these platforms. If you really wanted to get fancy you could even have optimized codepaths for SSE support, but a basic C/C++ implementation should be reasonably usable, provided your meshes don't have an insane vertex count.

cheers,

Share this post


Link to post
Share on other sites
Quote:
Original post by Gooberius
To be honest, the fixed function T&L hardware wasn't very good at doing matrix palette skinning (IIRC).


I'm not sure why it's that big of a deal. It seems to be as simple as including extra properties per-vertex (the weights and matrix indices), extra uniform parameters (the matrices), and adopting the notion of each vertex T&L being a function of those matrices instead of just the worldvirew/projection. It's not much different from the regular fixed function process.

Share this post


Link to post
Share on other sites
Because companies (game or otherwise) are not interested in certain GL extensions so IHVs like nVidia don't want to invest time with them.
Today, like 90% of extensions are too old.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this