Shader.AddProperty

導入

v4.0

詳細

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

スクリプト 構文

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

戻り値

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

パラメータ

パラメータ タイプ 詳細
プリセット 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