GetShaderInputType (Shader)
Introduced
5.0
Description
Returns the shader input type for a parameter. If the parameter cannot be connected to a shader, GetShaderInputType returns siUnknownParameterType.
Scripting Syntax
Shader.GetShaderInputType( ParameterScriptName )
C# Syntax
siShaderParameterType Shader.GetShaderInputType( String in_Param );Parameters
|
Parameter |
Type |
Description |
|
ParameterScriptName |
Script name of parameter. |
Return Value
Examples
JScript Example
// This example shows how to traverse a shader tree and list the // available shader inputs and their input types. // // Create an object with a texture shader newscene(null,false); 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 texture shader var mat = object.Material; var textureshader = object.Material.CurrentTexture; // Set the texturespace parameter textureshader.parameters("tspace_id").Value = "TxtProjection"; textureshader.parameters("tex").Connect(imageclip); // Select the texture shader SelectObj("MyModel.sphere.Scene_Material1.Phong.ambient_blend.Image", null, null); // Get an object from the selection list var obj = selection(0); // object is a shader if ( obj.isclassof( siShaderID ) ) { // Get the material from shader var mat = obj.Root; traverse_shadernode(mat); } function traverse_shadernode( shadernode ) { if ( ! shadernode ) return; if (! ( shadernode.isclassof( siShaderID ) || shadernode.isclassof( siMaterialID ) || shadernode.isclassof( siLightID ) || shadernode.isclassof( siCameraID )) ) return; // Traverse the occupied shader inputs var eParam = new Enumerator(shadernode.parameters); for ( ;!eParam.atEnd(); eParam.moveNext() ) { var param = eParam.item(); if (param.capabilities & siTexturable) { var nextnode = param.source; // parameter connected to shader node if ( nextnode != null ) traverse_shadernode( nextnode ); else // parameter free { var inputtype = shadernode.GetShaderInputType(param.scriptname); logmessage( param.fullname + " is free to be connected to a shader that will match input type " + 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 type; } } //INFO : Sources.Materials.DefaultLib.Scene_Material1.Phong.ambient_blend.base_color is free to be connected to a shader that will match input type siColorParameterType //INFO : Sources.Materials.DefaultLib.Scene_Material1.Phong.ambient_blend.Image.repeats is free to be connected to a shader that will match input type siVectorParameterType //INFO : Sources.Materials.DefaultLib.Scene_Material1.Phong.ambient_blend.Image.alt_x is free to be connected to a shader that will match input type siBooleanParameterType //INFO : Sources.Materials.DefaultLib.Scene_Material1.Phong.ambient_blend.Image.alt_y is free to be connected to a shader that will match input type siBooleanParameterType //INFO : Sources.Materials.DefaultLib.Scene_Material1.Phong.ambient_blend.Image.alt_z is free to be connected to a shader that will match input type siBooleanParameterType // ...
See Also
|
|
Autodesk Softimage v7.5