public void SetMaterialInstance(EngineNS.Graphics.CGfxMaterialInstance mtl, EngineNS.Graphics.Mesh.CGfxMesh mesh, int mtlindex)
        {
            mMaterialInstance    = mtl;
            MaterialInstanceName = mtl.Name;
            MtlIndex             = mtlindex;
            SceneMesh            = mesh;

            mSRVPrimitives = new List <SRVRName>();
            for (UInt32 i = 0; i < mMaterialInstance.SRVNumber; i++)
            {
                var item = new SRVRName();
                item.Index     = (int)i;
                item.SceneMesh = mesh;
                item.MtlIndex  = (UInt32)mtlindex;
                item.Host      = this;
                mSRVPrimitives.Add(item);
            }

            mShaderVars = new List <VarRName>();
            for (UInt32 i = 0; i < mMaterialInstance.VarNumber; i++)
            {
                var item = new VarRName();
                item.Index     = (int)i;
                item.SceneMesh = mesh;
                item.MtlIndex  = (UInt32)mtlindex;
                item.Host      = this;
                mShaderVars.Add(item);
            }
        }
            public void SetMaterialInstance(EngineNS.Graphics.CGfxMaterialInstance mtl)
            {
                mMaterialInstance = mtl;

                mSRVPrimitives = new List <SRVRName>();
                for (UInt32 i = 0; i < mMaterialInstance.SRVNumber; i++)
                {
                    var item = new SRVRName();
                    item.Index             = i;
                    item.mMaterialInstance = mMaterialInstance;
                    mSRVPrimitives.Add(item);
                }

                mShaderVars = new List <VarRName>();
                for (UInt32 i = 0; i < mMaterialInstance.VarNumber; i++)
                {
                    var item = new VarRName();
                    item.Index             = i;
                    item.mMaterialInstance = mMaterialInstance;
                    mShaderVars.Add(item);
                }
            }