AbstractOptionalinput: IV_NodeSpace初始化矩阵
节点名称 node name
四元数
节点是否以及GPU准备好 node is ready of GPU
任意点的任意轴的罗德里格斯旋转(考虑_position位置) 1、数组第一个元素为旋转点,第二个元素为旋转轴 2、数组第三个元素为旋转角度 3、数组第四个元素为是否在世界坐标下旋转
旋转:自身原点为中心( 不,考虑_position位置)
local matrix
当前entity在世界坐标(层级的到root),可以动态更新 1、在directInWorldSpace为true时,matrixWorld与matrix相同 2、在directInWorldSpace为false时,matrixWorld为matrix的累计乘积
是否需要更新本地矩阵
是否用户自定义更新函数
是否用户自定义更新函数,在update()函数最后调用
节点类型 node type
节点UUID node UUID
在世界坐标下的位置(x,y,z)
Abstract_检查是否需要更新矩阵 这里是TRS
Abstractready三段式初始化的第三步:readyForGPU 当前对象的GPU已经可以用时,执行此调用。 when GPU is ready, call this function
绕任意轴旋转
绕X轴(1,0,0)旋转
绕y轴(0,1,0)旋转
绕z轴(0,0,1)旋转
scale
替换pos的位置(matrix的:12,13,14),其他的matrix数据不变, 将entity的位置变为POS,等价wgpu-matrix的mat4的translation,是替换,不是增加
:Vec3
在现有matrix(原有的position)上增加pos的xyz, 将entity的矩阵应用POS的位置变换,是在原有矩阵上增加
:Vec3
创建单位矩阵,矩阵的xyz(12,13,14)=pos
:Vec3
正常更新 1、更新空间属性
2、调用super.update()更新
Clock 时钟
是否调用自身的updateSelf(),默认=true 此参数可以方便子类重载时,决定调用的updateSelf()的时间顺序或是否调用updateSelft()
是否调用自身的updateAtEnd(),默认=true
1、矩阵操作一般来说: CPU中:SRT(右乘),行向量列矩阵=行向量 GPU中: TRS(左乘),列矩阵列向量=列向量
2、更新矩阵的顺序是先进行线性变换,再进行位置变换。其实是没有影响,线性工作在3x3矩阵,位置变换在[12,13,14],列优先。
3、旋转部分,四元数优先,然后后轴旋转。 A、在模型gltf中,旋转使用四元数。
Abstractupdate
节点ID node ID