태그: Maya

Error: line 1: dlopen: cannot load any more object with static TLS

You may meet the error message “Error: line 1: dlopen: cannot load any more object with static TLS” when loading your own Maya plug-in. How solve the problem: 1. Unload Bifrost plug-ins (bimeshio.so, bifrostshellnode.so, bifrostvisplugin.so) and XGen plug-in (xgenToolkit.so). 2. Load your plug-in. Once you loaded your plug-in, you can load Bifrost and XGen plug-ins.

Abnormal Behavior of Maya Tweak with Custom Deformer

1. 테스트 씬 파일을 연다. 2. 플러그인을 로드한다. 3. 조인트를 선택한다. 4. Channel Box에서 Attribute들을 선택하고 “Mute All”을 실행한다. 5. 55 프레임으로 이동한다. 6. Channel Box에서 Attribute들을 선택하고 “Unmute All”을 실행한다. 8. 55 프레임이 아닌 다른 프레임으로 이동한다. 이상한 결과를 확인할 수 있다. 9. 노드 에디터를 열고 tweak 노드를 찾아서 삭제한다. 10. 정상적인 결과로 돌아오는

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이기 때문에 기존에 만들어 놓은 plug-in들을 지원하지 않는다. 예를들면 custom locator node는 Legacy Default Viewport에서만 작동하고 VP2에서는 draw() 함수가 호출조차

MFnNurbsCurve Error with OpenMP

Non-threadsafe functionality in Maya 2014 MFnNurbsCurve evaluation, for example, point on curve computation MFnNurbsSurface evaluation, for example, point on surface computation MFnSubd evaluation MFnNurbsCurve::closestPoint() is not thread-safe. But, it is thread-safe in Maya 2016.

MPxLocatorNode::draw()

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

Linux Maya에서 키보드가 먹통일 때

Tray에 있는 iBus input method framework를 마우스 오른쪽 버튼으로 선택한 후 restart를 해주면 된다. 만약 Tray에 iBus가 사라졌다면 홈디렉토리에 있는 .gconf 디렉도리를 삭제하면 초기화된다.

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소 사용하지 않는다. Maya plug-in에서 사용하는 헤더파일(.h)에서 #include <cuda_runtime.h> 이나 #include <vector_types.h> 을 해주면 자연스럽게 충돌이 일어난다.

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를 삭제하였다. 과연 이 때, aScene.mb를 열면 a 노드는 어떻게 될까? 당연히 사라진다. 하지만 AA plug-in을 Load한

Maya libMgMdfModel.so Error

/usr/autodesk/maya2011-x64/bin/maya.bin: error while loading shared libraries: /usr/autodesk/maya2011-x64/lib/libMgMdfModel.so: cannot restore segment prot after reloc: Permission denied Administration -> Security Level and Firewall -> SELinux: Permissive

libgcc_s.so.1: version `GCC_4.2.0′ not found

gtkgl로 작성한 프로그램 실행시 /usr/autodesk/maya2008-x64/lib/libgcc_s.so.1: version `GCC_4.2.0′ not found (required by /usr/lib64/libstdc++.so.6)와 같은 에러가 발생하였는데, root계정으로 실행할 때에는 정상적으로 실행되는 것으로 보아 특정 파일의 permission 문제인 것으로 생각을 했었지만, LD_LIBRARY_PATH에 /usr/autodesk/maya2008-x64/lib 경로가 잡혀있기 때문에 발생한 문제였다. root계정의 .bashrc에는 저 경로가 LD_LIBRARY_PATH에 설정되어 있지 않았으므로 정상 실행된 것이었다. 파일 실행시마다 매번 root로 계정을 바꿔서 할 수는

Maya 설치 및 실행

CentOS 5.2에서 Maya 2008 64비트 버전을 설치한 후 실행시키면 다음과 같은 error가 발생할 수 있다. /usr/autodesk/maya2008-x64/bin/maya.bin: error while loading shared libraries: /usr/autodesk/maya2008-x64/lib/libirc.so: cannot restore segment prot after reloc: Permission denied 보안설정 문제때문에 실행이 안되는 현상으로 다음과 같이 하면 된다. 메뉴: System -> Administrator -> Security Level and Firewall -> SELinux Enforcing을 Permissive로 바꿔준다.

polyEdit bug?

[Test environment] CentOS 5.4 Maya 2011 x64 [Test Code (mel)] polySphere; select -r pSphere1.map[0]; int $i = 0; for( ; $i<100000; ++$i ) {    polyEditUV -u 0.5 -v 0.5; } [Problem] maya를 종료할 때까지 memory가 계속 쌓이면서 release 되지 않음.

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 id] commandportDefault

Maya MFnFluid bug? on Linux

I developed my own smoke simulator and rendered the data using Maya, but met a problem. MFnFluid fluidFn( fDagPath ); unsigned int Nx, Ny, Nz; fluidFn.getResolution( Nx, Ny, Nz ); float* density = fluidFn.density(); for( int i=0; i<Nx; ++i ) {    for( int j=0; j<Ny; ++j ) {       for( int k=0; k<Nz; ++k )

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 and reload it. Create the same dynamic compound attribute. Method 2 After deleting the dynamic

MItMeshPolygon limitation

MItMeshPolygon::getArea does not work in World Space. The Object Space area is always returned. Workaround Use MItMeshPolygon::getTriangles to get the triangles in World Space; then calculate the areas of the triangles and sum them

Maya Particle Command

[bad usage] particle -q -attribute position -order 7; // Error: No object matches name: position // [good usage] particle -attribute position -order 7 -q particleShape1; // Result: 5 0 0 //

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 plugin( obj, "wano", "1.0" );  stat = plugin.registerCommand( "test", test::creator );  if( !stat ) stat.perror( "registerCommand