ThreeJS JSON场景格式4中matrix数组结构及元素含义咨询
ThreeJS Scene Format 4 matrix字段问题解答
排布推测正确性判断
你的推测对非问号位置的索引对应关系是准确的,但底层排布逻辑存在偏差:
- ThreeJS JSON Object Scene format 4 中
matrix字段存储的是THREE.Matrix4的一维元素数组,采用列主序规则存储:数组内每连续4个元素对应4x4矩阵的一列,而非你推测的一行。 - 由于三维场景使用的4x4齐次仿射变换矩阵结构特殊,你标记的
xx/xy/xz(x轴基向量分量)、yx/yy/yz(y轴基向量分量)、zx/zy/zz(z轴基向量分量)、px/py/pz(平移分量)所在的数组索引位置,和你推测的位置完全重合,只是这些元素分属不同列而非不同行。
你给出的PointLight示例矩阵[1,0,0,0,0,1,0,0,0,0,1,0,100,200,150,1]还原为数学形式的4x4矩阵为:
[ [1, 0, 0, 100], [0, 1, 0, 200], [0, 0, 1, 150], [0, 0, 0, 1] ]
对应无旋转、无缩放,平移到坐标(100, 200, 150)的变换,和点光源的位置逻辑完全匹配。
问号位置的元素含义
你标记的4个?位置对应齐次变换矩阵的w分量,在场景格式存储的实体对象变换矩阵中取值固定:
- 数组索引3、7、11位置:对应x/y/z三个坐标轴基向量的齐次w分量,固定为
0,保证旋转、缩放等线性变换不会产生额外平移效果。 - 数组索引15位置:对应平移分量的齐次w因子,固定为
1,保证坐标变换时平移分量正常生效,避免出现坐标投影缩放异常。
内容的提问来源于stack exchange,提问作者ADev
相关产品推荐
相关产品推荐

