UnityShader笔记第三课-MVP矩阵原理-M矩阵

本节课开始,从大佬开口第二秒,全程处于懵逼状态。
由于高等数学课上没有经住王者荣耀的诱惑,所以矩阵的知识一直处于贫乏状态,到课程结束也就懵懵懂懂的记住了大概,所以本笔记纯属个人记录。观点错误请指出,阿里嘎多阔塞以马斯。

tranform的位移矩阵:

 //tranform 的位移矩阵
    public void LMatri()
    {
        Matrix4x4 localP = Matrix4x4.Translate(transform.localPosition);
        Debug.Log(localP.ToString());
    }

上述代码输出tranform的 本地左边的位移矩阵具体输出如下:
在这里插入图片描述
其中标红部分表示代表的就是tranform的本地坐标。

tranform的旋转矩阵:

//tranform 的旋转矩阵
    public void RotationMatri()
    {
        Matrix4x4 localr = Matrix4x4.Rotate(transform.localRotation);
        Debug.Log(localr.ToString());
    }

上述代码输出如下,不知道具体啥意思,望知道的大佬讲解下:
在这里插入图片描述
tranform的缩放矩阵:

//tranform 的缩放矩阵
    public void ScaleMatri()
    {
        Matrix4x4 localr = Matrix4x4.Scale(transform.localScale);
        Debug.Log(localr.ToString());
    }

上述代码输出如下,其中矩阵种斜对角线表示的为tranform的本地缩放:
在这里插入图片描述
**

M矩阵:

**
M矩阵 把模型坐标转化为世界坐标。M= M(translation)*M(rotation)*M(scale)(这个顺序很重要,不能错乱)

 public void M_juzhen()
    {
        Transform thistran = transform;
        Matrix4x4 ml = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);
        while (thistran.parent)
        {
            thistran = thistran.parent;
            ml = Matrix4x4.TRS(thistran.localPosition, thistran.localRotation, thistran.localScale) * ml ;
        }
        Debug.Log(ml.ToString());
    }

本人并没理解透彻,只是把大佬讲的计算方式记录了下来防止忘记。如有了解的大佬,路过请留下您宝贵的理解,再次感谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值