Earlier this year I wrote my two step guide to Linear Workflow. Since then I have received a lot of email about it. It's a tricky one to explain in simple terms. I did my best to narrow down my description to cover the basic concepts. Some people got it. But I can tell from the email, that others saw gap's that I did not adequately fill.
Luckily for all of us. Fredrik Averpil has written an excellent article on Linear Workflow in Maya 2010 with pictures and diagrams and examples of how this also applies to compositing in Nuke 6. You can check it out here.
The title says it all. The original post is here if you don't know about this one.
Here's a simple method you can use to add a bump map to the mi_car_paint_phen_x material without using custom shaders or complicated shading networks.

(more...)
If the emails I get are any indication, then I'd say there is a fair amount of confusion around the subject of linear workflow in mentalray for maya. And over the past few years in my search for answers I have contributed my share of half truths and misinformation to the discussion. So, in the next few paragraphs I'm going to state simply and without detailed explanation how to achieve a linear workflow in mentalray for maya by doing two things. Simple! (more...)
If you don't have access to a render manager, or even if you do, you might want to render from the command line one frame at a time. There are a few reasons why you may want to do this. Sometimes maya does not get to the end of a long batch render due to memory errors. You set off a 100 batch and it dies after frame 27 maybe. Another reason is that sometimes your animation does not seem to work in a batch render. A single frame renders correctly, but when you batch it some things don't update correctly. (more...)
When building shader networks in the hypershade window it is common to drag-and-drop one node onto some attribute of another. When you do this maya attempts to guess the type of connection you are making. If you drag a texture or a material onto a color attribute then maya will automatically connect either the .outColor or the .outValue, depending on the node type. There are other default connections for other types of attributes but if maya can't figure out what to do it opens the connection editor and leaves it for you to make the connection manually.
There is one notable case that seems to confuse people - mia_material_x and mia_material_x_passes. For example say you want to layer mia_material_x over another shader using mib_color_mix or mix8layers. If you drag-and-drop the mia_material_x onto one of the color inputs instead of connecting as you might expect, up pops the connection editor. If you've done this before then you probably know that you simply need to connect mia_material_x.result, but wouldn't it be great if maya was able to do that automatically, and skip the connection editor?
If you said "yes, that would be great" then you'll like the next bit. Back around the turn of the century, the thoughtful folks at alias provided a mel script called connectNodeToAttrOverride.mel which states
// This procedure is provided as a hook for customers to allow
// you to redefine the behaviour of drag and drop.
Well that's what I've done. Three lines of code was all it took! Now dragging mia_material_x and mia_material_x_passes works just like the other materials.
You can download my modified connectNodeToAttrOverride.mel from my downloads page.
A few months back I wrote about using puppet's p_shader_replacer to override maya's fur shading with the p_HairTK shader. I discovered a strange anomaly that I thought would be worth a mention. But for the rest of this post to make sense you need to know how the p_shader_replacer works. If you don't, have a look here.
So here's the thing: The name of the object that holds the geometry shader and the name of the furFeedback node actually matter. Specifically, the name of the object that holds the geometry shader needs to come before the name of the furFeedback node from an alphabetical ordering point of view. And in this case capital letters come before lowercase.
So this works: pCube1 , polySurface1_FurFeedback - because "pC" comes before "po"
but this does not: pCube1 , PolySurface1_FurFeedback - because "pC" comes after "Po"
and this works: ApCube1 , PolySurface1_FurFeedback - since "A" comes before "P"
Easy once you know, but if you don't then depending on your naming some of your fur will just ignore the p_HairTK.
I'm currently using shaders_p v.3.3 beta 11 for Maya 2010 (win64) and find that p_HairTK is very stable, often quicker to render than maya fur and has better shading attributes. An especially interesting, and welcome benefit is that it fixes the NaN (black pixels) problem that seems to haunt maya fur.
In maya 2010, if you connect a bump map to a mia_material_x shader and later change your mind and delete the bump map or break the connection, the shader will no longer render as you expect and the hypershade swatch will turn black. (more...)



These 3 custom mentalray shaders are part of an extensive shader collection written by Pavel Ledin (aka puppet). In this post I will show how you can use a geometry shader, p_shader_replacer, to assign the p_HairTK shader to maya fur when using mentalray with fur mode set to hair primitives. Doing this gives you much more control over the look of the fur and, depending on how you use it, may dramatically improve yoru render times.
(more...)
Most of the time its ok to mix maya base shaders with mentalray shaders in the same shader network but sometimes things don't work as you would hope. An example of this is when you layer something like a blinn and a mia_material_x using mib_color_mix. At first glance the render looks correct, but you will find the blinn is missing in the alpha channel. A quick fix is p_color_plus_alpha.

(more...)