GetShaderInputType (Material)

Introduced

5.0

Description

Returns the shader input type for the specified parameter. If the parameter cannot be connected to another shader GetShaderInputType returns siUnknownInputType.

Scripting Syntax

    Material.GetShaderInputType( ParameterScriptName )

C# Syntax

    siShaderParameterType Material.GetShaderInputType( String Parametername );

Parameters

Parameter | Type | Description
ParameterScriptName | String | Script name of the parameter

Return Value

siShaderParameterType

Examples

JScript Example

    // Create an object with a texture shader
    var root = Application.ActiveProject.ActiveScene.Root;
    var model = root.AddModel();
    model.Name = "MyModel";
    var object = model.AddGeometry( "Sphere", "MeshSurface" );

    BlendInPresets( "Image", object, 1, false );
    CreateProjection( object, siTxtSpherical, siTxtDefaultSpherical, "TxtSupport", "TxtProjection" );

    var filename = Application.InstallationPath( siFactoryPath ) +
       "\\Data\\XSI_SAMPLES\\Pictures\\xsilogo.jpg";

    var imageclip = CreateImageClip( filename, "XSILogo" );

    // Set up the texture space on the texture shader
    var mat = object.Material;
    var textureshader = null;

    // Different ways to get the texture shader:
    // Method 1
    textureshader = object.Material.CurrentTexture;

    // Method 2
    var shaders = mat.FindShaders(siShaderFilter);
    textureshader = shaders("Image");

    // Method 3
    textureshader = mat.Shaders("Phong").Shaders("diffuse_blend").Shaders("Image");

    // Set the texturespace parameters
    textureshader.Parameters("tspace_id").Value = "TxtProjection";
    textureshader.Parameters("tex").Connect(imageclip);

    // List the names and input types of all parameters that support shader connections
    var eParams = new Enumerator(mat.Parameters);

    for ( ; !eParams.atEnd(); eParams.moveNext() )
    {
       var param = eParams.Item();

       if (param.capabilities & siTexturable)
       {
           var inputtype = mat.GetShaderInputType(param.scriptname);

           // This parameter supports a shader connection
           Application.LogMessage( param.FullName + " has shader inputtype = " + ShaderParameterTypeAsText(type) );
       }
              }

    function ShaderParameterTypeAsText(type)
    {
       switch (type)
       {
           case siUnknownParameterType : return "siUnknownParameterType";
           case siBooleanParameterType : return "siBooleanParameterType";
           case siColorParameterType : return "siColorParameterType";
           case siDataParameterType : return "siDataParameterType";
           case siIntegerParameterType : return "siIntegerParameterType";
           case siLensParameterType : return "siLensParameterType";
           case siLightParameterType : return "siLightParameterType";
           case siMaterialParameterType : return "siMaterialParameterType";
           case siMatrixParameterType : return "siMatrixParameterType";
           case siModelParameterType : return "siModelParameterType";
           case siRealTimeParameterType : return "siRealTimeParameterType";
           case siReferenceParameterType : return "siReferenceParameterType";
           case siScalarParameterType : return "siScalarParameterType";
           case siShaderParameterType : return "siShaderParameterType";
           case siStringParameterType : return "siStringParameterType";
           case siStructParameterType : return "siStructParameterType";
           case siTextureParameterType : return "siTextureParameterType";
           case siTextureSpaceParameterType : return "siTextureSpaceParameterType";
           case siVectorParameterType : return "siVectorParameterType";

           default: return inputtype;
       }
    }

    //INFO : MyModel.sphere.Scene_Material1.surface has shader inputtype = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.volume has shader inputtype = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.environment has shader inputtype = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.contour has shader inputtype = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.displacement has shader inputtype = siScalarParameterType
    //INFO : MyModel.sphere.Scene_Material1.shadow has shader inputtype = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.Photon has shader inputtype = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.PhotonVolume has shaderinput type = siColorParameterType
    //INFO : MyModel.sphere.Scene_Material1.normal has shader inputtype = siVectorParameterType
    //INFO : MyModel.sphere.Scene_Material1.RealTime has shader inputtype = siRealTimeParameterType
    //

See Also

Shader.OutputType | Parameter.ScriptName

Autodesk Softimage v7.5