Maya Viewport 2.0

Viewport 2.0(이하 VP2)은 Maya 2012 부터 도입된 Autodesk사의 새로운 rendering architecture이다. VP2는 AutoCAD와 3ds MAX 등의 제품군에서도 활용되는 backend system이다. VP2는 programmable shader system, high-quality per-pixel lighting 등의 강력한 기능을 제공한다. 하지만, 완전히 새로운 rendering system이기 때문에 기존에 만들어 놓은

Read More Maya Viewport 2.0

Maya Context에 대하여…

Context란 마우스의 이벤트에 반응하여 어떠한 특정 작업 수행이 가능한 Maya의 특수 모드를 말한다. Maya에서 context는 tool과 동일한 개념으로 사용된다. 다만, graphical user interface 기준에서는 tool이라고 부르고, programming interface 기준에서는 context라고 부른다. setToolTo [context name]으로 특정 컨텍스트 모드로 들어갈 수 있다.

Read More Maya Context에 대하여…

When compute() of a custom node isn’t called right after loading scene file

Custom node가 있는 Maya scene file을 save한 후 다시 open했을 때, auto-update가 되지 않는 문제가 발생하는 경우가 있다. ASCII 형식(.ma) 파일로 저장한 후 내용을 보면 custom node의 output attribute가 이상한 값으로 저장되어 있는 경우에 이러한 문제가 발생한다. 예) setAttr “.output”

Read More When compute() of a custom node isn’t called right after loading scene file

How to exchange rotation matrix between Zelos and Maya

[pre-multiplied system with row-major ordering] (ex) Zelos X: rotation matrix about x-axis Y: rotation matrix about y-axis Z: rotation matrix about z-axis R: rotation matrix in x->y->z axis order. q=(ZYX)p Therefore, R = ZYX [post-multiplied system with column-major ordering] (ex)

Read More How to exchange rotation matrix between Zelos and Maya

MPxLocatorNode::draw()

Locator node를 사용하면 draw() 함수 안에서 custom data에 대한 OpenGL rendering을 구현하는 것이 가능하다. 그런데, MPxLocatorNode::draw() 함수 안에서 print를 해보면, Maya viewport에서 camera 정보가 변할 때 뿐만 아니라, viewport를 click하거나 marquee를 그리는 등의 조작을 할 경우에도 호출되는 것을 확인할 수 있다. Maya에서는

Read More MPxLocatorNode::draw()

Conflict problem between Cuda and Maya

Maya는 MTypes.h에 short2, short3, long2, long3, int2, int3, float2, float3, double2, double3, double4 등의 자료형을 정의하여 사용한다. 용감하게도 어떠한 prefix나 namespace도 사용하지 않는다. Cuda는 vector_types.h에 int2, int3, float2, float3 등의 자료형을 정의하여 사용한다. Cuda 또한 용감하게도 어떠한 prefix나 namespace소 사용하지

Read More Conflict problem between Cuda and Maya

Maya custom node name and type id

A라고 불리는 custom Maya plug-in을 만들어서 사용하고 있었다. A에는 a라는 이름의 custom node가 있었다. 그리고, a 노드를 이용하여 제작한 aScene.mb 파일이 있다고 가정하자. 이 때, A를 보다 개선한 AA라는 custom Maya plug-in을 만들어서 사용하고자 한다. AA를 새로 배포하고 A를 삭제하였다.

Read More Maya custom node name and type id

double array attribute가 연결상태에서 업데이트되지 않을 때,

[a.out] -> [b.in] 처럼 두 노드 사이에 double array attribute 를 연결시킬 때, a.out 은 매 프레임마다 업데이트되지만 b.in 은 처음 연결된 직후 상태의 값에서 변하지 않을 때가 있다. 예) select -r pPlaneShape1; addAttr -ln "rmanvFfoam" -dt "doubleArray"; connectAttr ZOceanEnvWaveGen1.foamMap

Read More double array attribute가 연결상태에서 업데이트되지 않을 때,

Error: Could not create command port

If you meet an error showing below message after maya starting up, commandPort -securityWarning -name commandportDefault; // Error: Could not create command port : commandportDefault (terminating other Maya instancesinstances may solve this problem) // su cd /tmp chown [your id]:[your

Read More Error: Could not create command port

Compound Dynamic Attribute in Maya Bug

Maya에서 addattr로 dynamic attribute를 compound 형식으로 만들고 나서, deleteattr로 지운 뒤, 다시 같은 이름의 dynamic attribute를 addattr로 생성하면 다음과 같은 error가 발생하며 실패하게 된다. Too many children on this compound. Method 1 After deleting the dynamic compound attribute, save your scene

Read More Compound Dynamic Attribute in Maya Bug

What a strange thing in Maya command plug-in

Very simple maya command plug-in code. #include #include #include #include class test : public MPxCommand {  public:   virtual MStatus doIt ( const MArgList& );   static void* creator() { return new test; } }; MStatus initializePlugin( MObject obj ) {  MStatus stat;  MFnPlugin

Read More What a strange thing in Maya command plug-in