v1.0
shader
指定のシェーダの接続ポイントから、すべてのシェーダを接続解除します。接続しているシェーダに関する情報のほか、実際にシェーダが接続していたかどうかは表示されません。
2 番目の引数により、接続解除するシェーダのタイプを指定できます。
注: 以前に接続を解除して使用されなくなったシェーダは自動的に削除されます。
RemoveAllShadersFromCnxPoint( [InputObjs], [Type] ); |
| パラメータ | タイプ | 詳細 |
|---|---|---|
| InputObjs | 文字列 | 接続ポイントのリスト。
デフォルト値: 現在選択されている値 |
| タイプ | siShaderCnxPointType | 接続解除する接続ポイントのタイプ
デフォルト値: siShaderCnxPointAll |
'
' This example demonstrates how to disconnect shaders on a scene object. It
' also shows how you can find out whether the object's material is connected
' to a shader or a texture.
'
sPath = XSIUtils.BuildPath( _
Application.InstallationPath( siFactoryPath ), _
"Data", "XSI_SAMPLES", "Scenes", "Rendering", _
"Rendertree_Displacement_Cell.scn" _
)
OpenScene sPath, False
' Select the grid and get a pointer to it
SelectObj "grid"
Set oGrid = Selection(0)
' Output at this point (before removing the shaders):
' INFO : --------------------------------------------
' INFO : Found a shader on Surface
' INFO : Found a texture on Displacement
' INFO : Found a shader on Shadow
' INFO : Found a shader on Photon
displayDetails oGrid
' Disconnect the shaders, if any, connected to the grid material Volume,
' Displacement and Photon connection points. (Note that specifying the
' Volume parameter is redundant in this case since it is not connected)
Set oCnxPoints = CreateObject( "XSI.Collection" )
oCnxPoints.Add oGrid.Material.Parameters( "volume" )
oCnxPoints.Add oGrid.Material.Parameters( "displacement" )
oCnxPoints.Add oGrid.Material.Parameters( "photon" )
RemoveAllShadersFromCnxPoint oCnxPoints, siShaderCnxPointAll
' Output at this point (notice that we only disconnected the shaders on the
' Displacement and Photon points so we still have shaders on Surface and
' Shadow):
' INFO : --------------------------------------------
' INFO : Found a shader on Surface
' INFO : Found a shader on Shadow
displayDetails oGrid
' ----------------------------------------------------------------------
function displayDetails( in_obj )
Application.LogMessage "--------------------------------------------"
' Look for each parameter that is connected to a shader and print its name
For Each p In in_obj.Material.Parameters
If TypeName( p.Source ) = "Shader" Then
Application.LogMessage "Found a shader on " & p.Name
ElseIf TypeName( p.Source ) = "Texture" Then
Application.LogMessage "Found a texture on " & p.Name
End If
Next
end function
|