Category Archives: Developer
After some careful thought and a lot of tedious work by developers Brenton and Corey (mental core), you can find a Maya Render Settings UI for testing. Barton Gawboy is project management. The purpose of this UI is to provide a more official/intended workflow for mental ray. This also means makers of UIs for other packages can use this as a template for features on modern mental ray (3.10 and future).
This UI is in an early phase and should not be used for production. Currently the Quality settings have been re-worked to provide a simpler interface and a modern workflow for using mental ray in Maya. Over time we will be improving on this (light and passes tabs to be re-worked) and adding documentation. We recommend Maya 2013 SP1.
You can find the scripts on the Google Code page: Maya Render Settings UI
A further discussion can be found on the ARC forum (must be a member): Maya Options UI
I’ve written an example script for working with string options in Maya. The four main functions are:
- setStringOption(name, value)
The usage is pretty simple. stringOptionExists checks if a string option already exists (returning True or False), setStringOption will set a string option value, getStringOption will return a string option value, and removeStringOption will delete the string option. setStringOption and getStringOption will match string option data types with python data types.
“string” -> Python’s str type
- text, e.g. “hello world”
“boolean” -> Python’s bool type
- True or False
“integer” -> Python’s int type
- any whole number, e.g. -5, 0, 1, 100, etc…
“scalar”‘ -> Python’s float type
- any decimal number, e.g. -5.4, 0.0, 1.0, 104.23, etc…
“color” -> Python’s tuple type of length 4 (although you can set it using a list of length 4)
- four scalars corresponding to RGBA, e.g. (1.0, 1.0, 1.0, 1.0)
“vector” -> Python’s tuple type of length 3 (although you can set it using a list of length 3)
- three scalars corresponding to XYZ, e.g. (1.0, 1.0, 1.0)
undeclared -> Python’s None type
Here is an example usage of working with the script. First I check if the “unified sampling” string option exists, printing out it’s value if it does. Next I set all of the standard unified sampling string options, creating them if they do not already exist. Then I print the string option values that I just created right before I remove those string options:
from string_options import stringOptionExists, setStringOption, getStringOption, removeStringOption # Check to see if the unified sampling string option exists. if stringOptionExists("unified sampling"): value = getStringOption("unified sampling") print "The unified sampling string option already exists. It's value is", value else: print "The unified sampling string option does not exist. We will create it when we set it." # Set unified sampling string options. setStringOption("unified sampling", True) setStringOption("samples quality", (0.5, 0.5, 0.5, 0.5)) setStringOption("samples min", 1.0) setStringOption("samples max", 100.0) setStringOption("samples error cutoff", (0.0, 0.0, 0.0, 0.0)) # Print unified sampling values print getStringOption("unified sampling") print getStringOption("samples quality") print getStringOption("samples min") print getStringOption("samples max") print getStringOption("samples error cutoff") # Remove unified sampling string options removeStringOption("unified sampling") removeStringOption("samples quality") removeStringOption("samples min") removeStringOption("samples max") removeStringOption("samples error cutoff")
You can download the script here: string_options.py
If you’ve been wanting something like 3ds Max’s “User Voice”, Autodesk has introduced Maya Feedback .
Being a mental ray blog, we do have our favorite topics to vote for. We hope you agree.
Looking forward to seeing more good changes coming to Maya across all disciplines!
For those of you more interested in the developer side of things; Barton Gawboy has started a thread on optimizing and creating shaders for mental ray that will take advantage of how Unified Sampling works.
Take a look here: Developing Shaders for Unified Sampling
Even if you aren’t a developer, you may find the added information on how an optimization works to be useful when tuning a scene.