[入门] Unity Shader前置知识(1) —— 矩阵基础

本文介绍了GPU编程中矩阵的基本概念,将其视为二维数组,并强调了矩阵与向量的关联,指出向量可以作为矩阵处理,以便于在空间变换中应用。后续将探讨矩阵运算在UnityShader中的前置知识。
摘要由CSDN通过智能技术生成

GPU编程是一件非常复杂的事情,在没有一定数学基础的情况下,学习起来十分困难,故本文将会从最基本的矩阵(matrix)开始介绍。

1. 什么是矩阵?

\begin{bmatrix} 8 &2 &45 \\ 1 & 90 & 3\\ 67 & 5 & 17\\ 24 &39 &76 \end{bmatrix}

以上便是一个普通的矩阵,可以将其想象成一个矩形的网格,每个格子里放了一个数字,站在我们程序员的角度来看,它实质上就是一个m × n长度的二维数组。

既然是网络结构,就意味着它有行(row)列(column)之分。例如以上式子就是一个4 × 3的矩阵,它有四行三列。据此,我们可以给出矩阵的一般表达式,以3 × 2的矩阵为例,它可以写成:

M_{32}=\begin{bmatrix} 2 & 3\\ 8 & 22\\ 0 & 7 \end{bmatrix}

我们可以使用 m_{ij} 来表示这个元素在矩阵 M 的第 i 行、第 j 列。 

2. 与向量联系起来!

大家一定都用过Unity中的Vector3吧,这实际就是一个三维向量,我们可以使用 a = (x, y ,z) 来表示。通常,向量可以看成是一个 n × 1 的列矩阵(column matrix)或 1 × n 的行矩阵(row matrix),其中 n 对应了向量的维度。例如,向量 a=(6,3,8) 可以写成行矩阵:

A_{13}=\begin{bmatrix} 6 &3 &8 \end{bmatrix}

或列矩阵:

A_{31}=\begin{bmatrix} 6\\ 3\\ 8 \end{bmatrix}

如此看来,我们实际也可以用矩阵来表示一个向量,因此,向量也可以像矩阵一样参与矩阵运算,这在空间变换中将非常有用。

下一篇 Unity Shader前置知识(2) —— 矩阵的运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值