v4.0
UserDataBlobまたはCustomPropertyを作成し、Shader オブジェクトに追加します。
Property Shader.AddProperty( Object in_Preset, Boolean in_Branch, String in_name ); |
oReturn = Shader.AddProperty( Preset, [BranchFlag], [Name] ); |
CustomProperty、UserDataBlob、UserDataMapまたは(使用されたプリセットによる)
パラメータ | タイプ | 説明 |
---|---|---|
Preset | String |
この引数には、Property Preset の名前またはファイル名やプリセット ファイルへの完全パスを含む文字列が格納されます。 注: シェーダには、CustomProperty Presets、UserDataBlob Presets、および UserDataMap Presets だけが有効です。 作成されるプロパティのタイプはこの引数により決定されます。たとえば、"CustomProperty" は空の CustomProperty を作成し、"UserDataBlob" は UserDataBlob を作成します。 |
BranchFlag | Boolean |
False は、唯一のサポートされる値です。 デフォルト値: false |
Name | String | 新しいプロパティの名前を表します(SIObject.Name を参照)。指定しない場合には、オブジェクトは Preset 引数に基づいて名前が付けられます。 |
/* This example demonstrates how to add CustomProperties under a Shader. */ NewScene( null,false ); var oCone = ActiveSceneRoot.AddGeometry( "Cone", "MeshSurface" ); var oMaterial = oCone.AddMaterial( "Phong" ); var oPhongShader = oMaterial.Shaders(0); var oPhongPSet = oPhongShader.AddProperty( "CustomProperty",false ,"ShaderNested" ); oPhongPSet.AddParameter3( "Bar", siInt4 ) ; var oPhongPSet = oPhongShader.AddProperty( "CustomProperty",false ,"AnotherPSet" ); var oPhongProperties = oPhongShader.Properties LogMessage( "There are " + oPhongProperties.Count + " Properties under " + oPhongShader.FullName ); for ( i = 0 ; i < oPhongProperties.Count ; i++ ) { LogMessage( oPhongProperties.Item(i).Name ) ; } // INFO : "There are 2 Properties under cone.Material.Phong" // INFO : "ShaderNested" // INFO : "AnotherPSet" |