Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


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.

  • You cannot reply to this topic
6 replies to this topic

#1 anders211   Members   -  Reputation: 202

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.

Sponsor:

#2 Hodgman   Moderators   -  Reputation: 31786

Like
0Likes
Like

Posted 17 February 2013 - 05:24 PM

It depends on how you implement your shader.
Somewhere from 64-128 per sub-mesh should defiantly be possible.

#3 belfegor   Crossbones+   -  Reputation: 2716

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...

 

EDIT: I cant google concrete answer:

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.


#4 mhagain   Crossbones+   -  Reputation: 8275

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...

 

EDIT: I cant google concrete answer:

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.


#5 L. Spiro   Crossbones+   -  Reputation: 14215

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.

It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#6 Anddos   Members   -  Reputation: 515

Like
0Likes
Like

Posted 26 February 2013 - 02:51 AM

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


:)

#7 dragon.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