Category: Maya
-
Depth fix for footPrintNode samples
We received a report that footprint samples aren’t working properly. It turns out that the depthPriority wasn’t implemented correctly. The original samples are using fixed depth(5) and when the node is duplicated, the old one is still on top of it. We can determine a proper depth with MGeometryUtilities::displayStatus. unsigned int depthPriority; switch(MHWRender::MGeometryUtilities::displayStatus(path)) { case…
-
How to write an Arnold Translator for MPxSurfaceShapes
If you are wondering why your fancy geometry created with MPxSurfaceShape is not working in renderers like Arnold, then this article is for you. Before rendering them, you’ll need to create a translator or shader for your renderer. For Arnold, it can be handled using extensions. To make a 3rd-party plugin work with Arnold, you’ll need…
-
How to build Pillow on windows with Maya 2017/2018
Pillow is a Python image library with several other libraries built-in. Because it is originally built with VC2008, we can’t use the wheel package with Maya. We’ll need to build it manually. I wrote this blog for Maya 2017 at first. For Maya 2018, please use replace building environment with VS2015 and Windows SDK 8.1.…
-
Improve performance with MPxNode::preEvaluation & MPxNode::postEvaluation
With last post we talked about the Best practices while migrating your plugin to Parallel Evaluation, in this post, we will talk about the following 2 new methods, and how to make use of them to improve the performance: MPxNode::preEvaluation MPxNode::postEvaluation Within the old DG system, because MPxNode::setDependentsDirty function is called during dirty propagation, it…
-
Suggestions & Best practices while migrating your plugin to Parallel Evaluation
As we know, starting from Maya 2016, Maya introduces a new evaluation model that enabled better utilization of computer resources by distributing computation over all available cores and taking advantage of GPU compute power. Unlike previous versions of Maya, which was limited to node-level parallelisms, Maya now includes a mechanism for scene-level analysis and parallelization.…
-
How to import/export Render Setup with Python
code, pre { font-family: Consolas, “Liberation Mono”, Menlo, “Courier Prime Web”, Courier, monospace; background: #f3f3f3; } code { padding: 1px; margin: 0 -1px; border-radius: 3px; } pre { display: block; line-height: 20px; text-shadow: 0 1px white; padding: 5px 5px 5px 30px; white-space: nowrap; position: relative; margin: 1em 0; } pre:before { content: “”; position: absolute;…
-
All about modifying reference file in Motionbuilder
I believe most of you are familiar with File Reference System, it’s commonly used in different Autodesk products, including Motionbuilder. Recently, some partners are working with file reference in Motionbuilder, they have some confusion and also find some issues. I reviewed this feature on Mobu SDK help again, and I think it worth a post…
-
How to set default value for array attributes
We were asked some array questions recently, and I found that there isn’t a good sample in Maya devkit. This article will demonstrate how to initialize an array with MArrayDataBuilder. MPxNode::Compute isn’t a good choice to give your array a default value. The reasons are that the compute will be called after a plug…
-
Use a node as input for your custom node
Sometimes we want to use a node as input for our custom nodes, and would like our custom node to be updated whenever our input is changed. Usually, we will create a message attribute with MFnMessageAttribute on our custom node and register callbacks to deal with it. The message attributes will never participate in dirty…
-
New API changes for Maya 2017 updates 2
Some of you may already know about this, but I think I still need to emphasize it again here. In the past, we used to have Service Packs and Extensions after the Maya main release. But starting from Maya 2017, we will not provide Service Packs or Extensions any more, instead, will use Maya Updates…

You must be logged in to post a comment.