
Dave Girard's 101 Autodesk® Maya® Tips is now available in Kindle, interactive iPad edition and DRM-free EPUB/PDF editions. Work faster, cry less. Read more about the ebook.
Topics by tag:
Recently published articles by Dave G:
V-Ray for Maya has some pretty handy (but slightly hidden) tools that can be added from the Create From V-Ray Plug-in menu and one of the best is the Color Correction node. It’s basically a grading dialog for textures and can do quite a bit, and it can save you trips to Photoshop to just do slight tweaks to hue, contrast, etc.:
The only thing to keep in mind is that the brightness is a gain slider, not a gamma-based correction, so it should be avoided to adjust mid-tones. Also, you can try out the other Color Correct plug-in for yourself but it’s less full-featured than the Color Correction plug-in. Why they are so similarly named is a question for the sages.
0 notes | Permalink
V-Ray Tuner 3.4.1 posted for download. There’s not too much new here but there’s an important fix for the Optimize button script for Maya 2014. Maya 2014 has a bug that returns the wrong number for RAM amount for “memory -phy” so, if you’re running 2014, the script asks you to enter your memory amount in GB. Otherwise, the only other new addition is that I’ve added Point Light support to per-light render script.
0 notes | Permalink
Recently, I’ve fielded a lot of questions about setting up a Linux-based V-Ray render box and most of those queries are coming from Mac users who are in need of more oomph but don’t want to shell out for the very dated 2010 Mac Pros. So slavery is all the rage as people are discovering the merits of cheap additional labour. But Linux is the black diamond course of computing, so here is a quick rundown of what’s involved in getting a Linux slave machine up and running with a V-Ray render service.
CentOS, Chained
For my headless Linux workstations, I use CentOS 6.3 (later is fine and may be required by your newer hardware) because it is the easiest to get running with Maya. If you’re unfamiliar with Linux, you want to avoid missing dependencies that have to be installed later, and CentOS runs Maya fresh from the install. Fedora should be avoided unless you know what you’re getting into. Ubuntu is not an option because it’s a Debian-based distro and Maya (like most CG apps) require a Redhat-based distro to function. You can do a bunch of hacks to make it work but it’s just not worth it for a headless slave machine. Ubuntu is all about usability and you won’t be using this machine beyond it’s functions of sleep, wake and render. Hence it’s not-so-glorious title of slave.
Installation
So here are the instructions to get CentOS up and running. Install CentOS with the Software Development install option to ensure you have all the necessary libraries installed. It might work with others but this is a good, safe bet. During the install process, enable the network because CentOS disables it by default. If you miss this, you can do it on boot (it’s an icon in top right the GNOME menu bar).
Maya and V-Ray Installation
Install Maya with your serial number – there is no demo option on Linux. You have to use the terminal to run the Maya installation. Open it and cd to the uncompressed Maya installation folder and then type “su” to switch to the root user. Then type “./setup” (all this is without the quotes) – if you just enter the full path to the setup file without cd’ing first, it won’t be able to find anything for the install. That stumped me for a while when I first installed Maya on Linux. Once it’s done installing, don’t run Maya because you’ll be asked to activate it. You don’t need an activated Maya install for use as a slave so skip running the application itself and move on to V-Ray installation.
V-Ray Slave Service Installation
Before you install any old V-Ray version, make sure you get a build of V-Ray 2.4 or later, that does automatic asset transferral so you don’t have to concern yourself with setting up finicky, matched-absolute path network sharing. Currently (2013-04-18), that’s only available in nightly builds so contact Chaos Group to get access to nightlies and you have a non-EDU license. During command-line installation, make sure you register it as a slave service. The slave service won’t start unless you reboot or launch it manually for the first launch. If ever you try and launch it and it fails, that means it’s already running. To ensure that the slave is seen and accessible from other machines, open the V-Ray service TCP port in the CentOS firewall settings. With 3.4 betas, the port is currently 30304.
Some things to keep in mind:
To get sudo access to do stuff like “sudo pm-suspend” to sleep the machine from the command line, you’ll need to use visudo to add your user to the sudoers list. Google that – visudo is just vim and it uses a weird list of key combinations to use it. Otherwise, just su to root and issue the command without sudo.
You’ll probably want to edit your router to reserve an IP for your machine so it doesn’t change. To get the IP and MAC address of the machine, type “ifconfig -a” in the terminal. eth0 is the ethernet connection (or eth1 if you have more than one). That will also give you the MAC network address for use with WOL (Wake on LAN). With a static local IP, you can reliably wake the machine from sleep with a utility like WakeOnMac (OS X) or Wake Me On LAN (Windows). You may need to enable WOL in your machine’s BIOS settings. You don’t have to enable it in CentOS and it’s not dumb like WOL in Windows machines that seem to wake just by looking at them.
Additional Linux and command line tips for newbs
I wrote a guide to getting command line rendering up and running for Maya users on OS X that will probably be helpful to understand Linux as well, since both use the BASH shell by default.
If you’re looking to actually run this machine as a Maya workstation, then you have more work ahead of you, as you get to do all the mind-numbing work of blacklisting nouveau (Google it) to install Nvidia’s drivers and stuff like that. Still, it’s easier and more stable than making a Hackintosh. Luke Olson’s Linux for CG and VFX Production Environments is a really good primer if you want to use Linux with CG apps. He mostly uses Houdini, which installs on Ubuntu without issue, so keep that in mind if you’re wondering why he’s recommending it alongside Fedora. I would steer clear of it personally. Do your worst, Ubuntu zealots!
1 note | Permalink
Michael Comet’s Pose Deformer Mac Maya 2014 build can be downloaded here. I am using the latest updated source that David Johnson has tweaked to fix an issue with compiles on 2014. The Windows version is available on his djx blog here. I’m bundling the Python version of the Pose Reader plug-in but it seems to have an issue where it complains about a missing connection but everything works fine. I’m looking into it.
0 notes | Permalink
Maya 2014 is out on subscription so I thought I’d post a few thoughts for those on the fence about the update. I was a beta tester for 2014 so I have a good understanding of what’s been added to the release and it’s a solid upgrade in my opinion. Aside from the beefy scene assembly tools, grease pencil, sweet volume-centred joint tool, Node Editor upgrades, there is plenty new to try out. But this isn’t a review of all the new features, so look at some of the sneak peak videos listed here or read the What’s New page from the Maya 2014 documentation.
Viewport 2 is almost at first-class citizen status so you should be able to use it for almost everything except particle display and some other things like Paint Effects strokes. Viewport 2 DirectX 11 mode and Übershader (that were introduced in the 2013 Extension) are available to Windows users – hopefully Mac OS X and Linux users will get a GLSL equivalent some day because it would really help with mobile game development. Paint Effects has gotten really nice additions that are useful but also encouraging because I think PE has a lot of potential so it’s nice to see it hasn’t fallen out of Autodesk’s vision for Maya’s future. Here’s some of what’s new with PE since I think the collision stuff makes it a lot more useful:
NEX Included – From Now On
The main feature that should be a welcome addition for most long-time Maya users is NEX integration by default. If you’re unfamiliar with NEX, it’s a modeling toolkit that adds a ton of invaluable things to Maya’s tools and I highly recommend watching the individual feature videos to get idea of how to use it. So, predictably, it’s been rebranded as “Modeling Toolkit” in Maya 2014 and it still works much the same as NEX in previous versions of Maya. The main differences are how you load the Modeling Toolkit – it’s in the Plug-ins but you have to enable it in the application preferences and that’s where its options are set:

Then you activate it from the top menu, and the Modeling Toolkit shows up as a tab on the right, with the familiar NEX toolbox:
That’s the quad draw tool with shift held down to split faces into equal-sized quads. The only caveat to the Modeling Toolkit is that it’s very “1.0” in its integration – NEX’s soft selection hasn’t yet been matched to Maya’s so you have to tweak some colours in the prefs to get it closer:

Not great but it’s not a showstopper. I think that the slight potential for confusion between entering the NEX select/move/scale/rotate tool context is why it’s disabled by default.
2014 Issues
2014 is not going to make everyone happy and it’s too early to tell what all the major issues are. No, mental ray integration is not much better but I think people should give up on that ever becoming a reality. Once you move on to V-Ray, Arnold or something else that has exceptional support, you wonder why you wasted all that time pining for mental ray with unterrible support. I’m not making excuses for Autodesk here – I just don’t see mental ray in Maya ever becoming what people want it to be.
But otherwise, I do know of one nasty bug that affects high-resolution screens on OS X with most Radeons and some Nvidia cards. If you have a single viewport over 2048 pixels wide in the width or height and drag a selection in viewport 2, your viewport will black out:
It seems to affect 27” iMacs, Radeon-based Mac Pros and retina MacBook Pros that have their Maya screen resolution using the full resolution of the retina display. This isn’t a problem on Maya 2013 and Autodesk doesn’t have an ETA on a fix, unfortunately. As you can see from the video, the only workaround is to make the viewport smaller than 2048 pixels by having the Outliner or something like V-Ray Tuner open all the time. Bleh.
Anyway, go forth and download. V-Ray for Maya users will be happy to know that 2014 Linux and Windows builds are already on the Chaos Group nightly server, with the Mac OS X version coming shortly.
2 notes | Permalink
This is not a huge update to V-Ray Tuner but it brings a few fixes and features that affect various things. Here’s 3.4 changelog:
0 notes | Permalink
Someone on CGSociety asked how to mix displacement maps in Maya, so I figured I’d give him some tips and make a blog post out of it, since I’ve seen this asked a few times in the past. This process works for all renderers since it uses Maya’s utilities, nothing specific to V-Ray or mental ray. Instead of doing it with blend materials or something like that, it’s all done by connecting your greyscale textures to a Plus/Minus/Average utility and sending the output from that to the Displacement slot of your Shading Network:
So, there you can see how there are two textures that combine to make one displacement map with different influences. In the video, I went about the connections in a slightly long way, using the 3D channels (RGB) and then connecting the 3D output to an [RGB to] Luminance utility. Because the displacement utility requires a scalar (greyscale) value, you have to stick an [RGB to] Luminance utility between the 3D output of the Plus/Minus/Average utility and the displacementShader node. I could have avoided that step and attached the checker and fractal textures to the 1D inputs (1D meaning one colour channel in this context) and sent the 1D output directly to the displacementShader output:

That does the same thing. But that process has a catch. Notice how, at the start of the video, the checker doesn’t affect the displacement until I hit Alpha Is Luminance in the Color Balance pane.
If you use the 1D input/output method, you’ll have to do that for all your textures. “Alpha Is Luminance” is a bit of a misnomer or at least it’s ambiguous – it should be “RGB Luminance is Alpha Output” and it just means “take my texture brightness and send that to the alpha output.” Even though they appear greyscale, the checker and fractal used here are RGB textures so they still need to have that checked off for the 1D workflow.
In the video you’ll also notice how I adjusted the height of the checker by increasing the “value” of the HSV to above 1 for the white and below 0 for the black. If you just increase the white values, your mesh will bloat outwards, which is probably not what you want. Using an even +20 and -20 gives you a “water line” that is at 0. Also, it’s worth mentioning that I changed the Checker Attributes but I could just as easily have changed the Color Gain (white) and Color Offset (black) values to get the same result. But, like with the Alpha Offset settings, you have to set the Color Offset to -0.5 of your Color Gain value to get the proper water line.
Upping the bar: mixing UV sets with displacement
Another thing the poster on CCSociety asked about was how to mix UV sets for his different displacement maps. This can come in handy if you want to use an unwrapped UV map from ZBrush for your sculpted mesh displacement but want to use a front-projected checker for another layer of displacement relative to the Maya camera.
This process is a little less straightforward because you Maya likes to have the texture explicitly attached to your mesh to create the UV linking setup. So the workaround is to temporarily link your texture to a slot in your material. Then, with multiple UV sets on your mesh, you can connect the texture in the UV linking editor:
Disconnect your texture from your shader and Maya will remember the UV linking and apply it to your displacement texture.
1 note | Permalink
I just got word of this tip that lets you alter the way that windows float in Maya for OS X. By default, floating palettes sit on top of the main window in Maya and this can be either helpful or annoying, depending on your preference. Luckily, you can change this behaviour to let the main window cover palettes by adding this line to your Maya.env file (~/Library/Preferences/Autodesk/maya/2013-x64/Maya.env on my machine):
MAYA_SET_PARENT_HINT=0
Restart Maya and you’re set. The command-` still cycles through windows, so you’re not going to lose any windows:
Update: Just thought I’d mention that, in OS X, you can click and manipulate (move, close, minimize) background windows by holding down the command key modifier when clicking. So you could have MAYA_SET_PARENT_HINT=0 on and still manipulate another window without bringing it forward:
It’s a good one to know. OS X has a lot of these little hidden command key and modifier features.
1 note | Permalink
Yesterday, I plugged (nyuk) iDeform, Ingo Clemens’ free Maya plug-in for real-time displacement previewing. If you look around Ingo’s blog, you’ll find a bunch of other great scripts and plug-ins and iCollide definitely warrants a mention. It’s basically L3Deformer’s collision deformer for free:
3 notes | Permalink
So, I’m relatively new to the world of organic world building. I’m mostly experienced in illustration in the product-visualization vein but I’m getting into more fully-fleshed scenery and I’ve been investigating some options like Vue, Terragen, etc. But, I like to keep things in Maya if possible, so I’m going to post some helpful tips and things I’ve learned from other tutorials, along with my own texturing workflow.
I’m using the awesome iDisplace with a crater texture to build a basic height terrain to shape out some hills with a naturally-looking fractal mapping. The nice thing about doing it procedurally with iDisplace is that you can use textures and blend them or add them with texture utilities and you can increase your plane mesh resolution any time and it will propagate through the node chain nondestructively. The next thing I do is map a ramp along the vertical with a projection node:
Once you get the basics of that approach down, it’s time to think a little out of the box and use the individual ramp channels as a mask for your actual textures. If you make a ramp from pure red to pure blue and then look at the individual channels in greyscale, you can see how this can be exploited as two-channel mask. Using the Node Editor (or Connection Editor in older Maya versions), you can then connect these individual colour channels to the blend input of a V-Ray Blend Material or any similar blend material for mental ray or the Maya layered shader. That way, you use your mesh UVs for the textures and the projection node and ramps for the blending. If your terrain shape changes, your water line doesn’t move unrealistically – just hit fit to bounding box again and you’re good. So, here I am using the projection ramp as a mask for a V-Ray Blend Material to interactively mask the water line:
This is a really basic shader but you can see how this type of thing is pretty flexible and can be built on nicely. Put the 100% green point back into the ramp and you have another blend channel for more flexibility. If you don’t quite follow the video, grab the scene here and tinker around with it to see how it works (requires iDisplace and V-Ray for Maya).
You can see in the video that viewport 1 and 2 don’t yet support the texture-mapped blend but support for that should come as viewport 2 support becomes more robust. Autodesk is trying very hard to get viewport 2 up to task but you can imagine that this stuff takes a bit of time.
Tangentially related, tonight someone on CGSociety asked how to derive a height map from a terrain mesh, and the answer is straightforward, knowing what we know about the projection node and ramp texture. Assign a surface shader (that receives no specular, light, or shadow) and map a greyscale ramp along the side of your mesh. Then render it from above and you have a height map:
I can’t take credit for that cool workflow – it’s something I learned a while ago from some other CG forum.
2 notes | Permalink