ImportShaderCompound

Introduced

7.0

Description

Imports a shader compound.

Scripting Syntax

ImportShaderCompound( [Container], Path )

Parameters

Parameter

Type

Description

Container

String

Container to hold imported shader compound.

Default Value: Current selection

Path

String

Location of shader compound on disk.

Return Value

Shader or Texture object.

Examples

Python Example

#
# This example demonstrates how to set up shader compound, export it to disk, and
# then import and connect it in a fresh scene.
#

app = Application
from win32com.client import constants as xsi

# For readability, we are always saving to the user's RTCompounds directory
path = XSIUtils.BuildPath(
   app.InstallationPath(xsi.siUserPath),
   "Data", "RTCompounds"
)

# Convenience function to create and export a shader compound (innerSC.xsirtcompound)
# that we will reference/nest in another shader compound.
def CreateInnerCompound() :
   app.NewScene( None, 0 )
   app.CreatePrim( "Torus", "MeshSurface" )
   app.CreateShaderFromPreset( "Shaders\\Texture\\Gradient.Preset", 
       "Sources.Materials.DefaultLib.Scene_Material" )
   app.CreateShaderFromPreset( "Shaders\\Texture\\Grid.Preset", 
       "Sources.Materials.DefaultLib.Scene_Material" )
   app.SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Scene_Material.Grid", 
       "Sources.Materials.DefaultLib.Scene_Material.Phong.ambient", 0 )
   app.SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Scene_Material.Gradient", 
       "Sources.Materials.DefaultLib.Scene_Material.Grid.line_color", 0 )
   app.CreateShaderCompound( "Sources.Materials.DefaultLib.Scene_Material.Gradient,"
       + "Sources.Materials.DefaultLib.Scene_Material.Grid" )
   app.ExportShaderCompound( "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound", 
       path+"\\innerSC.xsirtcompound" )


# Create the shader compound to be nested and save it to disk
CreateInnerCompound()

# Set up a new scene with a torus again
app.NewScene( None, 0 )
app.CreatePrim( "Torus", "MeshSurface" )

# Import the shader compound previously exported in the CreateInnerCompound() function
app.ImportShaderCompound( "Sources.Materials.DefaultLib.Scene_Material", 
   path+"\\innerSC.xsirtcompound" )

# Now connect the newly imported shader compound 
app.SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound.ambient", 
   "Sources.Materials.DefaultLib.Scene_Material.Phong.ambient", 0 )

# Add some more shader connections
app.CreateShaderFromPreset( "Shaders\\Texture\\Fractal.Preset", 
   "Sources.Materials.DefaultLib.Scene_Material" )
app.SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Scene_Material.Fractal", 
   "Sources.Materials.DefaultLib.Scene_Material.Phong.specular", 0 )
app.CreateShaderFromPreset( "Shaders\\Texture\\Ripple.Preset", 
   "Sources.Materials.DefaultLib.Scene_Material" )
app.SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Scene_Material.Ripple", 
   "Sources.Materials.DefaultLib.Scene_Material.Phong.diffuse", 0 )

# Create a new shader compound which will have shaders and the newly imported shader compound
app.CreateShaderCompound( "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound,"
   + "Sources.Materials.DefaultLib.Scene_Material.Fractal,"
   + "Sources.Materials.DefaultLib.Scene_Material.Ripple" )

See Also

CreateShaderFromPreset

CreateShaderFromCLSID

CreateShaderFromProgID

CreateShaderCompound

NestShaders

UnnestShaders

AddShaderCompoundPort

RemoveShaderCompoundPort

MoveShaderCompoundPort

RenameShaderCompoundPort

ExportShaderCompound

ExplodeShaderCompound

SetShaderCompoundProperties

GetShaderCompoundProperties

 

 



Autodesk Softimage v7.5