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