CreateShaderCompound
 
 
 

CreateShaderCompound

Introduced

v7.0

Description

Creates a shader compound.

Scripting Syntax

oReturn = CreateShaderCompound( InputObj, [Name] );

Return Value

The new shader compound node as a Shader or Texture object.

Parameters

Parameter Type Description
InputObj String Shaders to be compounded.

Default Value: If not specified, the user is prompted to make a selection.

Name String Name of the new shader compound.

Default Value: ""

Examples

1. JScript Example

/*
        This example demonstrates how to use the CreateShaderCompound command.
*/
NewScene(null, false);
CreatePrim("Sphere", "MeshSurface", null, null);
// Create an Image Shader using its ProgID and nest it under the material
CreateShaderFromProgID( "Softimage.txt2d-image-explicit.1", 
        "Sources.Materials.DefaultLib.Scene_Material", "Image");
SIConnectShaderToCnxPoint("Sources.Materials.DefaultLib.Scene_Material.Image", 
        "Sources.Materials.DefaultLib.Scene_Material.Phong.diffuse", false);
// Create a shader compound containing the Phong Shader and automatically 
// exposing the Diffuse Port because there is a connection on it.
CreateShaderCompound("Sources.Materials.DefaultLib.Scene_Material.Phong", "MyCompound");
// Create a Fractal Shader using its ProgID and nest it under the shader compound.
CreateShaderFromProgID( "Softimage.txt3d-fractal_v3.1", 
        "Sources.Materials.DefaultLib.Scene_Material.MyCompound", "Fractal");
SIConnectShaderToCnxPoint("Sources.Materials.DefaultLib.Scene_Material.MyCompound.Fractal", 
        "Sources.Materials.DefaultLib.Scene_Material.MyCompound.Phong.specular", false);

2. VBScript Example

'
' This example demonstrates how to build a very simple shader compound.
'
NewScene , false
CreatePrim "Torus", "MeshSurface"
' Connect a Texture Grid shader to the Phong's Ambient property
CreateShaderFromPreset "Shaders\Texture\Grid.Preset", _
        "Sources.Materials.DefaultLib.Scene_Material"
SIConnectShaderToCnxPoint "Sources.Materials.DefaultLib.Scene_Material.Grid", _
        "Sources.Materials.DefaultLib.Scene_Material.Phong.ambient", False
' Connect a Gradient shader to the Texture Grid's Line Color property
CreateShaderFromPreset "Shaders\Texture\Gradient.Preset",  _
        "Sources.Materials.DefaultLib.Scene_Material"
SIConnectShaderToCnxPoint "Sources.Materials.DefaultLib.Scene_Material.Gradient", _
        "Sources.Materials.DefaultLib.Scene_Material.Grid.line_color", False
' Create a shader compound out of the Gradient and Grid shaders and expose some input ports
' (the output port was automatically created since the Grid was connected to the Phong
CreateShaderCompound "Sources.Materials.DefaultLib.Scene_Material.Gradient," _
        + "Sources.Materials.DefaultLib.Scene_Material.Grid"
AddShaderCompoundPort "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound.Gradient.range_min", _
        "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound"
AddShaderCompoundPort "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound.Gradient.range_max", _
        "Sources.Materials.DefaultLib.Scene_Material.ShaderCompound"

See Also

CreateShaderFromPreset CreateShadersFromMaterialPreset CreateShaderFromCLSID CreateShaderFromProgID NestShaders UnnestShaders AddShaderCompoundPort RemoveShaderCompoundPort MoveShaderCompoundPort RenameShaderCompoundPort ExportShaderCompound ImportShaderCompound ExplodeShaderCompound SetShaderCompoundPropertiesEx GetShaderCompoundProperties EditShaderCompoundPPGLogic ShaderContainer.CreateCompound