public sealed override void SetupEntity(MyEffectBase shader, MyRender.MyRenderElement renderElement)
        {
            base.SetupEntity(shader, renderElement);

            MyEffectModelsDNS effectDNS = shader as MyEffectModelsDNS;

            MyRenderCharacter character = renderElement.RenderObject as MyRenderCharacter;

            var bonesUsed = renderElement.BonesUsed;

            if (character.SkinMatrices != null)
            {
                if (bonesUsed == null)
                {
                    for (int i = 0; i < Math.Min(character.SkinMatrices.Length, MyRenderConstants.MAX_SHADER_BONES); i++)
                    {
                        m_bonesBuffer[i] = character.SkinMatrices[i];
                    }
                }
                else
                {
                    for (int i = 0; i < bonesUsed.Length; i++)
                    {
                        m_bonesBuffer[i] = character.SkinMatrices[bonesUsed[i]];
                    }
                }

                effectDNS.SetBones(m_bonesBuffer);
            }
        }