I thought it might be helpful to other Maya users to mention that the Fabric Engine Splice toolset can be used with the Maxwell Render for Maya plugin. Maxwell Render is a physically accurate light simulation and rendering tool from Next Limit Technologies that works interactively in Maya.
One of Fabric Engine's strengths is that it allows artists to design procedurally generated shapes that can be animated over time to create unique and interesting geometries. Once you have created an interesting scene you have to decide on how you want to render it.
When the Fabric Engine geometry is rendered with Maxwell you can interactively light and shade the scene using the realtime Maxwell FIRE viewport which takes out the painful stages in classical renderers that have to compute slow pre-passes for final gathering and global illumination.
A nice strength of Fabric Engine is that it plays nicely with Maya's Render Layer Editor and this allows you to easily apply render "layer overrides" on Fabric Engine generated procedural shapes.
Fabric Engine has its own scripting language called KL (which is pronounced as "Kale").
In Maya, a custom Splice Maya Node is used to provide access to the KL scripting language, and the Fabric Engine "ports" that connect the animatable Maya Attribute Editor controls to the KL script's internal variables.
You can animate any of the Splice attributes by right clicking on the individual Splice Maya Node controls and selecting "Set Key" from the contextual menu.
If you want to view or edit the attached KL script you can click the "Open Splice Editor" button at the top of the Splice Maya Node to open the Splice Editor window.
The Splice Editor window has two tabs labeled "Ports" and "KL Editor".
The KL Editor provides a quick and easy way to compose new KL scripts and supports line numbering and syntax highlighting. The bottom of the editor window also has a compile button.
The Ports tab allows you to map KL script variables as inputs and outputs that can communicate with the rest of Maya. The Contained Operators section allows you to create new KL scripts that interact with the active ports.
Maya Render Layers
Once you have an animated scene you are satisfied with, its time to set up lights and materials for rendering.
Here is a snapshot of the regular Maya viewport looking through a camera named "RenderCam". The scene has three Fabric Engine animated shells shapes, a ground plane, and the scene lighting is provided by the physical sky system in Maxwell Render.
To get more control in the compositing stage I will create a set of render layers to isolate the shells from the ground plane. At this point I've also enabled Maxwell's MultiLight feature in the render settings that creates a per light multipass render. MultiLight is useful as it allows me to control the light contribution from each light in the scene. When a physical sky is used in Maxwell the MultiLight feature separates the contribution of the sky illumination and the sun illumination in the rendered EXR frame.
As you render a scene with MultiLight enabled you can adjust the lighting contribution in real time in the Maxwell Render program using the sliders. Any changes you make are then pushed back into the lights in your Maya scenes.
Here is an animated GIF file that shows the flexibility of having two render layers with MultiLight enabled for the ground and shell shapes.
In the Render Layer Editor window I have two layers active. On the Shells render layer I set the ground plane to be hidden from the camera using a "Layer Override" with the Hidden from Camera attribute. On the ground render layer I've set the shells to be hidden from the camera using the same Hidden from Camera technique.
A render layer override is created by switching to a specific render layer in the Render Layer Editor window, and right clicking on an attribute in the Attribute Editor Window. A small contextual menu will appear with the "Create Layer Override" option. When an attribute has a layer override applied, the attribute's text label turns an orange color.
The Hidden from Camera attribute is the Maxwell equivalent of the Render Stats "Primary Visibility" control that is used with the Maya Software and Mental Ray renderers. Enabling the Hidden from Camera attribute means the global illumination, reflection, and shadow effects are still calculated for the shape but the geometry will be hidden from the frame and a clean alpha channel will be rendered.
Since I'm rendering to an EXR file using Maxwell, I enabled the Embed Channels and Alpha Options in the Render Settings window.
Rendering the Maxwell Scene Files
At this point I export each of the active Maya render layers to standalone Maxwell scene files (.mxs). You can using the File > Export All command to export a specific render layer to a MXS file. Since I use RenderPal as my render farm software, I've written a few internal Maya shelf tools that automate the render layer export and submission process.
When you go to export the MXS files, it's a good idea to use a custom file name template in your Render Settings "file name prefix" to handle the naming of the exported render layers.
A good starting file name prefix value might be:
You can read more about naming rendered output in the Maya help chapter:
Rendering > Visualize and render images > Render output > Subfolders and names of rendered images
Maxwell will take the file name prefix, the frame/animation extension settings, and the current frame padding value from the Render Settings window when it exports the MXS files.
Tip: If you are customizing your own pipeline / shelf tools you can set a few of the common render settings using the following MEL code:
//Toggle the current renderer to Maxwell Render
// Image Name (File name prefix)
setAttr -type "string" defaultRenderGlobals.imageFilePrefix "<Scene>/<Scene>_<RenderLayer>";
// Time range set to 144 frames
setAttr -channelBox on "defaultRenderGlobals.animationRange" 1;
setAttr "defaultRenderGlobals.startFrame" 0;
setAttr "defaultRenderGlobals.endFrame" 143;
// Name.#.ext format
// Frame Padding 5
setAttr "defaultRenderGlobals.extensionPadding" 5;
// Frame Size
setAttr "defaultResolution.width" 2048;
setAttr "defaultResolution.height" 858;
setAttr "defaultResolution.deviceAspectRatio" 2.387;
setAttr "defaultResolution.pixelAspect" 1;
setAttr "defaultResolution.aspectLock" 1;
//Disable the default light
setAttr "defaultRenderGlobals.enableDefaultLight" 0;
// Apply EXR file format
setAttr "defaultRenderGlobals.imageFormat" 31;
Once you've exported your current Maya Fabric Engine scene to standalone Maxwell MXS files you are ready for rendering the animation on your render farm. Here is a Windows Explorer snapshot of the MXS files for the current scene.
These MXS files are then submitted to your render farm software. You can use Maxwell Render's integrated Maxwell Network Monitor tool to render simple scenes.
For more complex rendering tasks I've had good success using RenderPal to handle my Maxwell rendering needs. RenderPal's job submission tool makes it easy to submit a folder of MXS files and render them over the network. RenderPal also has a command line tool RpRcCmd.exe that can be automated with MEL to handle Maxwell Render job submission from inside of Maya.
Troubleshooting Maxwell MXS Scene Files
If you need to troubleshoot a rendering issue, or are curious about the contents of a Maxwell MXS scene file, you can open any of the per-frame Maya exported MXS scene files up in Maxwell Studio and take a look at its contents. Here is a view of the Lambert shaded models in the scene that were exported on my default render layer.