簡體   English   中英

父子矩陣鏈接/訂單層次結構

[英]Parent-Child Matrix Chaining/Order Hierarchy

我正在嘗試在XNA C#中創建Bone結構。

我正在嘗試通過與矩陣的父子關系實現這一目標。 當我旋轉父母時,孩子應該以相同的方式旋轉...

目前,它可以正常工作,但是在骨骼上執行IK例程時,一切都會變得瘋狂。

有人可以檢查我的代碼嗎? 向量中的ID 0是父代,而1是子代,相對於父代偏移52個單位...

        _boneList[0]._position = new Vector3(0, 0, 0);
        _boneList[0]._localTransform = _boneList[0]._rotationTransform * Matrix.CreateTranslation(_boneList[0]._position);
        _boneList[0]._globalTransform = _boneList[0]._localTransform;


        _boneList[1]._position = new Vector3(0, 52, 0);
        _boneList[1]._localTransform =  _boneList[1]._rotationTransform * Matrix.CreateTranslation(_boneList[1]._position);
        _boneList[1]._globalTransform = _boneList[1]._localTransform * _boneList[0]._globalTransform;

感謝您的幫助。

在我看來,您應該還有其他問題,也許是角度問題?

這是我在2D模式下達到的代碼,您可以在此處觀看實際操作

    //------------------------------------------------------------------------------------
    public void UpdateLocal( )
    {  
        Vector2 traslation = Translator.GetValue();
        float rotation = Rotator.GetValue();
        Vector2 scale = Scalator.GetValue();

        Matrix mTraslation, mRotation, mScale;
        Matrix.CreateTranslation( traslation.X, traslation.Y, 0, out mTraslation );
        Matrix.CreateRotationZ( rotation, out mRotation );
        Matrix.CreateScale(scale.X, scale.Y, 1 , out mScale );
        Matrix.Multiply( ref mScale, ref mRotation, out Local );
        Matrix.Multiply( ref Local, ref mTraslation, out Local );  
    }


    //---------------------------------------------------------------------------------
    protected virtual void SpecialUpdateTransformTopToDown( )
    {            
        UpdateLocal( );

        if ( Parent != null )
        {
             Matrix.Multiply( ref Local, ref (Parent as BoneData).Absolute, out Absolute );
        }
        else
        {
            Absolute = Local;
        }

        foreach ( BoneData child in _children.OfType<BoneData>() )
        {
            child.SpecialUpdateTransformTopToDown( );
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM