render
レイヤをベースにしたパーティションを持つ新しいパスを作成し、現在のパスに設定します。
シーン内の特定のエレメントを分離するためには、レイヤ内でシーンをレンダリングすると非常に便利です。こうすると、特殊なエフェクトを柔軟に使用できるようになります。
注: パスとレイヤは概念的には類似していますが、大きな違いがあります。
レイヤはシーンのエレメントを分離するために使用するもので、レイヤによってエレメントの外観を編成することもできますし、レンダリングしないようにして処理の応答を最適化することもできます。
レイヤは主にビューポートのビューとレンダ領域に影響します。
パスはシーン エレメントをレンダリング用に分離するもので、パスごとに別々に微調整したり編集したりすることができます。
注: このコマンドは、出力引数を使用します。 C#
および一部のスクリプト言語(JScript、PerlScript、Python
など)は、リファレンスによって渡される引数をサポートしていません。このため、状況に応じた適切な回避策を実行する必要があります。
スクリプト言語の場合、このコマンドは出力引数を取得するために使用できる ISIVTCollection を戻します。
C# の場合は、XSIApplication.ExecuteCommand
メソッドを使用してこのコマンドを呼び出すことができます。 ExecuteCommand は、出力引数を C# の
System.Object (出力引数の配列を含む)にパック化します(詳細については、「C#
からのコマンドの呼び出し」を参照)。
CreatePassFromLayers( [Name], [Value] ); |
'
' This example creates a cone and a sphere, creates a new layer
' for each, and then creates a new pass based on the layers.
'
' Create a new scene
NewScene , false
' Create a cone and make a layer with it
Set oCone = GetPrim( "Cone", "MeshSurface" )
CreateLayer , "Wizard_Hat", , oHat
' Do the same with a sphere
Set oSphere = GetPrim( "Sphere", "MeshSurface" )
CreateLayer , "Magic_Ball", , oBall
' Create a pass based on these layers
CreatePassFromLayers "Wizard", oPass
' Print partition info
Application.LogMessage "Info on " & oPass.Name & ":"
Application.LogMessage "--------------------------------"
' Create an XSICollection with the partition info
set oParts = CreateObject( "XSI.Collection" )
oParts.SetAsText( oPass & ".Partitions.*" )
For Each p In oParts
Application.LogMessage p
Next
' Output of the above script:
'INFO : "Info on Wizard:"
'INFO : "--------------------------------"
'INFO : "Passes.Wizard.Background_Objects_Partition"
'INFO : "Passes.Wizard.Background_Lights_Partition"
'INFO : "Passes.Wizard.Layer_Default"
'INFO : "Passes.Wizard.Layer_Default1"
'INFO : "Passes.Wizard.Wizard_Hat"
'INFO : "Passes.Wizard.Magic_Ball"
|