Shader.AddProperty

Shader.AddProperty

導入

v4.0

詳細

UserDataBlobまたはCustomPropertyを作成し、Shader オブジェクトに追加します。

C#構文

Property Shader.AddProperty( Object in_Preset, Boolean in_Branch, String in_name );

スクリプト構文

oReturn = Shader.AddProperty( Preset, [BranchFlag], [Name] );

戻り値

CustomPropertyUserDataBlobUserDataMapまたは(使用されたプリセットによる)

パラメータ

パラメータ タイプ 説明
Preset String この引数には、Property Preset の名前またはファイル名やプリセット ファイルへの完全パスを含む文字列が格納されます。

注: シェーダには、CustomProperty PresetsUserDataBlob Presets、および UserDataMap Presets だけが有効です。

作成されるプロパティのタイプはこの引数により決定されます。たとえば、"CustomProperty" は空の CustomProperty を作成し、"UserDataBlob" は UserDataBlob を作成します。
BranchFlag Boolean False は、唯一のサポートされる値です。

デフォルト値: false

Name String 新しいプロパティの名前を表します(SIObject.Name を参照)。指定しない場合には、オブジェクトは Preset 引数に基づいて名前が付けられます。

JScript の例

/*

	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"

関連項目

SceneItem.AddProperty Shader.Properties