Sign in to follow this  
WhardieJones

HLSL Skinning X models

Recommended Posts

In the skinnedmesh SDK sample there is a comment that you can't use CloneMesh() (the stream declarator version) because it does something with the blend indices. The SDK sample uses CloneMeshFVF() instead and manually changes a semantics flag in the vertex declaration. I chose the CloneMesh() approach and after spending 2 hours, I almost got the model right (connected properly) but it is still slightly distorted. The neck stretches a little and so does the arm in animation. Rendering in fixed function mode works fine, so I believe the problem has something to do with the blend weights or blend indices. I would appreciate if anyone can shed some light on this. My vertices are non-FVF because I want to use normal mapping, so I'm not sure how I could use CloneMeshFVF() for this. Here's my vertex layout: float3 position, normal,tangent,binormal, float2 uv float4 blendweight,blendindices

Share this post


Link to post
Share on other sites
The indices are always packed in one DWORD. In your shader they will come in as int4.

BTW, I am cloning the mesh after the ConvertToIndexedBlendedMesh call to put it in the order I want. I am not having any problems with this messing up the bone data in the vertex buffer.

I want it like this for a skinned mesh with a max of 3 bone influences (like the Tiny_4anim.x file):

struct vertex
{
D3DXVECTOR3 pos;
D3DXVECTOR3 normal;
D3DXVECTOR2 Tex;
float weights[2];
DWORD Indices;
}

Then the header for my vertex shader is:

OutputTexVS VS( float3 posL : POSITION0,
float3 normalL : NORMAL0,
float2 tex0: TEXCOORD0,
float2 weights : BLENDWEIGHT0,
int4 boneIndex : BLENDINDICES0)



[Edited by - DXnut on March 14, 2006 2:41:19 AM]

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