Scripted Material Plug-ins

Scripted Material plug-ins can only extend existing Material plug-ins.

A scripted Material plug-in is declared by specifying the <superclass> as material .

A scripted Material plug-in must have at least one rollout defined.

In a scripted Material plug-in, Material and Map buttons that are associated with a parameter in a parameter block do not call the button’s picked event handler. Instead, you should link the button to a parameter in a parameter block, and use the set handler for the parameter.

SCRIPT

   -- this is a level 3 plug-in, the beginnings of a custom glass material.
   -- It extends Standard material and replaces its UI with a single
   -- rollout with 2 spinners and a color picker
   plugin material myGlass
   name:"Supa Glass"
   classID:#(695425,446581)
   extends:Standard replaceUI:true version:1
   (
     parameters main rollout:params
     (
       trans type:#float default:27 ui:trans
       refrac type:#float default:1.5 ui:refrac
       col type:#color default:blue ui:col
       on trans set val do delegate.opacity = val
       on refrac set val do delegate.ior = val
       on col set val do delegate.diffuse_color = val
     )
     rollout params "Glass Parameters"
     (
       spinner trans "Transparency: " fieldwidth:45 offset:[-90,0]
       spinner refrac "Index of Refraction: " fieldwidth:45 offset:[-90,0]
       colorpicker col "Base color: " align:#center
     )
     on create do
     (
       -- setup initial material
       delegate.opacityFalloff = 75
     )
   )