The Matrix Resurrections
前言
这是白玉无冰记录3D数学第三篇章,矩阵!往期目录如下:
在开始唠嗑前,先简单介绍一下标题与配图的含义。
矩阵重启
:重新捡起矩阵的知识MVP
:三个矩阵的简称Matrix 4
: 3D 游戏开发中,常用的是4X4矩阵
白玉无冰打算围绕 Cocos Creator 3.4
中的源码,展开认识其中用到的矩阵。
开始
直观感受
矩阵就是一组数字摆成矩形的阵法。
402 Payment Required
矩阵就是映射!矩阵就是映射!矩阵就是映射!
摘录《程序员的数学3线性代数》中的内容感受一下矩阵!
矩阵就是映射! m
xn
的矩阵是 n维-> m维
的映射!
矩阵就是映射! 矩阵的乘积就是映射的叠加!
矩阵就是映射! 逆矩阵就是逆映射!好比把水变成冰的过程看作一个矩阵,那么逆矩阵就是冰变成水的过程。
并不是所有的矩阵都有逆矩阵,类似把水果榨成果汁可以做到,但是把果汁还原成水果就不行了。
Mat4
engine/cocos/core/math/mat4.ts
是 Cocos Creator
引擎表示四维(4x4)矩阵(Mathematical 4x4 matrix.
)。
mat4.ts
构造了一个形如
402 Payment Required
的矩阵。为何下标是按照列主序构建的呢?因为 Cocos Effect 使用的是 GLSL 语言,矩阵是按照列主序存在数组中的。
Cocos Effect 是一种基于 YAML 和 GLSL 的单源码嵌入式领域特定语言(single-source embedded domain-specific language),YAML 部分声明流程控制清单,GLSL 部分声明实际的 shader 片段,这两部分内容上相互补充,共同构成了一个完整的渲染流程描述。
顺便翻一下《WebGL编程指南》,把GLSL矩阵部分截取下来,一并作为参考与思考。
以 engine/editor/assets/chunks/particle-common.chunk
中的代码为例,复习一下