BlurBeta: Utility Material Version 2.01

Synopsis:
This material does several different little things.  First of all, it allows the users to add behaviors to a material that may have, intentionally or not, been overlooked by the developer.  Second, it allows you direct access to the outputs of the material's shade equation (sc.out.c and sc.out.t - color and transparency) so the user can really take a brute force approach to building a material.  Third, it allows the user to control object visibility based upon ray level (the number of times a ray has bounced) so that you can render an object's reflections without rendering the original object.

Motivation:

Installation:
Just put this plugin in your 3DS Max plugin path or use the "Configure Paths" dialog to add the location of the plugin to your plugin path.  See the Max docs for more help.  The Utility Material can be found in the material editor as a Material.  This material needs the latest BlurLib.dlu for it's operation, so be sure that BlurLib is loaded before this plugin.

Usage:
To override or add material extensions (requirements, bump maps, displacement maps, etc) to an existing material, just put a material in the Sub Material slot of the Utility Material and set up whatever you need in the Basic Material Extensions.

By using the Base Material Params, you have direct access to the outputs of max's shading equation.  In short, these are the rendered fragment's color and transparency.  For example, using a Falloff map with the type set to Shadow/Light in the color slot of the Base Material Params, you can approximate the look of a diffuse shade without specular highlights.  You can blend between these Base Material Params and the output of the Sub Material by setting the amount on the Sub Material.  The Sub Material is Composited over the Base Material Params.

Ray Level Visibility can be used to control the visibility of an object based on how many times a ray has bounced.  For example, you can render the reflection of an object without rendering the object itself by making the Ray Level Visibility render between 1 and 100.  Or you could render the the object and all of it's reflections except for the 3rd bounce by setting the RayLevel between 3 and 3 and clicking the invert button.  This should work with transparent object's too.

An example max file and an avi are included.  These demo the effect of rendering only the reflections of an object.  In the avi, note the reflections of the ground in the bottom of the teapot - the ground is in the scene, but only renders in the reflections on the teapots.  The summary info on the max file explains the motivation for this.

Version History:
Version 2.01 of Utility Material allows you to override the 2sidedness of sub-materials.  If a submaterial of the UtilMtl has a 2-sided material anywhere in it, the UtilMtl's 2-side flag will be in a grayed out state - you can then uncheck the flag to turn off the 2-sidednesstivity of the submaterial(s).

To Be Done:
Maybe just add a checkbox to automatically do the "make it invisible, but still render it in reflections" mode.

General:
The usual disclaimers apply - Blur studio cannot support or guarantee this thing in any way. Its gratis - enjoy. If you have any comments or questions, direct them to blurbeta@blur.com - If we have the time, we'll do what we can.  See also:  the license agreement. our generic readme, this plugin's current bug list.

You may not distribute this without permission from blur studio.

If you use it, your company has cool T-Shirts, and your looking for a way to show your gratitude, send a shirt or two to:

R&D at Blur Studio, Inc.
1130 Abbot Kinney Blvd.
Venice, CA 90291

software@blur.com
Scott Kirvan - Blur.

Last Modified : 08/17/99