Jump to content
  • Advertisement
Sign in to follow this  
AgentC

OpenGL Low-end hardware skinning & shaders

This topic is 2951 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,
let's say I want to do hardware skinning on OpenGL, including severely limited accelerators like the Intel GMA 950. All drivers I've seen for that card include only support for the ARBvp1 & ARBfp1 assembly shaders, not glsl. And, looking with OpenGL Extensions Viewer, it only supports 96 local & 96 global constants for ARBvp1, while on the Direct3D side, it supports 256 VS constant registers. I understand that 96 is the minimum required by the extension, but still this difference strikes me as odd.

But, I suppose there's nothing that can be done about it, except splitting geometry to chunks with fewer bones, falling back to software skinning, or just not bothering about such low-end cards on OpenGL. Or...?

Share this post


Link to post
Share on other sites
Advertisement
AFAIK, vertex shaders in the GMA950 are implemented in software. You might as well just write an optimised SSE skinning implementation. That combined with OpenMP will be as good (if not better) than doing the skinning in vertex shaders on the GMA.

That will also have the advantage of working efficiently on any older hardware from the P4 upwards....

Share this post


Link to post
Share on other sites
Ah, you're right. I was just thinking that perhaps the driver has more optimal access to the vertex data, even though it's still processing in software. Whereas with explicit software skinning, I'll have to reserve a VBO for each animated model, and upload new data as necessary.

Share this post


Link to post
Share on other sites
Nah, just use plain old vertex arrays - it'll be faster. (The GMA doesn't have it's own DDR3->DDR5 ram either, so uploading to a VBO is just doing a memcpy to another bit of main memory. i.e. a bit pointless).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!