From K-3D

Jump to: navigation, search


Material Manager Panel
Plugin Status:Experimental
Categories:All Plugins, Experimental Plugins, NGUI Plugins, Panel Plugins


Name Value
ngui:panel-label Material Manager
ngui:component-type panel


As we all know, three dimensional scenes are becoming more and more complex as we strive to go beyond today's standard in computer graphics. Scenes are being built with practically hundreds or even thousands of materials. This is why material management is a key part of any 3D Graphics application and the one provided with K-3D offers a unique way of organizing materials, not seen in any other 3D application.

[FIG: 1] The Initial Material Manager Interface. Includes the Renderman Material's group pane.

To start the Material Manager simply choose (or create) a panel, then select "Material Manager" from the combo-box. This will open in that panel, the initial material manager display (see fig 1, above).

When the panel is initialized, it creates the nodes required to generate a material render:

  • Preview Core::Aqsis Renderer
  • Preview Core::Back Light
  • Preview Core::Camera
  • Preview Core::Fill Light
  • Preview Core::Fill Light Shader
  • Preview Core::Geo::Sphere (Default Geometry)
  • Preview Core::Geo::Torus (If In Use)
  • Preview Core::Light
  • Preview Core::Light Shader
  • Preview Core::RenderManEngine

The material manager takes the view: "Only Create What I Need". This means the manager will only create nodes that are either essential or in use. For example, the torus geometry is not automatically created when the manager starts in a default document. Only when it has been selected to be used to display a material will it be created and placed in the document. When these required nodes are created, meta data is embedded into them. In the case of manager start-up, the meta data is used to ensure any existing "preview renderer nodes" are used and linked-in rather than creating new nodes.

As shown the initial display consists of a tree view, which is defaulted to select "Renderman Materials" on open and the content pane, which displays the "group view" of the "Renderman Materials" children. The group view is composed of two elements. The first element is a rendered preview image of the associated material. This image is connected to a time-based update mechanism. This mechanism is only active when the material needs to be re-rendered. For example an event such as the materials properties being displayed is valid case for a material re-render. The second element is the material's data. On the group view this data is read-only. It is sourced from the key information available on the material's profile pane (see below). It is worth noting that the "Artist's Notes" data is available in a scrolling text area. This allows the user to view the artist's notes in their entirety by simply scrolling through them.

[FIG: 2] The Material Profile Pane. Includes the sphere preview geometry with no background present.

In the tree view, selecting any one of a group's children will switch the content pane to the "material profile" mode. As the name suggests, this mode displays a profile view of the selected material (see fig 2, above). When this content pane is opened, K-3D automatically opens the material's property panel, but only if the property panel is available (panel is already assigned a place on-screen). This allows the user to have access to a full tool set when working with K-3D materials.

As shown above in Fig 2, the profile pane features a preview rendered image of the associated material, which updates using a time-based mechanism on user changes. There is a artist's toolbox where the use can alter the preview renderer's settings to suit his/her needs. A profiling data section is also shown, where the user can enter information that catalogues the material into K-3D's database. This type of data echoes through the entire K-3D application, modifying any associated data. Finally, an "Artist's Notes" text area has been provided for users to jot down any notes and/or comments they want to make for future reference. It is worth noting that each of the profiling data entries store the data when the user clicks off the entry. This sends a signal to the GUI layer, asking K-3D to store the data as meta data embedded in the document's material node. In contrast the artist's notes only stores its data when the user clicks the associated apply button. This initiates the same mechanism available to the profiling data entries. The reset button removes any unsaved changes and reverts the text area back to the material's stored meta data. All of the stored node meta data is available for reference in the section labelled "Node Property Meta Data" (on this page).

[FIG: 3] The Material Profile Pane. Includes the torus preview geometry with a background present.

Fig 3 above, shows a "material profile" content pane with an alternative set of options than those featured in Fig 2. A geometric torus has been selected to bind the material to. The preview also features a background grid, allowing material transparency to be observed by the user. Both of these options are available in the toolbox, which is embedded on the profile pane.

Node Property Meta Data

User Created Data:

Meta Tag Description Meta Data Attached To Nodes
PreviewCore::attachedgeotag Geometry used to render
a preview image of the material


Associated Material
PreviewCore::showbackground Whether or not to display
a background image in the preview


Associated Material
materialManager::material_type The material type

User Defined

Associated Material
materialManager::material_datestamp The date when the material was


User Defined

Associated Material
materialManager::material_artistname The name of the artist who created

the material

User Defined

Associated Material
materialManager::material_artistnotes The material's artist notes

User Defined

Associated Material

Nodes Created By Material Manager:

Meta Tag Description Meta Data Attached To Nodes

Name tag used to identify document nodes
that need to be created or re-used


Preview Core::Geo::Sphere
Preview Core::Geo::Cube
Preview Core::Geo::Torus
Preview Core::Aqsis Renderer
Preview Core::Camera
Preview Core::Light
Preview Core::Fill Light
Preview Core::Back Light
Preview Core::Light Shader
Preview Core::Fill Light Shader
Preview Core::RenderManEngine

Future Developer Work (Alex)

  • Materials project status. A colour tag combo box (in the material profile pane) that notifies the user if the material is in use, experimental and retired. This could be used as a button in the group view to edit a particular material.
  • Search facility. Searches for keywords based on particular elements such as artist name or the whole. Searches are shown in a seperate content pane that would be available under a special entry in the Tree View.
  • Remove the date button on material profile pane. Add mechanism to automatically update the date when a materials attribute has been modified.
  • Change the geometry loader to use geometry instances. This will be done when the quadratics have been updated to use this method.
  • Add a renderer combo box. Its contents limited to only renderers the material supports.
  • Add a Shader scripting area. A scripting gui widget needs to be implemented correctly though.
  • Allow materials to be moved between groups (excluding the compulsory ones-> Renderman Materials etc which create aliases in other groups). Groups could be created removed and serialized to file for reload later on.
  • Preview Image could have a size entry box. It remembers the size for each material. Also includes a set to default (200pxl)
Personal tools