インタフェース: SceneEffectLoader

インタフェース > コア インタフェース > SceneEffectLoader

 

   

コア インタフェース - クイック ナビゲーション

このコア インタフェースは、MAXScript に [シーンの効果ローダ](Scene Effect Loader)ユーティリティを公開します。

3ds Max 9 以降で使用可能です。

   

メソッド:

<bool>SceneEffectLoader.LoadSceneEffect <filename>effectFile effectType:<enum> numberOfPasses:<integer> 	 

effectType enums: { #Post | #Pre | #Env} 	 
effectType default value: #Post 	 
numberOfPasses default value: 0   

指定された効果ファイルを[シーンの効果ローダ](Scene Effect Loader)にロードします。

指定されたファイルをロードし、シーンの効果システムに登録します。システムは、Post、Pre、および Env の 3 つのリストを保持します。

#Post - 効果はシーン グラフの末尾に適用されます。たとえば、セピアやエッジの検出などです。

#Pre - ジオメトリをレンダリングする前に実行されます。バックグラウンド効果に使用すると便利です。最初にロードされた Pre 効果のみが使用されます。

#Env - 環境効果。個別のパスで実行され、一般には、シーン グラフ内でオブジェクト ベースのシェーダまたは後で適用されるシェーダのデータを作成します。たとえば、シャドウや深度情報などです。

効果が属するリストを指定するには、effectType: 引数を使用します。

numberOfPasses: 引数は Env タイプのシェーダと組み合わせる場合にのみ使用されます。環境シェーダはシステムに対して必要なパスの数(たとえば、キューブ マップを作成する場合は 6 個)を通知する必要があります。

リストは生成された順序で保持されます。つまり、効果は同じ順序で実行されます。このため、リストを再編成する場合は、すべての効果を削除して、正しい順序に適用します。

   

<void>SceneEffectLoader.ResetEffects() 

すべての効果を削除して、[シーンの効果ローダ](Scene Effect Loader)をリセットします。

   

<bool>SceneEffectLoader.EnableSceneEffects <bool>enable 

ブール値の引数によって[シーンの効果ローダ](Scene Effect Loader)を有効にしたり無効にしたりします。「ポスト」効果が存在しない場合は、シーンの効果システムを有効にすることはできません。システムがレンダリングを行うためには、少なくとも 1 つのポスト効果が必要です。

   

<bool>SceneEffectLoader.IsSceneEffectsEnabled() 

[シーンの効果ローダ](Scene Effect Loader)が有効な場合は true を返し、それ以外の場合は false を返します。

   

<integer>SceneEffectLoader.GetNumberOfSceneEffects effectType:<enum> 

effectType enums: { #Post | #Pre | #Env } 
effectType default value: #Post 

現在[シーンの効果ローダ](Scene Effect Loader)にロードされているシーンの効果の数を返します。既定値では、明示的に効果のタイプを指定しない限りはポスト効果の数のみが返されます。

   

<bool>SceneEffectLoader.RemoveSceneEffect <index>index effectType:<enum> 

effectType enums: { #Post | #Pre | #Env } 
effectType defaultvalue: #Post 

インデックスで指定されたシーンの効果を[シーンの効果ローダ](scene effect from the Loader)から削除します。既定値では、[ポスト効果](Post Effects)リストに反映されます。別の効果のタイプを指定すると、対応する効果のリストに反映させることができます。

   

<material>SceneEffectLoader.GetSceneEffect <index>index effectType:<enum> 

effectType enums: { #Post | #Pre | #Env } 
effectType default value: #Post 

指定された効果のリストから、インデックスで指定された効果をホスティングしている DirectX シェーダ マテリアルを返します。

たとえば、Post リストに効果 post_corona.fx が含まれている場合は、インデックス 1 を使用してこのメソッドを呼び出すと、この fx ファイルをロードした状態で DirectX シェーダが作成され、これをマテリアル エディタの任意のスロットに割り当てて MAXScript から調整したり操作したりすることができます。

注:ビューポート ドライバが古いバージョンの Direct3D である場合にのみ、次の例を実行できます。

theFile = (GetDir #maxroot + "maps\\fx\\scene\\post_corona.fx") --the FX file
SceneEffectLoader.LoadSceneEffect theFile --add the file to the Post list.
theShader = SceneEffectLoader.GetSceneEffect 1 --get the first Post effect
theShader.GlowCol = blue --set the glow color to blue
theShader.Bias = 8.0 --set the bias to 8
meditmaterials[1] = theShader --assign to MEdit slot 1 for manual tweaking
SceneEffectLoader.EnableSceneEffects true --enable the scene effects