TextureLayer

TextureLayer

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

継承

SIObject

ProjectItem

TextureLayer

導入

v4.0

詳細

TextureLayer は、シェーダおよびマテリアルの最上部にあるシェーダエフェクトのレイヤ化を簡単にするオブジェクトです。各レイヤにはその特性 (色、ミキシング モード、スケール係数など)について記述したプロパティのセットがあり、これによってそのレイヤが処理するシェーダ ポートにどのように影響を与えるかが指定されます。 コンテナの下にレイヤが表示される順序はレイヤ化が適用された順序であり、「N 色をミックス」したシェーダ ノードが動作する場合と似ています。

TextureLayerPortオブジェクトは TextureLayer が所有し、レイヤが影響を与えるシェーダポートを指定するために使用されます。ポートが存在しない場合は、レイヤはただのスタブまたはプレースホルダになるので、マテリアルのレンダリングには影響しません。

TextureLayers はMaterial.CreateTextureLayerおよびShader.CreateTextureLayerを使用して作成できます。TextureLayer は入力の処理中に「サブ」レンダツリーが接続されることがあります。これは(Parameter.ConnectFromPresetまたはParameter.Connectを使用して)複数のShaderオブジェクトをまとめて接続する場合と似ています。

メソッド

AddCustomOp AddICEAttribute AddScriptedOp AddScriptedOpFromFile
AddTextureLayerPort AnimatedParameters2 BelongsToオペレータ EvaluateAt
GetICEAttributeFromName IsA IsAnimated2 IsClassOfオペレータ
IsEqualToオペレータ IsKindOf IsLockedオペレータ IsSelectedオペレータ
LockOwners Move RemoveICEAttribute RemoveTextureLayerPort
SetAsSelectedオペレータ SetCapabilityFlagオペレータ SetLock TaggedParameters
UnSetLock      
       

プロパティ

Application BranchFlagオペレータ Capabilitiesオペレータ Categories
EvaluationID Familiesオペレータ FullNameオペレータ Help
HierarchicalEvaluationID ICEAttributes LockLevelオペレータ LockMastersオペレータ
LockTypeオペレータ Model Nameオペレータ NestedObjects
ObjectID Origin OriginPath Owners
PPGLayoutオペレータ Parametersオペレータ Parent Parent3DObject
Selectedオペレータ TextureLayerPorts Typeオペレータ  
       

JScript の例

// This example shows creation of texture layers,

// plus enumerating and removing them.

oRoot = ActiveProject.ActiveScene.Root;

oSph = oRoot.AddGeometry( "Torus", "MeshSurface" );

oMat = oSph.AddMaterial( "Phong" );

oPhong = oMat.Shaders(0);

// Add a layer at the end (since there are no others the "After"

// flag is irrelevant).

var oLayers = new Array(3);

oLayers[0] = oPhong.CreateTextureLayer( "B", true );

// Add another layer before the other one.

oLayers[1] = oPhong.CreateTextureLayer( "A", false, oLayers[0] );

// Create a third layer at the very start.

oLayers[2] = oPhong.CreateTextureLayer( "base", false );

Application.LogMessage( "Created " + oPhong.TextureLayers.count + " layers." );

for ( i = 0; i < oPhong.TextureLayers.count; i++ )

{

	oLayer = oPhong.TextureLayers(i);

	Application.LogMessage( (i+1) + ": " + oLayer );

}

oPhong.RemoveTextureLayer( oLayers[1] );

oPhong.RemoveTextureLayer( oPhong.fullname + "." + oLayers[2].name );

count = oPhong.TextureLayers.count;

Application.LogMessage( "Only " + count + " remain(s) after removal." );

for ( i = 0; i < count; i++ )

{

	Application.LogMessage( (i+1) + ": " + oPhong.TextureLayers.item(i) );

}

// This example should log something like:

//INFO : "Created 3 layers."

//INFO : "1: torus.Material.Phong.base"

//INFO : "2: torus.Material.Phong.A"

//INFO : "3: torus.Material.Phong.B"

//INFO : "Only 1 remain(s) after removal."

//INFO : "1: torus.Material.Phong.B"

関連項目

Shader.TextureLayers Shader.CreateTextureLayer Material.TextureLayers Material.CreateTextureLayer AddTextureLayer