Jump to content
  • Advertisement
Sign in to follow this  
kajjait

GPU skinning artifacts

This topic is 4057 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

I just moved my skinning animation function onto the GPU and im getting a few artifacts with 2 of my models. both of them seem to have one part of the model that is translating and rotating improperly. the only things that were changed with the model are that i used the ConvertToIndexedBlendedMesh, and am using my own skinning on the GPU instead of UpdateSkinnedMesh. I dont think it could be a problem updating the frame matrices because it works fine for other models, and it was never a problem before i moved the skinning onto the gpu. does anyone know what could be causing these artifacts?

Share this post


Link to post
Share on other sites
Advertisement
Right now i changed it to run the good animations on the GPU, and the busted ones on the CPU, but i really dont understand why this is happening, the only thing i can think of is to have an artist go over the models and re-rig and animate them?

Share this post


Link to post
Share on other sites
Are you using the correct number of weights as specified in the vertex data? The D3DXSkinInfo stuff stores n-1 weights in the vertex data with the remaining weight implicitly defined by 1-sum(vert_weights). A rigid skin (with each vertex weighted wholly to one bone) is represented as only indices and NO per-vertex weights. I do all my skinning on the GPU with meshes created through ID3DXSkinInfo::ConvertToIndexedBlendedMesh and its works just fine.

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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!