简介: 偶然听到特效同学想要获取单个粒子局部顶点坐标,也就是物体坐标系下的,然后使用 ASE 怎么链都是世界坐标,平时到时没有注意这一点,记录一下
unity版本:20222.1.7fc1
分析
如果是上述描述,那么可能有这么几点
- 粒子在顶点阶段就不存在一个从局部到世界的转换
- 粒子的顶点坐标默认使用世界坐标更有利于粒子的合批,因为粒子数量大,如果使用一般的合批方式那会导致除了传入粒子基本数据外,还要传入一个很大的转换矩阵buffer,直接将世界坐标写入到顶点数据则避免了这一转换过程
验证
我们可以尝试输出转换矩阵的不同行列,来观察一下其值是多少
![](https://img.haomeiwen.com/i19189157/996d4566f21f6e89.png)
![](https://img.haomeiwen.com/i19189157/d05919e9be2f5f11.png)
![](https://img.haomeiwen.com/i19189157/c22046d975a6076d.png)
![](https://img.haomeiwen.com/i19189157/3d340b3a4c4b39b7.png)
所以最终的变换矩阵其实是一个单位矩阵,所以没有发生任何转换,故,粒子系统的单个粒子坐标的确是世界坐标
网友评论