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.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
    Java虚拟机
    topcoder srm 663 div1
    topcoder srm 694 div1 -3
    topcoder srm 695 div1 -3
    topcoder srm 696 div1 -3
    topcoder srm 697 div1 -3
    topcoder srm 661 div1
    topcoder srm 698 div1 -3
  • 原文地址:https://www.cnblogs.com/johnonsoftware/p/2933634.html
Copyright © 2011-2022 走看看