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" |