ShaderParamDef

Object Hierarchy | 関連する C++クラス:ShaderParamDef

継承

SIObject

ShaderParamDef

導入

v9.0 (2011)

詳細

このオブジェクトはShaderParameterの定義を表します。シェーダパラメータ定義は特別なShaderParamDefContainerオブジェクトのShaderDefオブジェクトに保存されます。このオブジェクトを使用して、既存のパラメータ定義にアクセスしたり、新しいパラメータ定義を追加したりできます。ShaderParamDefContainer オブジェクトにアクセスするには、ShaderDef.InputParamDefs または ShaderDef.OutputParamDefs を呼び出します。ShaderParamDefContainer.AddParamDef または ShaderParamDefContainer.AddArrayParamDef を一連の ShaderParamDefOptions とともに呼び出して、ShaderParamDefContainer から新しいパラメータ定義を追加できます。

インスタンス化されたシェーダ定義から特定のシェーダ パラメータ定義にアクセスするには、ShaderParamDefContainer.GetParamDefByName メソッドを使用します。インスタンス化されたシェーダ定義に対して、入力または出力パラメター定義のリスト全体を繰り返し処理するには、ShaderParamDefContainer.Definitionsプロパティを使用します。

ShaderParameterインスタンスから既存のシェーダパラメータ定義にアクセスするには、ShaderParameter.Definitionプロパティを使用します。

配列パラメータ(ShaderArrayParamDef)を追加するには、ShaderParamDefContainer.AddArrayParamDefメソッドを使用します。それ以外のパラメータタイプの場合は、ShaderParamDefContainer.AddParamDefメソッドを使用します。

注:このオブジェクトは汎用インターフェイスです。このオブジェクトには配列および構造のパラメータタイプに専用のアクセス機能が用意されています。これらの専用機能の詳細については、ShaderArrayParamDefおよびShaderStructParamDefのリファレンスページを参照してください。

メソッド

IsClassOfオペレータ IsEqualToオペレータ    
       

プロパティ

Application Attributesオペレータ Capabilitiesオペレータ Categories
DataTypeオペレータ DefaultValueオペレータ DisplayNameオペレータ FullNameオペレータ
HasDefaultValueオペレータ Help IsArrayオペレータ IsInputオペレータ
IsOutputオペレータ IsStructureオペレータ MainPortオペレータ MaxValueオペレータ
MinValueオペレータ Nameオペレータ NestedObjects Origin
OriginPath Parent SuggestedMaxValueオペレータ SuggestedMinValueオペレータ
Texturableオペレータ Typeオペレータ    
       

Python の例

# 

# This example demonstrates how to create a dynamic shader definition 

# with 2 output and 1 input parameters. It also connects the new

# shader definition in to a cube and displays it in the render tree

#

from win32com.client import constants as cns

app = Application

app.NewScene("", False)

oShaderDef = XSIFactory.CreateShaderDef("MyShaderef", "MySimpleParamDemo", 1, 3)

oShaderDef.AddShaderFamily("mrTexture")

oShaderDef.DisplayName = "Demo"

oShaderDef.Category = "Demo Items"

app.LogMessage("Shader definition name: " + oShaderDef.Name)

# OUT PARAMETER 1

# Set up shader parameter definition options to use with new parameters

oShaderParamDefOptions = XSIFactory.CreateShaderParamDefOptions()

oShaderParamDefOptions.SetAnimatable(True)

oShaderParamDefOptions.SetTexturable(True)

oShaderParamDefOptions.SetInspectable(True)

oShaderParamDefOptions.SetShortName("Output")

# Add output parameter to definition

oOutputParams = oShaderDef.OutputParamDefs

oOutputParams.AddParamDef2("result", cns.siColorParameterType, oShaderParamDefOptions)

oOutputParams.GetParamDefByName2("result").DisplayName = "Colour Output"

app.LogMessage(oOutputParams.GetParamDefByName("result").DisplayName)

# OUT PARAMETER 2

# Change existing shader parameter definition options to use with new output parameter

oShaderParamDefOptions.SetShortName("Valid?")

# Add 2nd output parameter to definition

oOutputParams.AddParamDef2("valid", cns.siBooleanParameterType, oShaderParamDefOptions)

# IN PARAMETER

# More changes to param def options

oShaderParamDefOptions.SetSoftLimit(-50, 50)

oShaderParamDefOptions.SetHardLimit(-10, 10)

oShaderParamDefOptions.SetDefaultValue(5)

oShaderParamDefOptions.SetShortName("Vexatious")

# Add input parameter (direct access)

oShaderDef.InputParamDefs.AddParamDef2("vex", cns.siScalarParameterType, oShaderParamDefOptions)

# RESULTS

# Now print info to see what we have

for oShaderOutParamDef in oShaderDef.OutputParamDefs.Definitions :

	app.LogMessage("Input parameter name: " + oShaderOutParamDef.DisplayName)

	app.LogMessage("\tClassName: " + app.ClassName(oShaderOutParamDef))

	app.LogMessage("\tType: " + str(oShaderOutParamDef.DataType))

# Connect this shader in the RenderTree and pop up the RenderTree view to see it

cube = app.ActiveSceneRoot.AddGeometry("Cube", "MeshSurface")

app.CreateShaderFromProgID("MyShaderef.MySimpleParamDemo.1.3", "Sources.Materials.DefaultLib.Scene_Material", "")

app.SIConnectShaderToCnxPoint( "Sources.Materials.DefaultLib.Scene_Material.Demo.result", 

	"Sources.Materials.DefaultLib.Scene_Material.Photon", False)

app.SelectObj(cube)

app.OpenView("Render Tree", False)

# INFO : Shader definition name: None.MySimpleParamDemo.1.3

# INFO : Input parameter name: Output

# INFO : 	ClassName: ShaderParamDef

# INFO : 	Type: 4

# INFO : Input parameter name: Valid?

# INFO : 	ClassName: ShaderParamDef

# INFO : 	Type: 1

関連項目

ShaderParamDefContainer.AddParamDef ShaderParamDefContainer.AddArrayParamDef ShaderParameter.Definition ShaderParamDefContainer Shader Parameter Definitions Shader Definition examples installed with Softimage Shader Parser examples installed with Softimage