インタフェース: dxshadermanager

dxshadermanager コア インタフェースは、DirectX シェーダ マネージャを MAXScript に公開します。

   

Interface: dxshadermanager

メソッド:

<maxObject>dxshadermanager.getViewportManager <material>material   

指定されたマテリアルのビューポート マネージャの ViewportManagerCustAttrib オブジェクトを返します。

   

<boolean>dxshadermanager.IsVisible() 

マネージャが表示可能な場合は true を返します。

   

<float>dxshadermanager.SetVisible <boolean>show 

このメソッドを使用して、マネージャのオンとオフを切り替えることができます。この機能は、ユーザが DirectX モードで実行している場合には効果がありません。

   

<maxObject>dxshadermanager.addViewportManager <material>material 

指定されたマテリアルに新しいビューポート マネージャを追加し、その効果にアクセスするためのインタフェースを提供する ViewportManagerCustAttrib オブジェクトを返します。

例:

-- 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
)

関連事項