NGUIMaterialManagerPanel
From K-3D
Description
Material Manager Panel |
Plugin Status: | Experimental |
Categories: | All Plugins, Experimental Plugins, NGUI Plugins, Panel Plugins |
Metadata
Name | Value |
---|---|
ngui:panel-label | Material Manager |
ngui:component-type | panel |
Usage
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.
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.
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 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 |
p_sphere_geo |
Associated Material |
PreviewCore::showbackground | Whether or not to display a background image in the preview |
do_show_bg |
Associated Material |
materialManager::material_type | The material type |
User Defined |
Associated Material |
materialManager::material_datestamp | The date when the material was modified |
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 |
---|---|---|---|
PreviewCore::nametag |
Name tag used to identify document nodes |
p_sphere_geo |
Preview Core::Geo::Sphere |
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)