Shaderballs give you a quick preview of a material or shader using standard lighting and geometry. They update automatically as you change settings. You should note that shaderballs do not perform alpha-blending.
Shaderballs are displayed in several views, including:
The material manager. See The Material Manager.
The render tree. See Shaderballs in the Render Tree.
The shaderball view. See The Shaderball Viewer.
There are two basic kinds of shaderball:
Spatial shaderballs are useful for showing how the shading is affected by the position in space, the incidence of light, and so on.
Parametric shaderballs are useful for seeing shading information that depends only on the UV parametrization, such as for images, 2D gradients, and 2D procedural textures.
Softimage provides a three default shaderballs: an apple for surface materials, a cloud for volumic materials, and a grid for 2D parametric materials. You also have the option of creating your own custom shaderballs.
In the render tree, you can display shaderballs directly on nodes, or open them up in the shaderball viewer (see The Shaderball Viewer). In addition to showing the result of the entire tree, you can show the result of any subtree. You can also show the result of a specific output port on a multi-output shader node.
By default, shaderballs are initially displayed on nodes depending on the settings in their SPDL files. So in some cases, you will have to activate them explicitly for individual nodes using the right-click context menu, or for multiple nodes using the Show menu.
The default values are those set in your preferences for spatial and parametric shaderballs. See Shaderball Preferences [Preference Reference].
Multi-output shader nodes calculate data that can be extracted to multiple output channels, and each channel can be used separately elsewhere in the render tree. You can show the result of any available output port in the shaderball, even if it is not the actual output port that is connected and being evaluated in the render tree.
Right-click on the shaderball of a multi-output node and choose Shaderball Render Output [select from available outputs].
Render tree example: An Render Tree Usage shader outputs only the RGB color channels from its rgb port: this is the final result that gets rendered and displayed in the material node's shaderball. However, the shaderball for the RGBA Split shader is set to show the result of its alpha port instead. (The shaderball's background was also set to None to better display the model).
The Default Output option renders the shaderball using the port defined in the node's SPDL file as the "main output" port. In many cases, no one particular output port represents an obvious default, and this option is simply ignored. If it is not clear to you which port is associated to the Default Output by just looking at the result, then make sure to select one of the named output ports that you want the shaderball to render.
The shaderball viewer is a floating window that can display shaderballs at various sizes.
A |
Options menu |
B |
Preset sizes. You can also drag the window border to any size you want. |
C |
Auto-refresh. When off, press F5 to refresh manually. |
Move the mouse pointer over the node's title bar, and click the v (view) icon that appears above the node.
You can get other options by clicking on the options icon menu.
The values for Model Default Model and Default Background are those set in your preferences for spatial and parametric shaderballs. See Shaderball Preferences [Preference Reference].
You can set the default model and background for each type of shaderball, the renderer to use, and the quality of the shaderball result in your Shaderball Preferences (choose File Preferences Shaderball).
You can create and use your own shaderballs. Shaderballs are models (*.emdl files) stored in the appropriate subfolder of the /Application/Shaderballs directory of your Softimage installation.
To create a model to use as a shaderball, follow these guidelines:
Any properties on the model should be local, because it acts as the scene root for property inheritance. Non-local properties on objects in the model will be inherited from the model node. This includes geometry approximation, visibility, materials, and so on.
The objects on which the material will be previewed should have a local material with no shader connections on it. Connections will be made automatically by the shaderball engine, depending on the type of shader to be previewed. Only shaders that connect to the surface port are supported.
The shaderball model should include any lights necessary for illuminating the shaderball and background. The shaderball engine does not support any other form of illumination such as global illumination, final gathering, or ambience.
All objects in shaderball models should contain one and only one set of texture UV coordinates defined from [0, 1] in both the U and V axes. The UV coordinates should allow an ordinary image file to be seen clearly — that seamless texture you just painted won't look good with unique UVs!
For maximum flexibility, the shaderball model should have a vertex color property encoding the tangent information (Get Property Tangent from the Render toolbar). This allows XSINormalMap, Vertex_rgba, and Map_lookup_color shaders to display a preview.
A shaderball model should be centered on the origin (0, 0, 0) and the length of its widest axis should not exceed 8 units.
Parametric shaderballs are useful for seeing shading information that depends only on the UV parametrization, such as for images, 2D gradients, and 2D procedural textures.
For parametric models, the camera is orthographic and positioned roughly at (0, 8, 0) with the interest at (0, 0, 0). The FOV is 8 units at the position of the interest. Make sure to position your model appropriately.
Spatial models are useful when a three-dimensional object is needed to better demonstrate the results of a shader's output. It should have a surface that demonstrates the three-dimensionality of the model as much as possible in order to better see the effects of the shading.
Spatial models use a perspective camera positioned roughly at (5.3, 5.8, 4.5) with the interest at (-0.2, 0.65, -0.35) and the FOV is 53.6 degrees horizontally. Make sure to position your model appropriately.
Background models provide the geometry that is refracted, reflected, and shadowed by the main shader ball model.
A background model should enclose the shaderball geometry completely. Since the camera is most likely outside the background model, the background model's geometry should have its normals face inwards (towards the shaderball model). Geometry: Visible Face should be set to Front Face Only on the Rendering tab of its Visibility property editor.
The background model for a spatial shaderball should be centered on (0, 0, 0) and its inner diameter should be at least 12 units.
Background models should not contain any lights. All illumination for the shaderball and background is provided by the shaderball model.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License