インタフェース: 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
)
|