Share

Interface: dxshadermanager

The dxshadermanager Core Interface exposes the DirectX Shader Manager to MAXScript.

Interface: dxshadermanager

Methods:

<maxObject>dxshadermanager.getViewportManager <material>material   

Returns the viewport manager’s ViewportManagerCustAttrib object for the specified material.

<boolean>dxshadermanager.IsVisible() 

Returns true if the manager is visible.

<float>dxshadermanager.SetVisible <boolean>show 

This method can be used to turn the manager on and off. It will not have an effect if the user is running in DirectX mode.

<maxObject>dxshadermanager.addViewportManager <material>material 

Adds a new viewport manager to the specified material and returns the ViewportManagerCustAttrib object providing an interface to access its effects.

EXAMPLE:

   -- Create a new standard material
   newmat = StandardMaterial()
   -- Get the viewport manager from the material
   manager = DXShaderManager.getViewportManager newmat
   -- If there is no manager, assign a new one 
   if (manager==null) then manager = DXShaderManager.addViewportManager newmat
   -- Get the active viewport effect
   effect = manager.getactiveviewporteffect()

   -- If there is no active effect, create a new one.
   if (effect == null) then
   effect = manager.setviewporteffect 1
   -- 1 in our case is the lightmap, 0 sets it to "none"
   -- Set the LightMap file names
   effect.lightmap_filename = GetDir(#image) + "\\testlightmap.bmp"
   effect.diffuse_filename = GetDir(#image) + "\\testdiffuse.bmp"

   -- set the mapping channel to use
   effect.lightmap_mapping = 1
   effect.diffuse_mapping = 1
   -- Search for the effect based on name 
   -- Get the total number of effects:
   num = manager.getNumViewportEffects()
   -- Step through all effects and check for name. If found,
   -- then activate it.
   for i = 1 to num do
   ( 
   if (manager.getViewportEffectName(i) == "LightMap") then effect = manager.setviewporteffect i
   )

Was this information helpful?