【Unity Shader入门精要】— 写Shader所需的数学基础

本文介绍了Unity Shader所需的基础数学知识,包括笛卡尔坐标系、点和矢量的概念,如单位矢量、点积和叉积,以及矩阵的几何意义和坐标空间变换。详细讲解了模型空间、世界空间、观察空间、裁剪空间和屏幕空间的转换过程,强调了齐次坐标在变换中的作用。此外,还涵盖了矩阵乘法、正交矩阵和不同类型的投影矩阵。
摘要由CSDN通过智能技术生成

内容会持续更新,有错误的地方欢迎指正,谢谢!

引言

一些很简单的线性代数的基本知识:矢量和矩阵。So Easy~

笛卡尔坐标系

两种三维坐标系:左手坐标系和右手坐标系。
这里写图片描述
这里写图片描述

在Unity中:
对于模型空间和世界空间,使用的是左手坐标系;对于观察空间,使用的是右手坐标系。

点和矢量

单位矢量:

法线方向、光源方向等矢量不一定是归一化后的矢量,由于我们的计算往往要求矢量为单位矢量,因此,在使用前要对这些矢量进行归一化运算。

矢量的点积:

公式一:a Dot b=axbx+ayby+azbz
公式二:a Dot b=|a||b|cos(角度)
代码:dot(a,b)
点积在图形学中用得很多,其几何意义很重要,其中一个几何意义:投影(也就是一条边投影到另一条边的长度)。

矢量的叉积:

公式一:a × b=(aybz-azby , azbx-axbz , axby-aybx)
得到的结果是一个垂直于矢量a和b所在的平面的矢量。
公式二:|a × b|=|a||b|sin(角度)
其中,|a × b|的值为 以a和b为两边的平行四边形的面积
叉积在图形学中常用于计算垂直于一个三角面的矢量,用于判断三角面片的朝向等。

矩阵

**矩阵乘法:**m×n的矩阵 乘以 n×p的矩阵 等于 m×p的矩阵:
这里写图片描述

一个矩阵可以把一个矢量从一个坐标空间转换到另一个坐标空间。

特殊矩阵:

  1. 方块矩阵:简称方阵,就是行和列相等的矩阵。除对角线上的元素的其他元素都是0,则是对角矩阵。
  2. 单位矩阵:对角线元素都是1的对角矩阵就是单位矩阵。
  3. 转置矩阵:行列互换,右上角加T。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值