maya
中的
python
用法(
4
)
1. OpenGL from Python:
import maya.OpenMayaRender as
OpenMayaRenderglRenderer =
OpenMayaRender.MHardwareRenderer.theRenderer()glFT =
glRenderer.glFunctionTable()
class pyLocatorNode( openMayaMPx.MPxLocatorNode ):
[ ... ... ] def draw(self, view, path, style, status): view.beginGL()
glFT.glDisable( OpenMayaRender.MGL_LIGHTING )
glFT.glBegin( OpenMayaRender.MGL_LINES )
glFT.glColor3f( 1.0, 0.0, 0.0 ) glFT.glVertex3f( 0.0, 0.0, 0.0 )
[ ... ... ] glFT.glEnd()
glFT.glEnable(OpenMayaRender.MGL_LIGHTING)
view.endGL()2. Multi-threading
import threadingclass MyThread( threading.Thread): def
run( self ): doSomeStuff()MyThread().start()
注意:
1. Maya API, Command Engine, DG are not thread-
safe;2. maya.cmds
在非主线程中执行时将会报错;
3.
maya.OpenMaya
的函数在非主线程中运行时可能会有无法
预测的行为;
4. maya.utils.executeInMainThreadWithResult()
函数允许在非主线程中安全运行
python
命令