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.

Follow cgbeige on Twitter

Topics by tag:

Recently published articles by Dave G:

Free downloads by Dave G:

Mac OS X-only downloads:

Final V-Ray Tuner for V-Ray 2.4 Posted on Creative Crash – Includes Presets Feature

Someone requested my handy V-Ray Tuner Presets setting feature for the soon-to-be-outdated V-Ray Tuner for V-Ray 2.4 so I added that feature to the 2.4-compatible version that’s on Creative Crash. This will be the last update to V-Ray Tuner for V-Ray 2.4 so be sure to grab it now if you’ll be sticking with that version for a while. If you haven’t seen the V-Ray Tuner Presets in action, here is a rundown of why it’s handy, from the changelog:

Added V-Ray Tuner Presets manager for render settings in the Render menu. This is a nice way to create render presets that don’t affect EVERYTHING like Maya’s render presets do. This only affects the toggles you see represented in the V-Ray Tuner interface, so you can use a universal “Draft” setting for different resolution documents and click the load for final render settings that you prefer and only have the relevant quality features changed.

Here it is in a workflow:

Otherwise, if you’re using the V-Ray 3.0 betas, be sure to check out the awesome GGX-based BRDF that’s been added to the V-Ray 3.0 release candidate:

If you want to read up on GGX, there are good examples by a talented coder who wrote his own GGX shader here – he sums up GGX like this:

    "Ggx is a microfacet model which is very successful for modeling light reflection from surfaces. In other words it’s a shader like Blinn but 10x more awesome."

It is very good for use with more accurate metals.

1 note | Permalink

V-Ray Tuner 4 Beta for V-Ray 3.0 – Come and Get It

After returning from a very good SIGGRAPH, I’ve found some time to put up the latest version of V-Ray Tuner that has been cooking for the last number of months. I have been beta testing V-Ray 3.0 and I’ve added a lot of features that should cover the 3.0 user well from the beta to the release versions and beyond. Grab it here.

Warning: V-Ray 3.6 was the last version to support versions of V-Ray 2.x so it’s possible that you can get errors if you use it with version 2.4. Some of the features use things like V-Ray’s query options that are 3.0 only:

So, here are some of the additions to V-Ray Tuner 4 that I think will be well liked by V-Ray 3.0 beta and release users:

  • Use Environment Volume toggle added to new row of checkbox toggles to enable/disable environment fog. Great for speeding up your scene/material building and draft rendering since you don’t always want fog slowing you down.
  • Use Embree toggle added to new row of checkbox toggles. Embree is Intel’s CPU ray tracing optimization kernel that is used in V-Ray 3.0 (and RenderMan 19). If you have an Intel-based CPU, regardless of host OS, it should always be on to get the fastest render times.
  • Optimize script enables Embree if V-Ray version is 3 or above.
  • Transfer Missing Assets for DR toggle added to new row of checkbox toggles. This is the awesome new V-Ray 3.0 feature that does texture transfers in the background between Mac OS, Windows and Linux without having to use SAMBA and URL translation type fixes.
  • Use Local Machine for DR toggle added to new row of checkbox toggles. Good if you’re using a laptop with faster machines as your slave workhorses.
  • Use Cached Assets toggle added to new row of checkbox toggles. Use this if you use distributed rendering since it will save uploading assets again. I’ve tested it extensively and the caching is now bulletproof at detecting asset changes.

See all those new things above in action here:

Another cool feature that I think will save people a lot of time:

  • Added V-Ray Tuner Presets manager for render settings in the Render menu. This is a nice way to create render presets that don’t affect EVERYTHING like Maya’s render presets do. This only affects the toggles you see represented in the V-Ray Tuner interface, so you can use a universal “Draft” setting for different resolution documents and click the load for final render settings that you prefer and only have the relevant quality features changed:

  • Toggle Object Sub-texture as Diffuse script now supports all material types.
  • Organized Materials menu into submenus for clearer outline of features and to take up less space.
  • Light Cache Prefilter Samples added to sliders.
  • Added a couple sliders to new Global Material/Light Tweaks section to do a single change to all reflection subdivs and light subdivs for quick switches from draft to final settings:
  • Added CUDA option to RT menu.
  • Added RT max noise slider to V-Ray RT sliders.
  • Wrap in VRayMtlWrapper added to Materials menu. Good for making mats that need to be matte bases. Select your mesh and then run the script.
  • Added prompt to LWFMe to see if you will manually linearize your textures and swatches. If you pick Yes, it does everything except enable “Linear Workflow” which is the dumb way to do automatic linear worklows and isn’t recommended for use with V-Ray anyway. Basically, always click Yes and manually linearize your nodes unless you are using newer Maya versions with automatic colour management (2015 extension and later). I’ll eventually remove the LWF setting altogether in the V-Ray Tuner UI but it’s good to see that it’s always off while you work.
  • Small fix to deGamma script to work with V-Ray mat display in viewport 2.
  • Three point lighter script added to Utils menu. Just adds three V-Ray Rect Lights to your scene around the object selected so you can get a basic three-point light setup. Groups the lights so you can scale and move them easily.

Anyway, enjoy and I’ll post the final on Creative Crash once V-Ray 3.0 is released.

2 notes | Permalink

Happy Indy Pen Dance Day – Here’s a Gift: An Accurate Sand Shader for V-Ray and mental ray for Maya

I’m waiting to move into my new place in San Francisco tomorrow and noticed that someone asked me on Twitter if I could share this sand shader that I made for some of my Turbosquid assets. So I figured, “why not?,” so here is a download for both procedural shaders for Maya (V-Ray and mental ray):

Sand Shaders Download

Here’s a preview of what they look like:

Enjoy. And may Will Smith save all your nations by injecting a VBScript virus into the gooey organic innards of an invading alien race’s mother ship.

5 notes | Permalink

Stretchmesh Updated for Maya 2015 – OS X and Windows

I tried to compile this a while back but couldn’t get it to build but someone else took the time to get it working, so here is the link to download:

Mac OS X


You can get the source here:


1 note | Permalink

Make Frustum Updated to Add/Update All Selected Cameras

Well it’s been a hectic month here since I moved from Montreal to San Francisco. I found a little time between working, getting a car – loving this Ford Fusion Energi SE – and getting a place in the Mission (sweet Jesus, the rent here!) to add a requested feature to this script. You can now add or update the frustum for all selected cameras in version 1.2 of Make Frustum for Maya. Go get it:


0 notes | Permalink

quietstorm627 asked: Hey Dave, I really love your make frustum script. Is there any way to add the command to the default camera?(Create camera/camera with frustum applied is what I want it to do) I've tried adding the camera to the shelf/shelf editor/pasted makeFrustum () into the command line of the camera but I get a syntax error. Am I doing something wrong or is it not possible?

ya, sure. It was easy to do so here is a new version of the script with a button to make a new camera with the geo frustum already attached:


1 note | Permalink

Facer 3.2 Posted For Download

The 3.2 update to Facer is up on Creative Crash. The changelog:

  • Triangulate now works with multiple objects.
  • Delete Excess Vertices: Same as hitting delete key with vertex mode and all vertices selected.
  • Made the “3 length” normal button into 20 for viewport 2 since Maya 2015 defaults to viewport 2 and the normals are much shorter in viewport 2.
  • Now tags your last clicked button with a light purple and tags the second last clicked with a dimmer purple and the third-last with an even dimmer one so you can find recently-used button commands easier:
  • Added “Invert selection order” to scripts section. This reverses the order of your selection so that you can do things that require that first-selected objects be the source.
  • Make Shape Here script now has a planar sprite option for making planes that face the camera but that are positionally bound to geometry, for something like leaf cards.
  • Delete namespaces added to Clean-ups section. Deletes all namespaces.
  • NGon fast fix added to clean-ups. This is a workflow I use that extrudes the face and then merges all vertices of the extrusion. It’s good for stuff like poles:

1 note | Permalink

Mari Me 2 – a Full-featured Python Script to Send Painted Meshes between Maya and Mari

Now that Mari 2.6 and Maya 2015 are out, I think it’s time to release Mari Me 2 that is a complete rewrite of the MEL version that is now much more powerful than that old script was. Aside from being able to send stuff from Maya to Mari, the new version has a ton of little goodies that aid working between Maya and Mari without the need to look at a single dialog box. Mari Me 2 can both send and receive objects to Mari, updating metadata-tagged materials for identification across sessions. It works great as a quick way to jump back and forth for stuff like Mari 2.6’s texture transfer feature that bakes textures between different mesh topologies or UV sets:

The transfer feature is better than it looks from those results – I was just kind of lazy about my alignment of the two different meshes in Maya. Mari Me also has a smart way to update your existing materials that is renderer agnostic. It doesn’t care what type of material is used on the mesh and will simply update it based on the channel name within Mari. If your material’s emissive channel in Maya is “blinn1.incandescence”, just name the channel “incandescence” in Mari and when you send it back to Maya, it will link up to that channel in the material:

That’s why I created a AddNewChannel-VRayMtl.txt setting preset for standard V-Ray Materials that you can paste into the channel presets section your Mari.ini file – those are pre-named to link up with the slots of a V-Ray Material and it would be very easy to make one for Arnold, RenderMan, etc that you could share on the Github page. If you send a texture to Maya from Mari without having sent anything from Maya to initiate those material metadata tags, it will just import the textures and you’ll see the file nodes in the Hypershade. Mari Me’s metadata tags don’t create any sort of plug-in dependency so nothing will break and you won’t receive any warnings if you send a scene to someone without it installed.

Automatic UDIM sending and loading
Mari Me 2 has robust support for UDIM-tiled textures:

If you are running Maya 2015 or above, that supports the UDIM file name variable, Mari Me will use that instead of importing and manually tiling all the UDIM textures. It will also recognize these 2015 UDIM names when you send tiled textures to Mari. It should also work fine with multiple meshes and a mix of tiled and non-tiled UV meshes. I tried to make it smart enough not to break with these production workflow variables but it’s possible stuff slipped through so let me know if you see anything and I’ll see if I can find some time to fix it in the near future.

Alembic support
Mari 2.6v1 got support for Alembic animated meshes and the Python import syntax is the same as importing OBJs so I added support for exporting animated meshes from Maya to Mari via Alembic:

Other stuff
As you can see in the interface, there are a bunch of other little tools and tricks in Mari Me 2:

There are no file format options so everything is sent back and forth as TIFF, since that format can accommodate all bit depths and all working files are in a projectpath/MariMe/ folder so there is no risk of clobbering your existing assets.

Released under a BSD3 license
I started the Python version of Mari Me as a “Pro” version that was going to be monetized but decided not to after getting a new job that I’ll get into later. Because I’m going to be super busy with this new gig, I’m going to have to release Mari Me as unsupported but I released it as open source under the BSD3 license for studios or individuals that want to change the code and use it for their own and they can decide whether or not they want to fork it or not on the Github page for Mari Me:


The old MEL version is no longer on Creative Crash. Read the Read Me file because that explains the setup.

6 notes | Permalink

Nimble Tools Uninstancer Source Available on Github

If you work with particle animations, you probably know about Nimble Tools Uninstancer. It’s been around for years and unfortunately the developer stopped working in VFX but he posted the source scripts (the pre-built Python plug-in broke recently) but they have been updated and posted here:


It’s the best uninstancer around so look no further. Verified working in Maya 2014 and 2015 late beta.

0 notes | Permalink

A Look at the Mac Version of Unreal Editor 4 

I’ve been working with the Mac version of Unreal Editor 4 for a week or so now and am really loving it. I had some experience using UDK3 found the workflow and interface less than great, and it seems they agreed with me because the changes in UE4, as far as workflow go, are almost perfect. And, even though there are a few bugs with the launch version that are being actively squished, the Mac version is no half-assed port. While gaming on the Mac will never replace gaming on the PC, Epic is clearly bullish on the future of Mac and iOS as gaming development and gaming platforms respectively.

Pretty much everything you want is there. Multithreaded light map baking, Matinee, Blueprints (the stuff that replaces Kismet), those GPU-accelerated particles with vector grid and collisions:

Performance looks worse in that video than it is due to a screencap / GPU combo.

You get that sweet shader editor:

Really nice Maya-to-Unreal material support so you can import one combined mesh into Unreal but still get all those unique shader references to edit or even replace:

Post-process volume with bokeh DOF and colour grading:

IES light profile support:

Global Illumination without tricks:

It all adds up to an impressive show considering they had to do this all for OpenGL:

The only noticeable omissions from what I can tell so far are:

- Displacement tessellation for OpenGL shaders
- Oculus Rift Mac Support (this is in Unity already so I hope this comes soon)
- The auto-UV reconstruction stuff isn’t ported yet

Edit: Unreal Me stuff removed
I took down the Unreal Me script because Unreal Engine now lets you import baked animation without bones with the following workflow:

1: Group your baked key animation objects in Maya.
2: Export to animated FBX 2013 with the group selected
3: Import the FBX with the following settings:

Make sure that Import Animation and Import Rigid Mesh is set. From then you’ll get your non-joint based animation imported correctly.

Oh, the joys of scripting for a program you’re still learning :p

4 notes | Permalink