« October 2009 | Main | December 2009 »
Posted by Ash Aiad on 30/11/2009 at 03:11 PM in Composite, mental ray, rendering | Permalink | Comments (3) | TrackBack (0)
If you like to skip the texture file use the following flag
-texture_continue
Normally, standalone versions of mental ray abort as early as possible when a texture file cannot be read, to avoid spending a lot of time on unusable images and letting the farm controller know as soon as possible. If this option is specified, mental ray will continue and use transparent black or red-and-black checkerboard defaults (depending on the shader) for missing texture files.
Posted by Ash Aiad on 27/11/2009 at 10:31 PM in mental ray, rendering | Permalink | Comments (2) | TrackBack (0)
If you are new to Maya Composite and are looking for the Preferences files, you can find them here:
1) The "default.txproject" file which is located by default in
C:\Users\UserName\Documents\toxik
or within Toxik go to Edit ---> Project Preferences, under the Information Tab you will see the path and name of the file.
This file is your project preferences, so will hold for example, render settings and composition settings. You can have multiple project preferences file and therefore can easily change project without have to reset all the paths.
2) The "preferences.txuser" file which is located by default in
C:\Users\UserName\Documents\toxik\2010
This file is your user preferences, so will hold for example, color palette, hotkey catalog information and bookmarks. This file is saved automatically when you change a preferences within Toxik, simply go to Edit ---> User Preferences
3) The"Hotkey Catalog.txsetup" which is located in
C:\Users\UserName\Documents\toxik\2010\Hotkey Catalog
This file contains your hotkeys. Within Toxik you can go to Edit --> Hotkey to see or update them
4) The "toxik.ini" file which is located in:
C:\Program Files\Autodesk\Autodesk Toxik 2010\etc
This file contains the environment variables. For example
toxik::mediacache::factor 80
This file is only created when Maya Composite is started interactively, so for example, a render node will not have a toxik.ini.
Posted by Annick Harmel-Tourneur on 27/11/2009 at 01:36 AM in Composite | Permalink | Comments (0) | TrackBack (0)
Tips for debugging Backburner
First Steps:
-
On
the licensed workstation launch the Backburner Manager.
-
On
the unauthorized, unlicensed workstations launch the backburner servers.
-
Start
> Programs > Autodesk > Backburner > Server
-
Do
this on all render slaves :
-
Configure
them to point at the manager machine. Here is how:
-
In
the backburner Server windows, choose Edit>General Settings>
and
disable "Automatic Search" checkbox. Type in the actual name of the Manager machine, click OK, then close and reopen the Server
window.
-
Restart
Manager, Server and see if that works. It should show "successful registration",
if it’s working.
-
On
the Authorized Product machine open your scene, and attempt a render.
General
tips:
·
When
trying to debug Backburner, run it Application mode, not services, including
the managers and all servers.
·
Make
sure all OS’s are the same and have the same service pack; keep either all 32
bits or 64 bits for testing.
·
Verify
all softwares installed are the same versions.
·
Render
as .jpegs
·
Make
sure your anti-virus disk scanning protection utilities are disabled and not
interfering across the network
·
Try
pinging from the command prompt to check
that the network is ok
·
You
need to have 3ds Max or Maya installed on the render nodes (depending which you
are rendering with). They don’t need to
be activated but it must be installed.
·
Unload
all plugins and try t o render a simple scene – if you need to use plugins you
need to verify they are installed on all render nodes.
·
Verify
all machines have names starting with letters only ; no numbers, dashes,
underscores, periods, etc.
·
Make
sure there is plenty of temp file space. It has to compress not just the scene
file but all the bitmap textures.
·
Log files:
To
set the options for the Log files before testing, go to Edit/Log Settings from
Backburner Manager and Server and choose the following options-
o
Debug,
Debug Extended, Clear Log
You
can find the log files for Backburner in the following directory
-C:\Program
Files\Autodesk\Backburner\Network
o
backburnerServer.log
o
backburner.log
Documentation:
The
documentation for Backburner is installed in the following directory and should
also give you a clear overview of the general setup:
C:\Program
Files\Autodesk\Backburner\docs
Posted by Annick Harmel-Tourneur on 27/11/2009 at 12:54 AM in rendering | Permalink | Comments (4) | TrackBack (0)
Sometimes shapes can get disconnected from their transform, this can happen accidently or not. To reparent the shape simply;
1) Open the Outliner
2) Select the shape you want to reparent
3) Press the CTRL key and select the transform node
4) Open the script editor and type in parent -s
This will reparent the shape node under the transform
Posted by Annick Harmel-Tourneur on 24/11/2009 at 12:14 AM in MEL, modeling, rigging, UI | Permalink | Comments (4) | TrackBack (0)
http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=14186150&linkID=9242259
Autodesk Maya Composite 2010 Hotfix 1 includes a fix for severe playback speed performance degradation on MacPro machines with hyperthreading (MacPro 4,1).
Posted by Ash Aiad on 23/11/2009 at 05:31 PM in Composite | Permalink | Comments (0) | TrackBack (0)
If you get the Error
MSG :0 fatal: Sorry, no license available.
This matter has a patch to fix it
Please contact support from the Subscription Center to get an update that will resolve this issue.
Thanks to David Lau for his Tip
Posted by Ash Aiad on 20/11/2009 at 05:15 PM in mental ray | Permalink | Comments (0) | TrackBack (0)
With Maya 2010 there is a new entry in the regular docs
User Guide > General > Python > Tips and tricks for scripters new to Python
Even not so new scripters may be interested in reading about:
Registering a Python function as a MEL procedure using:
maya.mel.createMelWrapper()
The above is great for using Python functions with the new "Container Rmb Menu" attribute on the container node.
It also helps work around some of the more difficult callbacks that need to receive args from Maya.
Using Wing IDE with Maya
Debugging Python scripts in Maya
Custom UI using a Python class
thanks to John Creson for the tip
Posted by Annick Harmel-Tourneur on 18/11/2009 at 05:44 PM in python | Permalink | Comments (0) | TrackBack (0)
Here is a list of supported files that can be imported into Maya Composite (Toxik ) 2010
Format File extension Supported bit depths for imports
Bitmap .bmp 8
Cineon .cin 10
DPX .dpx 8, 10, 16
HDR .hdr 32
IFF .iff 8, 16, 32
JPEG /JFIF .jpg, jpeg 8
Open EXR .exr 16 bit float, 32
Photoshop .psd 8
PICT .pict 8
PNG .png 8
QuickTime .mov 8
SGI .sgi 8
Targa .tga 8
TIFF .tif, .tiff 8, 16, 32
Posted by Ash Aiad on 18/11/2009 at 03:35 PM in Composite | Permalink | Comments (3) | TrackBack (0)
It’s a fabulously day in Toronto, crisp and sunny, I am loving it! J
Today I will do my second posting to this posting “Overriding __str__() for Maya Python Objects” from September 14th, 2009.
I will talk about how we know in the MMatrix documentation where to read that the operators we need to use are formatted like this (row, column):
self(0,0), self(0,1), self(0,2), self(0,3), self(1,0), self(1,1), self(1,2), self(1,3), self(2,0), self(2,1), self(2,2), self(2,3), self(3,0), self(3,1), self(3,2), self(3,3)
For this part of the code:
#New __str__ function for Making the matrix readable....
def myMatrix_str(self):
return "[[%g,%g,%g,%g][%g,%g,%g,%g][%g,%g,%g,%g][%g,%g,%g,%g]]" % (self(0,0), self(0,1), self(0,2), self(0,3), self(1,0), self(1,1), self(1,2), self(1,3), self(2,0), self(2,1), self(2,2), self(2,3), self(3,0), self(3,1), self(3,2), self(3,3))
In this case the API method is defined as follows:
double operator() (unsigned int row, unsigned int col) const
Which is the '()' operator.
With operators the syntax for each one is different so you just have to know them. In just about all cases 'self' goes to the left of the operator but the positioning of the other arguments depends upon the operator. For example, the '+' operator takes a single argument on the right, while the '()' operator takes any number of arguments as a comma-separated list between the parentheses.
For another example we can take MVector:
We know that MVector consists of three values: x, y and z. You decide that you'd like your method to return them as the string '[ x y z ]' which means that you need to get those three individual values. In general, there are three possible ways:
1) See if they are stored in public member variables. MVector has public variables 'x', 'y' and 'z', so you can just do this:
return '[ %g %g %g ]' % (this.x, this.y, this.z)
2) See if there is an operator which will return the values. In this case that would mean looking at all of the operators which return a float or a double and then reading their descriptions to see which ones are returning the individual component values. It's generally safe to eliminate operators such as +, -, *, / since those usually try to have meanings similar to add, subtract, multiply and divide, where possible. In practice, indexing operators will almost always be either [] or (). In this case we have both operator[] and operator(), either of which will work:
return '[ %g %g %g ]' % (this(0), this(1), this(2))
or:
return '[ %g %g %g ]' % (this[0], this[1], this[2])
3) See if there is a normal method (i.e. not an operator) which will return the values in a useful format. MVector has the get(double[3]) method to do this.
However, since it uses a modifiable array, which Python does not directly support, we have to use MScriptUtil to retrieve the values, which gets pretty ugly:
d3 = om.MScriptUtil()
d3.createFromDouble(0, 0, 0)
d3Ptr = om.asDoublePtr()
this.get(d3Ptr)
return '[ %g %g %g ]' % (om.MScriptUtil.getDoubleArrayItem(d3Ptr, 0), om.MScriptUtil.getDoubleArrayItem(d3Ptr, 1), om.MScriptUtil.getDoubleArrayItem(d3Ptr, 2) ]
In the case of MVector, #1 is the clearest and simplest approach.
Now let's try the same thing with MMatrix:
1) MMatrix has a 'matrix' public attribute which contains the values we need. It requires a double index operator, which Python does not support. However, if you try to print out the 'matrix' member you'll get something like this:
<Swig Object of type 'double (*)[4]' at 0x13926f0>
In other words, Python sees the 'matrix' member as a pointer to an array of four doubles. If you look at MScriptUtil.getDouble4ArrayItem() you'll see that it takes two indices, named 'r' and 'c', which sound suspiciously like 'row' and 'column'. And indeed, it works!
str = ''
for row in range(4):
str += '| '
for col in range(4)
str += '%g ' % om.MScriptUtil.getDouble4ArrayItem(this.matrix, row, col)
str += '|\n'
return str
2) operator[](int row) returns a pointer to a row of values. If you try to print out m[0], for example, you'll see something like this:
<Swig Object of type 'double *' at 0x13926f0>
which means that Python sees each row as an array of doubles of no specific length. That means we can use MScriptUtil.getDoubleArrayItem() to retrieve the values:
str = ''
for row in range(4):
str += '| '
rowPtr = this[row]
for col in range(4):
str += '%g ' % om.MScriptUtil.getDoubleArrayItem(rowPtr, col)
str += '|\n'
return str
There's also operator()(int row, int col) which returns a single value at a time. That's nicer because we don't have to fiddle with pointers:
str = ''
for row in range(4):
str += '| %g %g %g %g |\n' % (this(row, 0), this(row, 1), this(row, 2), this(row, 3))
return str
3) MMatrix has a get() method which takes a 'float[4][4]'. I can't think of any way of working with that, even using MScriptUtil.
Big Thanks to Dean Edmonds for breaking it down and his explanation!
~Kristine
Posted by Kristine Middlemiss on 17/11/2009 at 09:13 PM in API, python | Permalink | Comments (0) | TrackBack (0)




Subscribe
Recent Comments