使用PolyModifierNode时,节点有一个inMesh
和一个outMesh
属性/插件,其中inMesh
被隐藏并被outMesh
替换。
但是一般的MPxNode可能有许多输入和输出,这些输入和输出可以用复杂的方式联网。在
我在理解MPxNode的结构时遇到的问题是,我看不出maya以何种方式知道哪些对象从输入转换为哪些输出对象。
我本希望图形中的最后一个节点连接到某个SceneRenderer.inputMeshes
插件,但maya似乎以某种方式自动检测应渲染哪些未使用的outMesh
插件。在
最后,我想写一个节点,它获得一个输入网格数组和一个额外的控制网格,并输出一个修改过的网格数组,它替换了原始网格。在
我使用的是组中所有对象相互影响的计算,因此无法逐个计算。每个输入使用一个节点是可能的,但是compute函数也需要在所有其他输入网格上触发计算。在
Maya不会检测到未连接的插头。相反,当节点网络中的某些内容发生变化时,它会根据需要进行评估,并在必要时强制重新评估。在使用
MPxNode::attributeAffects()
或其等效Python初始化节点时,可以设置它关心的条件。对输入的更改将由其他节点按需顺流而下;当更改进入节点时,它将调用MPxNode::compute compute()
,并将相应的插件作为参数传递。然后,您的节点将更新其输出,将它们沿着链传递给其他节点。在您可能不想让您的节点获取一个输入节点数组,然后返回一个输出数组。制作一个一次只修改一个节点的节点更简单,也更像玛雅风格。这有助于在依赖关系图中本地化更改,并使场景运行更快。在
相关问题 更多 >
编程相关推荐