## Light.FindShaders

### Introduced

v5.0

### Description

Returns all shaders applied to the light that match a filter. If no matching shaders are found, FindShaders returns an empty collection.

### C# Syntax

    ShaderCollection Light.FindShaders( String );

### Scripting Syntax

    oReturn = Light.FindShaders( Filter );

### Return Value

ShaderCollection

### Parameters

Parameter | Type | Description
--- | --- | ---
Filter | String | Name of a shader Filter object. For example, you can use siShaderFilter (the standard Softimage shader filter), or you can use a custom filter.

### Examples

#### JScript Example

    // Create a scene with an object lit by a spotlight
    var root = Application.ActiveProject.ActiveScene.Root;
    var grid = root.AddGeometry( "Grid", "MeshSurface" );
    scale( grid, 2, 2, 2, siAbsolute );
    var cone = root.AddGeometry( "Cone", "MeshSurface" );
    translate(cone, 0, 1.3, 0 );
    var light = root.AddLight( "LightSpot", true, "SpotLight" );
    ApplyCns( "Position", light.interest, cone );
    ApplyCns( "Orientation", light.interest, cone );
    translate( light, 4, 6, 4);
    var strFileName = Application.InstallationPath( siFactoryPath ) +
            "\\Data\\XSI_SAMPLES\\Pictures\\xsilogo.jpg";
    var imageclip = CreateImageClip( strFileName, "XSILogo" );
    // Find the first parameter that is texturable and of type color.
    // This is the shader connection point.
    var shader_param = null;
    for ( i=0; i < light.parameters.count; i++ )
    {
            var param =  light.parameters(i);
            var inputtype =  light.GetShaderInputType(param.scriptname);
            if ((param.capabilities & siTexturable) && (inputtype == siColorParameterType ))
            {
                    shader_param = param;
                    break;
            }
    }
    logmessage( "shader connection point = " + shader_param.fullname );
    // set up shader tree
    if ( shader_param )
    {
            var mix2 = shader_param.ConnectFromProgID("Softimage.sib_color_2mix");
            var soft_light = mix2.parameters("base_color").ConnectFromProgID("Softimage.soft_light");
            var fast_light_effect = mix2.parameters("color1").ConnectFromProgID("Softimage.Bionic_Light.lit");
            fast_light_effect.parameters("Projector_Pic").connect(imageclip);
    }
    // Find the soft_light shader
    var shaders = light.FindShaders(siShaderFilter);
    var eShaders = new Enumerator(shaders);
    // Set up shadows with a softlight.
    var soft_light_id = String("Softimage.soft_light.1").toLowerCase();
    for ( ; !eShaders.atEnd(); eShaders.moveNext() )
    {
            var shader = eShaders.item();
            if (shader.progid.toLowerCase() == soft_light_id)
            {
                    // setup shadows
                    var soft_light = shader;
                    soft_light.parameters("shadow").value = true;
                    soft_light.parameters("factor").value = 0.5;
                    break;
            }
    }
    //INFO : shader connection point = SpotLight.light.LightShader

### See Also

Light.GetShaderInputType Material.FindShaders