ApplyShader

導入

v1.0

カテゴリ

shader

詳細

シェーダを作成し、作成したシェーダをオブジェクト、グループ、レイヤ、パーティション、またはクラスタのマテリアル プロパティに接続します。 オブジェクトがマテリアル プロパティを所有しておらず、継承している場合には、マテリアル プロパティが作成されてオブジェクトに追加されます。 3D オブジェクトの場合は、マテリアルをローカルに追加するか、PropagationType 引数を使用してブランチに追加するかを設定できます。デフォルトではローカルに追加されます。 グループ、レイヤ、パーティション、およびクラスタでは、ローカル プロパティとブランチ プロパティのどちらもサポートされていません。 クラスタ上のマテリアルは常にローカルに追加され、グループ、レイヤ、およびパーティションの場合、マテリアルは常にブランチ モードで追加されます。

注: ローカル マテリアル プロパティまたはブランチ マテリアル プロパティのどちらかをすでに持っているオブジェクトで ApplyShader コマンドを使用した場合、既存のマテリアル プロパティは削除され、代わりに新しいマテリアル プロパティが作成される点に留意してください。

スクリプト構文

ApplyShader( [PresetObj], [InputObjs], [Name], [PropagationType], [ActionWhenLocalMaterialsOverlap] );

パラメータ

パラメータ タイプ 詳細
PresetObj 文字列またはプリセット オブジェクト(SIGetPreset から取得されたオブジェクトなど) 接続するシェーダを表すシェーダ プリセットの 1 つ。

警告: 一部のオブジェクトではデフォルト値("Phong")が機能しません。 たとえば、ターゲット オブジェクトがライトである場合、Phong はライトに適用されないため、プリセットを指定する必要があります。

デフォルト値:"Phong" (Phongシェーダ)

InputObjs 文字列 シェーダの接続先オブジェクトのリスト

デフォルト値: 現在選択されている値

Name 文字列 シェーダ名

デフォルト値:デフォルトのシェーダ名

PropagationType siBranchFlag シェーダ、ノード、またはブランチのプロパゲーション タイプ

デフォルト値: siUnspecified

ActionWhenLocalMaterialsOverlap siActionWhenLocalMaterialsOverlap 他のクラスタとオーバーラップするクラスタにマテリアルが適用された場合の動作

デフォルト値:siPromptUser(ユーザ設定がされていない場合)

VBScript の例

'
' This example demonstrates how to apply different kinds of shaders
' to scene objects. It also shows how you can set individual values
' on your shader material once it is applied.
'
NewScene , false
' Get the default pass
Set oDefPass = GetValue( "Passes.Default_Pass" )
' Create a sphere and apply a default shader to it (since the
' sphere is already selected we don't need to specify it as 
' an input object)
Set oSphere = CreatePrim( "Sphere", "MeshSurface" )
ApplyShader
' Tweak the color values on the sphere's material using the Shader
' parameter shortcuts "diffuse" and "ambient"
Set oPhong = oSphere.Material.Shaders( "Phong" )
oPhong.diffuse.Parameters( "red" ).Value = 0.9
oPhong.diffuse.Parameters( "green" ).Value = 0.5
oPhong.ambient.Parameters( "green" ).Value = 0.7
' View the results in a rendered frame. (You can see the sphere
' has a magenta color)
RenderPasses oDefPass, 1, 1
' Create a default light and apply a preset shader to it
Set oLight = GetPrimLight()
Translate oLight, 8, 3.0, 3, siAbsolute, siView, siObj, siXYZ
ApplyShader "Light\Fast_light_effects", oLight
' View the results in a rendered frame. (You can see the sphere
' now has the default texture wrapped around it)
RenderPasses oDefPass, 1, 1
' Create a cube
Set oCube = CreatePrim( "Cube", "MeshSurface" )
Scale oCube, 0.3, 0.3, 0.3, siAbsolute, siParent, siObj, siXYZ
Translate oCube, 3.5, -2.5, 4, siAbsolute, siView, siObj, siXYZ
' Add the cube to a new layer 
CreateLayer , "CubeLayer", oCube, oLayer
' Apply a shader to the layer and tweak its values
ApplyShader "Illumination\Blinn_shading", oLayer
Set oBlinn = oLayer.Material.Shaders( "Blinn_shading" )
oBlinn.ambient.Parameters( "green").Value = 0.9
' View the results in a rendered frame. (Now there is a small
' cube next to the sphere and on its top the sphere's texture 
' is reflected)
RenderPasses oDefPass, 1, 1

関連項目

AddObjectsToShader RemoveObjectsFromShader RemoveShaderFromCnxPoint RemoveAllShadersFromCnxPoint SIConnectShaderToCnxPoint ReplaceShaderWithPreset ReplaceShaderWithProgID