ShaderStructParamDef

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

継承

SIObject

ShaderParamDef

ShaderStructParamDef

導入

v9.0 (2011)

詳細

このオブジェクトはShaderParamDefオブジェクト専用です。このシェーダ定義に含まれるサブエレメント(ShaderStructParamDef.SubParamDefs。サブパラメータ定義のリストをShaderParamDefContainerに戻す)にアクセスできます。

ShaderStructParamDef オブジェクトを作成するには、siShaderDataTypeStructureシェーダパラメータタイプをShaderParamDefContainer.AddParamDefまたはShaderParamDefContainer.AddArrayParamDefの呼び出し時に指定します。

メソッド

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

プロパティ

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

VBScript の例

' 

' This example demonstrates how to create a dynamic shader definition 

' with an input struct parameter and then populate it with some

' sub parameters.

'

set app = Application

set oShaderDef = XSIFactory.CreateShaderDef("MyParser", "MyStructDemo", 1, 0)

oShaderDef.AddShaderFamily "mrTexture"

app.LogMessage "Shader definition name: " & oShaderDef.Name

' Set up shader parameter definition options to use with new input parameter

set oShaderInParamDefOptions = XSIFactory.CreateShaderParamDefOptions()

oShaderInParamDefOptions.SetAnimatable False

oShaderInParamDefOptions.SetTexturable True

oShaderInParamDefOptions.SetInspectable True

oShaderInParamDefOptions.SetShortName "Main Struct"

' Add input parameter to definition

set oInputParams = oShaderDef.InputParamDefs

oInputParams.AddParamDef "main", siShaderDataTypeStructure, oShaderInParamDefOptions

' Now print info to see what we have

for each oShaderInParamDef in oShaderDef.InputParamDefs.Definitions 

	app.LogMessage "Input parameter name: " & oShaderInParamDef.DisplayName

	app.LogMessage vbTab & "ClassName: " & app.ClassName(oShaderInParamDef)

	app.LogMessage vbTab & "DataType: " & oShaderInParamDef.DataType

	if oShaderInParamDef.DataType =  siShaderDataTypeStructure then

		set oSubContainer = oShaderInParamDef.SubParamDefs

		oShaderInParamDefOptions.SetShortName "SubColor 1"

		oSubContainer.AddParamDef "sub1", siShaderDataTypeColor4, oShaderInParamDefOptions

		oShaderInParamDefOptions.SetShortName "SubColor 2"

		oSubContainer.AddParamDef "sub2", siShaderDataTypeString, oShaderInParamDefOptions

		oShaderInParamDefOptions.SetShortName "SubColor 3"

		oSubContainer.AddParamDef "sub3", siShaderDataTypeGradient, oShaderInParamDefOptions

		app.LogMessage vbTab & "Number of sub parameter definitions: " & oShaderInParamDef.SubParamDefs.Definitions.Count

		for each oSubParamDef in oShaderInParamDef.SubParamDefs.Definitions

			app.LogMessage vbTab & "Sub parameter name: " & oSubParamDef.DisplayName

			app.LogMessage vbTab & vbTab & "ClassName: " & app.ClassName(oSubParamDef)

			app.LogMessage vbTab & vbTab & "DataType: " & oSubParamDef.DataType

		next

	end if

next

' Expected result:

' INFO : Shader definition name: MyParser.MyStructDemo.1.0

' INFO : Input parameter name: Main Struct

' INFO : 	ClassName: ShaderStructParamDef

' INFO : 	DataType: 64

' INFO : 	Number of sub parameter definitions: 3

' INFO : 	Sub parameter name: SubColor 1

' INFO : 		ClassName: ShaderStructParamDef

' INFO : 		DataType: 10

' INFO : 	Sub parameter name: SubColor 2

' INFO : 		ClassName: ShaderParamDef

' INFO : 		DataType: 11

' INFO : 	Sub parameter name: SubColor 3

' INFO : 		ClassName: ShaderStructParamDef

' INFO : 		DataType: 18

関連項目

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