Object Hierarchy | 関連する C++クラス:TextureLayerPort
TextureLayerPort
v4.0
TextureLayerPort は、どのシェーダおよびマテリアルパラメータが TextureLayer に影響を与えるかを記述するために使用するオブジェクトです。シェーダの接続と同じように、レイヤによって処理されるシェーダポートがどれかを示します。
ポートにはいくつかのプロパティがあり、レイヤが 1 つのシェーディングパラメータにどのように影響するかがわかります。一般にこれらは、たとえば全体的なエフェクトを反転したり倍率を変更したりして、レイヤの設定をポートに合った方法に変更するために使用されます。レイヤをセットアップする目的は、すぐ下にあるレイヤと 50% の割合でカラーをブレンドすることです。ただし、レイヤのアンビエントポートエフェクトは 25% だけですが、ディフューズポート処理では 100% に設定できます。
/*
This example shows creation of texture layer ports,
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.
oLayer = oPhong.CreateTextureLayer( "DirtLayer" );
// Add some texture layer port connections on this layer.
oPorts = new Array(3);
oPorts[0] = oLayer.AddTextureLayerPort( oPhong.parameters( "ambient" ) );
oPorts[1] = oLayer.AddTextureLayerPort( oPhong.parameters( "diffuse" ) );
oPorts[2] = oLayer.AddTextureLayerPort( oPhong.parameters( "specular" ) );
Application.LogMessage( "Created " + oLayer.TextureLayerPorts.count + " ports." );
for ( i = 0; i < oLayer.TextureLayerPorts.count; i++ )
{
oPort = oLayer.TextureLayerPorts(i);
Application.LogMessage( (i+1) + ": " + oPort );
}
oLayer.RemoveTextureLayerPort( oPorts[1] );
oLayer.RemoveTextureLayerPort( oLayer.fullname + "." + oPorts[2].name );
count = oLayer.TextureLayerPorts.count;
Application.LogMessage( "Only " + count + " remain(s) after removal." );
for ( i = 0; i < count; i++ )
{
Application.LogMessage( (i+1) + ": " + oLayer.TextureLayerPorts.item(i) );
}
// This example should log something like:
//INFO : "Created 3 ports."
//INFO : "1: torus.Material.Phong.DirtLayer.ambient"
//INFO : "2: torus.Material.Phong.DirtLayer.diffuse"
//INFO : "3: torus.Material.Phong.DirtLayer.specular"
//INFO : "Only 1 remain(s) after removal."
//INFO : "1: torus.Material.Phong.DirtLayer.ambient" |