zoukankan      html  css  js  c++  java
  • Maya中操作普通DG节点和Dag节点的区别

    在Maya中,Dependency Graph是Maya的核心,由许多DG节点互联组成。其中包含了两种我们常见的节点,一种是普通的DG节点,一种是DAG(directed acyclic graph)节点。DAG节点在本质上也是一种DG节点。

    当我们需要操作DG节点的时候,我们知道,用户是不能直接访问Maya核心的,Maya在其核心之上提供了一系列严格定义的接口,使用户能够通过这些API来操作Maya内部数据。当我们需要对DG节点进行操作时,我们可以使用MFnDependencyNode函数集来进行操作,MFnDependencyNode需要设定一个DG节点MObject对象作为操作数据,具体如下:

    MObject thisNode = thisMObject();
    MFnDependencyNode fnThisNode( thisNode );
    MFn::type type = fnThisNode.name();

    以上是我们常规的对DG节点进行操作的方法,对于DAG节点来说,我们也可以通过同样的方法来设定一个DAG节点对象到MFnDagNode来对其进行操作,

    MFnTransform  fnTransform;
    MObject transform = fnTransform.create();
    MFnDagNode fnDagNode( transform );
    MFn::type type = fnDagNode.type();

    从表面上看,上面这个操作似乎没有问题,但是我们想一想对象实例,由于可能会存在多个DAG路径到指定的MObject对象,那么如果只给定一个MObject对象,Maya是不可能对这个DAG节点进行在世界空间中进行操作的。换句话说,Maya不可能只通过一个给定的MObject对象来确定一个指定的实例。

    所以,在大部分情况下,请使用DAG路径(MDagPath)来指定一个DAG节点,因为DAG路径总是会指向一个对象的特定实例,这样才能进行世界空间转换。

  • 相关阅读:
    java常用集合总结
    java集合类——Stack栈类与Queue队列
    Snmp的学习总结(一)
    Java中StringBuilder的清空方法比较
    String,StringBuffer与StringBuilder
    浅谈Oracle数据库分区表
    关于java读取文件IO流学习总结(一)
    关于java读取文件IO流学习总结(二)
    CSS
    Datatables 配置
  • 原文地址:https://www.cnblogs.com/johnonsoftware/p/2933634.html
Copyright © 2011-2022 走看看