I've worked on building system with custom shape nodes in Maya for a while and truly learnt a lot from it.
Maya indeed provides great proxies for developers to make custom shape nodes with different level of complexity. Using MPxSurfaceShape (or MPxComponentShape), combined with MPxSurfaceShapeUI & MPxGeometryIterator &MPxData, you can implement a "very complicated" shape node in Maya. This node can have developer-defined data structure. The data itself can be an attribute which is able to connect to other nodes. You can also define the shape node's behavior under Maya's tools, such as move, rotate, scale, even deformer (lattice, cluster, etc)!!!! And with context command, interacting with custom shape nodes with defined context tool outside becomes possible. This work flow and mechanism is really awesome!!! well... just a flash into my mind, can it support dynamic stuff? Or should I do it outside and write the result back to the shape nodes? hmmm I will figure that out.
Because they are just proxies, which means you have to do the coding for the actual content. Maya gives you lots of flexibility, but meanwhile, you also have to follow its rules. It would take a while to realize those provided virtual functions of each proxy, like when they will be called and how to make Maya recognize your shape node (Oh Ya, this is the main point!! You have to make Maya recognize your shape node and be able to interact with it!!)
Looking at my system growing bigger and bigger is excited. The custom shape nodes and context tools are almost done. It's time for the official greeting to Renderman API!! Hello Renderman!! :)
No comments:
Post a Comment