学习3ds max插件开发过程中的一些总结

学习3ds max插件开发过程中的一些小结

1. 3ds max是以树状结构来管理整个场景的,每个树节点类型为INode

2. Interface类很关键,可以通过其中的GetRootNode、NumberOfChildren和GetChildNode方法来遍历整个场景的所有节点

3. 在max中一个物体是object而不是INode,Object是附着在INode上的,并且Object的坐标所在的坐标系是INode的local坐标系

4. INode::GetNodeTM方法返回INode到世界坐标系的变换矩阵,INode::GetObjectTM方法则返回了附着在INode上的Object到世界坐标系的变换矩阵

5. 要想得到INode到其父INode的变换矩阵,首先通过INode::GetParentTM方法得到其父节点到世界坐标系的变换矩阵,接着计算INode::GetNodeTM(t) * Inverse(INode::GetParentTM(t))即可得到节点变换到父控件的变换矩阵了

6. 当我们在max里面制作了人物动画后,需要将整个动画数据导出来的时候,需要调用INode::EvalWorldState方法,此方法可返回INode在t时刻经过max pipeline处理后的状态,我们可以得到此时刻动作下INode节点的变换矩阵,然后就可以自行处理成引擎所需要的格式即可

相关内容推荐