SIConnectShaderToC nxPoint

Introduced

1.0

Description

Connects a shader to the specified shader connection points.

Scripting Syntax

    SIConnectShaderToCnxPoint( [Source], [InputObjs], [DeleteOnLastDisconnection] )

Parameters

Parameter | Type | Description
Source | String | Shader to connect Default Value: Current selection
InputObjs | String | List of shader connection points. Default Value: Current selection
DeleteOnLastDisconnection | Boolean | True to delete existing shaders that are disconnected by this command. Default Value: True

Return Value

Returns an XSICollection that contains the newly connected shader(s).

Examples

VBScript Example

    '
    ' This example creates a sphere, applies a lambert shader to it, prints out
    ' the list of connection points to that shader, connects the toon shader
    ' to the surface and shadow connection points and then prints the updated list.
    '
    ' Create the sphere to which the shader will be connected
    NewScene , false
    set oSphere = CreatePrim( "Sphere", "NurbsSurface" )

    ' Apply a lambert shader to instantiate the material
    sPresetPath = XSIUtils.BuildPath(_
       Application.InstallationPath(siFactoryPath), _
       "Data", "DSPresets", "Shaders", "Material", "Lambert.Preset" _
    )
    set oShader = SIApplyShader( sPresetPath, oSphere, "Christopher" )

    ' Convert the shader to a Shader object
    set oShader = oShader(0)

    ' Print lambert shader info
    printShaderInfo oShader

    ' Load a toon shader
    CreateShaderFromPreset "Shaders\Material\Toon_Paint_Rounded.Preset", "Sources.Materials.DefaultLib.Material"

    ' For convenience, create a collection to hold the parameters
    ' to be disconnected (Surface and Shadow connection points).
    set oCnxPoints = CreateObject( "XSI.Collection" )
    oCnxPoints.Add oSphere & ".material.Surface"
    oCnxPoints.Add oSphere & ".material.Shadow"

    ' Use that collection to connect the toon shader to the sphere
    set oToony = SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Material.Toon_Paint_Rounded", oCnxPoints )

    ' Convert the shader to a Shader object
    set oToony = oToony(0)

    ' Print toon shader info
    printShaderInfo oToony

    ' This is a convenience routine that prints information about the shader
    sub printShaderInfo( in_shader )
       ' From the shader object you can get the material it belongs to
       set oMaterial = in_shader.Owners(0)

       ' Use the material to return the parameters that are connected and
       ' print out their names
       for each p in oMaterial.Parameters
            if TypeName( p.Source ) <> "Nothing" then
               Application.LogMessage p.ScriptName & " is connected to " & p.Source.Name
            end if
       next
    end sub

    ' Output of the above script:
    ' ...before adding the toon shader
    ' INFO : surface is connected to Christopher
    ' INFO : shadow is connected to Christopher
    ' INFO : Photon is connected to Christopher
    '
    ' ...after adding the toon shader
    ' INFO : surface is connected to Phong
    ' INFO : shadow is connected to Phong
    ' INFO : Photon is connected to Lambert

See Also

AddObjectsToShader | RemoveObjectsFromShader | ApplyShader | RemoveShaderFromCnxPoint
RemoveAllShadersFromCnxPoint |  |  |

Autodesk Softimage v7.5