CreatePassFromLayers

Description

Creates a new pass with partitions based on layers, and makes it the current pass. Rendering a scene in layers can be extremely useful in isolating specific elements of a scene in order to have more flexibility when using special effects.

Note: Although similar in concept, there is a big difference between passes and layers:

LAYERS are used to separate elements of a scene so they can be visually organized or not rendered to optimize interaction. Layers mainly affect the viewport views and the render region.

PASSES separate scene elements for rendering so they can be individually tweaked or edited.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:

For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.

For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

Scripting Syntax

CreatePassFromLayers( [Name], [Value] );

Parameters

Parameter Type Description
Name String Name of the new pass
Value Pass Returns the new pass

Examples

VBScript Example

'

'	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"

See Also

CreatePass RenderPasses CreateLayer SICreatePass SICreatePartition SICreateLayer