DUSTY is a small utility shader for the Arnold renderer capable of simulating the settling of dust. It does some extra raytracing to search for top occlusions.

[before-after viewer_position=”center” offset=”0.2″ move_on_hover=”true” overlay=”false”]


Renders showing the difference between the default Maya snow node and a Maya snow node in combination with Dusty. Note how the it takes into account the overhanging objects. This effect is different than multiplying an ambient occlusion shader, as it takes into account the hemisphere around the Y-axis instead of the shading point normal.

[expand title=”DOWNLOADS” tag=”h4″ expanded=”true”]


[expand title=”INSTALLATION” tag=”h4″]
[expandsub2 title=”MTOA” tag=”h3″]

Set the following environment variables, replacing “$PATH_TO_DUSTY” with the actual path on your machine.







It’s also possible to copy the files into your MtoA install, but I personally prefer the first option. Just copy the files like this:

Files in /bin  go to [$MTOA_LOCATION]/shaders

Files in /ae  go to [$MTOA_LOCATION]/scripts/mtoa/ui/ae



[expand title=”DOCUMENTATION” tag=”h4″ expanded=”true”]


Dusty expects an input to work properly, a dot product calculation of the shading point normal and the Y-axis. In Maya, just plug in a snow node, which takes care of those calculations. This is necessary to get the nice dust falloff, as Dusty only takes care of the extra raytracing to search for top occlusions.


The maximum ray length in which to search for object intersections in centimeters.


Limit the angle of hemisphere sampling with this. Smaller spreads will produce harder edges, whilst a larger spread will soften them. Equal to the AiAmbientOcclusion spread function.

Spread comparison

Note the dust shadowing effect.

Trace Set:

Use this to limit the raytracing for this specific shader to certain objects. Dusty works with inclusive trace sets.

In an asset pipeline, it is important to set a single trace set name, eg “asset01”. Then set the same trace set name in the object shape node for all objects which you want to include. Objects that you do not want to include, you have to give another trace set name, eg “none”. This is important since inclusive trace sets will trace both against objects with the same trace set name, and objects without any name at all.



Powered by themekiller.com