XSI 6’s Material Manager Up-Close!

December 9th, 2006 by Luc-Eric - Viewed 5410 times - Popularity: 8%




XSI 4.0 introduced Material Libraries.

Material Libraries are not the list of material presets that Softimage ships with the software. We call those Presets, and they are presently organized them into Shelves of type “Toolbar”. (A shelf in XSI can contain a toolbar, a browser, or a Driven Shelf.)

Rather, Material Libraries are method for users to organize their own materials so they can reuse them, and maintain them centrally. The first clients for this are in games, which is a very large segment of Softimage users. In games, the material can be thought as an asset on its own that is distinct from the 3D objects. How many materials there are and how they are built has a significant impact, and the artist usually works with a defined set of guidelines. This can be also true in other segments, but due to performance constraints, it has been critical in games to reuse and share materials as much as possible. Materials could also need to be updated after the assets are have already begun using them.

Starting in XSI 4, when you applied a material to an object or a cluster, the material was first added as a source in the material library, and then added to the object as a secondary owner. This allows one to have access to all the materials used in the scene from the library. It also means that a material could now exist in scene without having been applied to an object or a group.

An XSI scene can use many material libraries, and the libraries can be “Referenced Libraries” which means that they are saved outside the scene, in a dotXSI file, and then modified externally without loading the scene. In that case they are also locked, which prevents the user from modifying these referenced materials.

In XSI 4.2 we introduced a relational view Material Editor. This view was created in collaboration with a large console game client in Japan, who eventually went on to develop an even more powerful, and a little hairy (imho!), version customized to their needs.

This view really tries to “fake Shader Balls”, and there are some limitation with that you can do with relational view and VBScript, so the Material Editor view is usable, but clumsy and slow, and we did not actively promote this view… In XSI 6.0 this view has moved to the SDK samples. It has actually benifited a lot “for free” from the changes we made to the Driven Shelves, as all similar custom views will.

But now in XSI 6 we have the slick new Material Manager.

The first thing the Material Manager does is show the materials in the scene organized by libraries. In order to get this off the ground, we added Shader Balls to XSI, and gave a big boost to the views we called “Driven Shelves“. These shelves, available since at least XSI 4.0, are views that show a list of icons for a given list of objects in the scene. They are called “driven” because a script must drive their content, so they are only found in Relational Views like the old Material Editor and the examples in the XSI SDK for this feature.

In XSI 6.0 the Driven Shelves have been extended to automatically show a shader ball for objects that support them, and checkmarks and lock icon to indicate used, shared, and locked materials. If the object has no user thumbnail assigned or a shader ball, the shelf now uses the same icon as Scene Explorer and the overall look has been enhanced.

Object on a driven shelf now have the context menu from the Scene Explorer, drag and drop for multiple objects is now supported, and the selection workflow has been enhanced to be more like the views in Windows’ explorer, including being able to type-in the first few letters of an object to select, and being able to rectangle select in empty areas. A “list view” display mode has also been added, which shows the label to the left of the icon instead of underneath it.

In the screenshot for this article, you can see a shelf at the top with the material, and one at the bottom, in the new List View mode, which displays where this material is used in the scene.

The shelves in the Material Manager also have quick filter similar to iTunes, which allows you to type in a string and it filters the content of the shelf as you type. This is a great way to quickly isolate materials or image clips by name, and you don’t have to use wildcards, although they are also supported.

The Material Manager was designed using large scenes, which were provided by game console clients, and we also looked at the custom solutions that the clients had created on their own using the Relational View services to see what were the problems they were trying to solve. We also had a lot of feedback during development.

I worked on this project personally, looking to create an elegant and simple UI design, while giving access to all the power that was required, by expressing the problem through a set of simple verbs. Basically, it’s about finding information quickly and making sense of a lot of data.

The view works from left-to-right, top-to-bottom. (should this be the reverse for our asian client? :-D )

In the left pane, you have access to a Selection Explorer that shows you what you have selected in the scene, and what material it has. We have added a new filter in the Scene Explorer that shows only objects, polygon clusters and their material, so you can quickly see materials at-a-glance without all the other nodes being in the way. With a click, or a drag and drop, you can assign a new material to part, or all, of that selection. You will select objects in the 3D viewports or any other means that seems appropriate.

The Selection Explorer can show “Local Materials” or “Inherited Materials”. These filters are also available in the full Scene Explorer.

The left pane also has the Image Clip Shelf, with thumbnails, can show All Image Clips, or only the ones that are Used, or Unused Image Clips in the scene. Those filters can be used to quickly find and delete all unused image clips.

The Image Clip Shelf is useful on its own but also can be used to drag-and-drop into to the Render Tree, or even the Image Clip viewer. The image clip shelf also features thumbnail size settings, list view mode, and again the iTunes-like filter to quickly find what you need.

You can quickly create a batch of image clips by drag and dropping images onto that shelf, or right into the 3D viewports. (In previous versions, drag and dropping images into the viewport only created image sources, which would require another step to create an image clip.) The Image Clip shelf will immediately show thumbnails for those new images.

At the top of the right side is the Material Shelf, which can show either “All Materials”, “Used Materials”, “Unused Materials” or show only the libraries and materials that are highlighted, for example by using the Highlight From Selection button, or when you select an object from the Scene Explorer.

You can drag and drop shader balls to move materials between libraries. Select one material and use the Render Tree or Texture Layer Editor below to edit the material. There are buttons to duplicate, delete, highlight from selection, assign to selection, and launch an eyedropper tool in the viewport that can be used to highlight cluster materials on a selected model by moving the mouse on top of them.

Select one or many Materials in the shelf and the Image Clip tab will show all the clips used, and the “Who Uses” tab shows all the objects that use this or these materials. The Who Uses tab understands groups, passes and partitions and will show them as the correct users and not, for example, all the objects inside that group. It’s immediately obvious why driven shelves need to use the same font and icons as the Scene Explorer, and we hope in the future to have more graphical query tools like this.

If you click an object in either of these two tabs, it is selected in the scene so you could delete or group them, for example.

I have no doubt that, in time, users will find all the cool workflow tricks that this view is capable of. As scenes are getting bigger and more complex, we are working at creating cool & slick new tools to get to your data faster without having to call on the local scripting guru for a custom solution. The Material Manager is only the first step.

Enjoy,
Luc-Eric
Senior Principal Engineer/Team Lead
Softimage User Interface

8 Responses to “XSI 6’s Material Manager Up-Close!”

  1. Steven Caron Says:

    Thanks for sharing!

    can”t wait to use it in production :)

  2. Heath Aiken Says:

    Yes, thanks for describing the new features / work flow. I”ve always been a little frustrated with material management in XSI, but never able to articulate my issues. It looks like your new changes are going to have a huge positive impact on productivity!

  3. Dan Yargici Says:

    Quote:
    “In previous versions, drag and dropping images into the viewport only created image sources, which would require another step to create an image clip.”

    Yes! drives me up the wall! thank you for changing this Luc-Eric!

    I have to say, I”m very excited about this release, it looks really polished…

  4. Jason Dexter Says:

    Looking forward to it… one of the many things to look forward to in this release.

  5. Marc-Andre Says:

    Just plain awesome! Thank you Softimage and Luc-Eric for that new tool!

  6. fuji Says:

    Great info, i hope there”ll be more detail on XSI 6. I am very excited.

    BTW, for Chinese and Japanese, when the text are written horizontal we read it just like westerners do, from left to right. But when it is written vertically then it is the reverse. You can clearly see this on Japanese and Chinese websites, they are formated just as their westerner counterparts (nav. toolbar on the left side) since they are written horizontally. Books were traditionally have text written vertically that’’s why it is read right to left and until now they kept that format since it has become a habit. In any case, your UI design reads correctly even in these part of the world. Although I am not sure for Arabic speaking countries though. ;D

    Thanks again.

  7. Tim Says:

    I will be really happy if I could see shaders library also integrated in material manager!

  8. Malcolm Says:

    Hi Luc-Eric!
    I´m writing a script to change materials from selected materials from material manager (via selecting shaderbals).
    but, xsi don´t log any selection.
    i want to get materials visually, from materials manager.

    how to get selection from shaderballs via script (jscript)?

    thanks in advance!

Leave a Reply