• Create Account

# DX9 How much bones is supported for hardware skinning?

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

6 replies to this topic

### #1anders211  Members   -  Reputation: 218

Like
0Likes
Like

Posted 17 February 2013 - 05:15 PM

Hi,
I don't know why but there is number 35 in my mind. Maybe I read somewhere in the past that 35 is the limit of bones which my mesh (in X-file) can have. Could anybody confirm that it is true? Or maybe I have some code example where there was constant variable set to max number 35 and that is why this number is in my mind...I don't remember. I am asking because I am at the beginning of definition bone hierarchy in Blender for my mesh and I would like to know what maximum number may I use, for example to simulate finger movements I need at least 10 bones, so if there is really 35 bones support from DirectX I cannot waste 10 bones for fingers, I will use just 2 bones for thumbs and 2 for the rest of fingers.

### #2Hodgman  Moderators   -  Reputation: 44279

Like
0Likes
Like

Posted 17 February 2013 - 05:24 PM

Somewhere from 64-128 per sub-mesh should defiantly be possible.

### #3belfegor  Crossbones+   -  Reputation: 2807

Like
0Likes
Like

Posted 17 February 2013 - 05:24 PM

I think there is a max of 256 vertex shader constants that you can set with ver. 3.0

So you can have 256 / 4 = 64 = number of 4x4 matrices

You could try to do/attach hands separately as you might later have different pixel shaders for skin and for clothing...

http://msdn.microsoft.com/en-us/library/windows/desktop/bb172963%28v=vs.85%29.aspx

...

2. Equal to D3DCAPS9.MaxVertexShaderConst (at least 256 for vs_3_0).

...

I don't know what they mean by "at least", is that a guarantee minimum and can be more then this?

Edited by belfegor, 17 February 2013 - 05:40 PM.

### #4mhagain  Crossbones+   -  Reputation: 10111

Like
1Likes
Like

Posted 17 February 2013 - 06:20 PM

I think there is a max of 256 vertex shader constants that you can set with ver. 3.0

So you can have 256 / 4 = 64 = number of 4x4 matrices

You could try to do/attach hands separately as you might later have different pixel shaders for skin and for clothing...

http://msdn.microsoft.com/en-us/library/windows/desktop/bb172963%28v=vs.85%29.aspx

...

2. Equal to D3DCAPS9.MaxVertexShaderConst (at least 256 for vs_3_0).

...

I don't know what they mean by "at least", is that a guarantee minimum and can be more then this?

It's a guaranteed minimum and it can be more than this but in practice it won't be, even on DX10+ class hardware.  You'll also need to knock off a few for storing your MVP, any lighting or other constants, etc.

However, you only need a 4x3 (or 3x4 depending on your preference) matrix for skinning, so you get to have ~80 bones; a little bit better.

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.

### #5L. Spiro  Crossbones+   -  Reputation: 21913

Like
0Likes
Like

Posted 17 February 2013 - 08:17 PM

I don't know what they mean by "at least", is that a guarantee minimum and can be more then this?

Yes.

L. Spiro

Edited by L. Spiro, 18 February 2013 - 05:57 AM.

### #6Anddos  Members   -  Reputation: 558

Like
0Likes
Like

Posted 26 February 2013 - 02:51 AM

you are getting 35 from tiny.x, its made up of the biped rig

### #7dragon.R  Members   -  Reputation: 247

Like
0Likes
Like

Posted 26 February 2013 - 03:07 AM

I use 80 bones per submesh.Every bone uses 2 constants,the first float4 is a quaternion for rotation,the second is translation(xyz) and scale(w).

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

PARTNERS