Service packs and disconnected shaders

This post is about the latest 2011 service packs:

  • Softimage 2011 SP2
  • Softimage 2011 Subscription Advantage Pack SP1

and the “disconnected shader” issue.

How do I use the Service Pack to fix shader corruption?

The Service Pack repairs corrupted shaders, but it cannot re-connect shaders, so you will still have disconnected shaders. But the shader corruption will be removed.

To repair corrupted shaders:

  1. Open a scene or import a model.
    If a scene or model is already corrupted, you may see warnings in the history log when you open the asset. Softimage repairs the corruption while loading the asset.
  2. Save the asset to remove any corruption.
    If a scene/model is corrupted, you’ll see warnings in the history log when you save it.
    Softimage repairs the corruption while saving the asset.
  3. Load the asset again. The corruption is removed, and you can work with the scene as usual.
    Now you need to repair the disconnected render trees.
    Watch for any errors or warnings when you save the scene again.

IMPORTANT: If problems still occur when working with external material libraries, change them to be internal.

What causes the problem, and when can it happen?

  • The problem can occur anytime you do anything that requires Softimage to create a shaderdef (the internal master definition of a shader).
    For example, when you load a scene, import a model, import a mat lib, load a preset, and so on. Any action that creates a shader.
  • Shader corruption can happen in Softimage 2011 and Softimage 2011.5 (SAP) problem.
    It won’t happen in 2010 (or in 2012, 2011 SP2, or 2011.5 SAP SP1).
  • It doesn’t matter what version of Softimage was used to create the asset. The problem can happen when the asset is loaded into 2011 or 2011.5.

What does the Service Pack fix?

The Service Pack repairs corrupted shaders, but it does not re-connect shaders in render trees.

In some situations, corrupted shaders may not be repaired.

For example, if the shader definition is unknown (for example, an Arnold shader) or if the shaderdef was not persisted for the shader (can happen through the loading and saving of a scene with a corrupted shader—at some point you could have a scene that contains the shader but no shaderdef).

To remove these corrupted shaders, you can use shift-delete if delete is not working.