v7.0
シェーダの接続を解除した後に指定のシェーダ リストを削除し、指定されたコンテナのイメージ クリップを適切にネスト解除します。 このコマンドはDisconnectAndDeleteShadersコマンドに似ていますが、接続解除されたクリップがクリーンアップされる点が異なります(v7.0では、接続解除されたノードが自動的に消えることはありません)。
注: イメージクリップはシーンから削除されず、Render Treeから削除されるだけです。
DisconnectAndDeleteOrUnnestShaders( Shaders, Containers ); |
パラメータ | タイプ | 説明 |
---|---|---|
Shaders | 文字列 | 削除するシェーダのリスト。 シェーダが削除される前にすべてのシェーダが確実に接続解除されます。レンダ ツリーのサブツリー全体を削除せずに目的のノードのみを削除する場合は重要です。 |
Containers | 文字列 | イメージ クリップをネスト解除するシェーダ コンテナのリスト。 |
# # This example demonstrates how to use the DisconnectAndDeleteOrUnnestShaders # command by creating two shaders in a simple render tree, and deleting the # phong without deleting the attached fractal. # null = None true = 1 false = 0 app = Application app.NewScene( "", 0 ) # Build our shaders (a Phong and a Fractal) oSph = app.CreatePrim( "Sphere", "MeshSurface" ) oPhong = app.SIApplyShader( "Phong", oSph ) oFractal = app.BlendInPresets( "Fractal", None, None, true, siReplaceNoBlend, false, false, true ) # Now display the render tree. A message box appears so that you can see the # contents of the render tree before deleting one of the shaders. When you are # ready to proceed, click OK... app.OpenView( "Render Tree" ) lResponse = XSIUIToolkit.MsgBox( "When you are ready to proceed, click OK. " + "The message box will close and the DisconnectAndDeleteShaders command " + "will remove the shader node only.", siMsgOkCancel + siMsgInformation, "DisconnectAndDeleteShaders Demo" ) if ( lResponse == siMsgOk ) : app.DisconnectAndDeleteShaders( oPhong ) else : app.LogMessage( "You opted not to complete the demonstration." ) |