## ShaderParameter

Object Hierarchy | Related C++ Class: ShaderParameter

### Inheritance

SIObject

Parameter

ShaderParameter

### Introduced

v9.0 (2011)

### Description

This object is a specialization of the Parameter interface on a Shader. This interface also has its own specialization for shader array parameters: ShaderArrayParameter.

### Methods

AddCustomOp | AddExpression | AddFCurve | AddFCurve2
AddScriptedOp | AddScriptedOpFromFile | AnimatedParameters | Connect
ConnectFromFile | ConnectFromFile2 | ConnectFromPreset | ConnectFromPreset2
ConnectFromProgID | ConnectFromProgID2 | Disconnect | Enable
GetInstanceValue | GetValue2 | IsAnimated | IsClassOf
IsEqualTo | IsLocked | IsSupportedInstanceValue | PutValue2
SetCapabilityFlag | SetInstanceValue | SetLock | Show
UnSetLock |  |  |

### Properties

Animatable | Application | Capabilities | Categories
DataType | Default | Definition | Definition2
Description | FullName | HasInstanceValue | Help
Keyable | LockLevel | LockType | Marked
Max | Min | Model | Name
NestedObjects | Origin | OriginPath | OriginalValue
OverridenObject | OverridingObject | Parameters | Parent
Parent3DObject | ReadOnly | ScriptName | Source
Sources | SuggestedMax | SuggestedMin | Tags
Targets | Type | Value | ValueType

### Examples

#### Python Example

    #
    # This example demonstrates how to access each shader parameter instantiated
    # on the specified shader and report its shader parameter type
    #
    from win32com.client import constants as si
    app = Application
    app.NewScene("", False)
    # Set up a dictionary to return nice shader parameter type names
    shaderparamtypes = {
            "-1":"siShaderDataTypeUnknown", "0":"siShaderDataTypeBoolean", "1":"siShaderDataTypeInteger",
            "2":"siShaderDataTypeScalar", "3":"siShaderDataTypeVector2", "4":"siShaderDataTypeVector3",
            "5":"siShaderDataTypeVector4", "6":"siShaderDataTypeQuaternion", "7":"siShaderDataTypeMatrix33",
            "8":"siShaderDataTypeMatrix44", "9":"siShaderDataTypeColor3", "10":"siShaderDataTypeColor4",
            "11":"siShaderDataTypeString", "16":"siShaderDataTypeProperty", "17":"siShaderDataTypeProfileCurve",
            "18":"siShaderDataTypeGradient", "32":"siShaderDataTypeReference", "33":"siShaderDataTypeImage",
            "48":"siShaderDataTypeCustom", "64":"siShaderDataTypeStructure", "65":"siShaderDataTypeArray"
    }
    # Set up a cube with a SimpleSSS shader compound
    app.CreatePrim("Cube", "MeshSurface")
    sh = app.CreateShaderFromProgID("XSIRTCOMPOUND.SimpleSSS.1.2", "Sources.Materials.DefaultLib.Scene_Material", "")
    app.SIConnectShaderToCnxPoint("Sources.Materials.DefaultLib.Scene_Material.SimpleSSS.Surface",
            "Sources.Materials.DefaultLib.Scene_Material.Phong.ambient", False)
    # Now we can see what kind of parameters are instantiated on this shader
    for param in sh.Parameters :
            if (param.IsClassOf(si.siShaderParameterID)) :
                    app.LogMessage("'" + param.ScriptName + "' == " + shaderparamtypes[str(param.DataType)])
    # Expected output:
    # INFO : 'bump' == siShaderDataTypeVector3
    # INFO : 'ambient' == siShaderDataTypeColor4
    # INFO : 'overall_color' == siShaderDataTypeColor4
    # INFO : 'diffuse_color' == siShaderDataTypeColor4
    # INFO : 'diffuse_weight' == siShaderDataTypeScalar
    # INFO : 'front_sss_color' == siShaderDataTypeColor4
    # INFO : 'front_sss_weight' == siShaderDataTypeScalar
    # INFO : 'front_sss_radius' == siShaderDataTypeScalar
    # INFO : 'back_sss_color' == siShaderDataTypeColor4
    # INFO : 'back_sss_weight' == siShaderDataTypeScalar
    # INFO : 'back_sss_radius' == siShaderDataTypeScalar
    # INFO : 'back_sss_depth' == siShaderDataTypeScalar
    # INFO : 'specular' == siShaderDataTypeColor4
    # INFO : 'exponent' == siShaderDataTypeScalar
    # INFO : 'radiance' == siShaderDataTypeColor4
    # INFO : 'light' == siShaderDataTypeImage
    # INFO : 'screen_composit' == siShaderDataTypeBoolean
    # INFO : 'scale_conversion' == siShaderDataTypeScalar
    # INFO : 'falloff' == siShaderDataTypeScalar
    # INFO : 'samples' == siShaderDataTypeInteger
    # INFO : 'lightmap_gamma' == siShaderDataTypeScalar
    # INFO : 'scatter_bias' == siShaderDataTypeScalar
    # INFO : 'Surface' == siShaderDataTypeColor4
    # INFO : 'Lightmap' == siShaderDataTypeCustom

### See Also

Shader Parameter