关于Stage3D中Matrix3D
来源:互联网 发布:iphone刷机后 数据恢复 编辑:程序博客网 时间:2024/06/10 02:46
一,Matrix3D表示的矩阵是按行表示的(某一轴的变换是按行表示的 )
1. 正常情况下矩阵按列表示,如下:
scaleX 0 0 0
0 scaleY 0 0
0 0 scaleZ 0
tx tY tZ tW
此时,先进行A矩阵变换再进行B矩阵变换,表示如下:
总变换 = A * B
总变换 = B * A
为什么这里矩阵相乘是后置一个矩阵呢,因为这样运算后,才能保证与正常情况下矩阵运算结果一样(运算的行列才能对应),随便列2个矩阵试下就知道了。
所以就是为什么Matrix3D.append( )函数的表示如下:
public function append(lhs:Matrix3D):void
在使用 append() 方法时,乘法运算将从左侧开始,这意味着 lhs Matrix3D 对象位于乘法运算符的左侧。
thisMatrix = lhs * thisMatrix;
二,Matrix3D实际存储的是上图的转置矩阵。
Matrix3D对矩阵的表示与存储是2种不同的方式,有什么区别呢?
1. 表示的方式:决定了在实际运算时,是按后置矩阵运算的。
2. 存储的方式:决定了数据的存储顺序,如果存储与表示的顺序不同,则在使用前要做相关的操作。
存储的方式不一定非要跟表示的方式一样,比如Matrix3D中存储与表示是颠倒的,所以使用前要将存储的结构转置一下。这就是为什么在上传常矩阵时最后一个参数要设为true(上传时先转置).
m_kContext3D.setProgramConstantsFromMatrix( Context3DProgramType.VERTEX, 0, m_matFinal, true );
1. 正常情况下矩阵按列表示,如下:
scaleX 0 0 0
0 scaleY 0 0
0 0 scaleZ 0
tx tY tZ tW
此时,先进行A矩阵变换再进行B矩阵变换,表示如下:
总变换 = A * B
2. 仔细看Matrix3D的表示图,它与一般矩阵的按列表示不同,它是按行表示的,如下图:
总变换 = B * A
为什么这里矩阵相乘是后置一个矩阵呢,因为这样运算后,才能保证与正常情况下矩阵运算结果一样(运算的行列才能对应),随便列2个矩阵试下就知道了。
所以就是为什么Matrix3D.append( )函数的表示如下:
public function append(lhs:Matrix3D):void
在使用 append() 方法时,乘法运算将从左侧开始,这意味着 lhs Matrix3D 对象位于乘法运算符的左侧。
thisMatrix = lhs * thisMatrix;
二,Matrix3D实际存储的是上图的转置矩阵。
Matrix3D对矩阵的表示与存储是2种不同的方式,有什么区别呢?
1. 表示的方式:决定了在实际运算时,是按后置矩阵运算的。
2. 存储的方式:决定了数据的存储顺序,如果存储与表示的顺序不同,则在使用前要做相关的操作。
存储的方式不一定非要跟表示的方式一样,比如Matrix3D中存储与表示是颠倒的,所以使用前要将存储的结构转置一下。这就是为什么在上传常矩阵时最后一个参数要设为true(上传时先转置).
m_kContext3D.setProgramConstantsFromMatrix( Context3DProgramType.VERTEX, 0, m_matFinal, true );
0 0
- 关于Stage3D中Matrix3D
- 简单理解css中transform的matrix3d()
- Stage3D
- 关于AS3语言Flash的Stage3D在不同的AGAL版本中寄存器的数量限制
- Matrix3D rawData
- 在AIR3中如何启用Stage3D - 话外音
- 在flash builder 中报1046:找不到类型,或者它不是编译是常数:Matrix3D 的解决方法
- pv3d 的矩阵 -- Matrix3D演示
- Stage3D游戏
- Stage3D 相关
- stage3d 限制
- 关于Stage3D中的顶点坐标x,y,z与u,v的对应关系
- Stage3D Demos首发
- Stage3D如何工作
- 用Stage3D建造世界
- 新书: stage3d的新书
- Stage3D 实例汇总
- [Stage3D] - 绝望心得
- 根据中序和前序遍历构建二叉树
- 骄傲的代价
- nyoj305
- iOS 开发问与答(103-122)
- ArrayList源码解析
- 关于Stage3D中Matrix3D
- Jquery中AJAX参数详细介绍
- MVP架构在Android平台上的实现分析
- SpringBoot介绍
- Centos 7 搭建 Zabbix
- 【机器学习】贝叶斯角度看L1,L2正则化
- Servlet学习记录2: java.lang.NullPointerException
- Const 类型
- 机器学习之最大似然算法