From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Named Layer System

I am working on a layer labeling system or one might call it a "layer management" system for Blender that many feel has been long overdue.

Current Features

New named layers features list to date:

  • Named scene layers are now accessible from the 3d window header under the new label “Layers”.


Header shot.jpg


Note: When you go to the submenu “Scene Layers” all 20 layers are labeled “layer 1, layer 2, layer 3” etc. If you actually name or label a particular layer the particular layer slot will change from “layer number…” to the name you’ve assigned that particular layer. If you later erase the name in the UI, that particular slot in the 3d header UI will go back to being labeled “layer number… ” (This also applies to the Select All by Layer option in the 3d header UI). This particular feature replaces the old layer buttons in the 3D header and is also accessible in all modes (Pose Mode, Object Mode, and Edit Mode) which is presently impossible in 2.45 thus a new feature. At first it was planned that only “occupied layer” would be accessed from the “Layers” menu in the 3d header but in order to facilitate a better and faster workflow it was decided that all 20 be accessed in this particular feature of the layer system.


  • Layers in the Scene Layers UI can be switched from layer to layer even in Edit Mode.


  • In the Scene Layers UI, you’ll notice a little tan button on the right of each label entry.

Layers interface.jpg

These buttons toggle each individual layer if so desired into wireframe draw mode. This feature was coded for animators that need quicker playback when dealing with complex scenes.


  • In the Scene Layers UI as well as in the Bone Layers UI, you’ll notice you can move objects and bones from layer to layer by selecting them using the numbered buttons labeled under the “Move Object to Layer #” or “Move Bones to Bone Layer #” UI.


Interface2.jpg Interface4.jpg


  • In the Bone Layers UI, There’s a “sign” or label indicating which Scene Layer you are presently working in. It’s updated every time a different Scene Layer is accessed. Working with bone layers can be confusing when dealing with the Scene Layers and Bone Layers together because of the differences of how each layer system works. This simple feature was coded to “ease the pain a little” as it were.


  • . The Draw UI that used to be in the constraint panel was moved to the Scene Layer UI to facilitate better workflow and access. It also lends to the Scene Layers UI it’s particular strengths.


  • You can access the Move to Layer, Switch Armature Layers, Move Bone to Layer, Show/Hide Bones, Show / Hide Objects, and Select All by Layer, options in the new “Layers” menu in the 3D header as well as they were removed from their resident panels (again to facilitate a better workflow environment).


Interface menu.jpg


  • A new option has been coded for those who like the old layer buttons in the 3D header.If you look in the “Layers” menu in the 3D header, you will see an option called “scene layer buttons”. Select it, and layer buttons will appear in the 3D window. It’s even collapsable and can be moved around so as to not clutter the 3D space.
  • Update 11/28/07:

Now bones layer buttons can be accessed in the 3D window as well.Yet another new feature is that the layer names of the scene layers and bone layers can be accessed the same way tooltips can be accessed with Blender buttons.

3dwindow shot.jpg 3dwindow shot2.jpg


The latest builds can be downloaded at graphicall.org and the latest patch can be downloaded at the patch tracker. At this stage,I feel that the system has reached project level 1.0

Concerns

Blender's panels need to be upgraded so that more UI can be accessed.It's been noticed by myself that longer panels (which are needed if Blender features are going to be continually expanded and popups kept to a minimum) work great if the UI is vertical but if the user's desktop configuration is set to the default horizontal,longer panels are inefficient which is the issue I'm dealing with now and if in the future I give Blender capability for more layers than it presently has and still maintain an "at a glance" UI (Of course when dynamic allocation of layers are introduced, the UI will become more streamlined).

This is the issue I'm dealing with now.If Blender's layer capacity was extended to 40,60, 80 or more layers,to maintain an "at a a glance" view, I would have to add more layer set panels instead of being able to scroll down or up to access the layer names and buttons.The only other option I can think of is to give layers it's own "space" much like the outliner.

I might wait to give Blender more layers until a UI recode (which I hear maybe in the works) is completed to see if anything changes.If not,I'll give layers it's own "space" so as to maintain an "at a glance" view of the layer names and to expand the number of layers Blender has.

12/22/07 One option could be to make the system accessable via the outliner having a toggle button to toggle between outliner view and layer view to maintain an "at a glance" view of all the layers and their names.

12/22/07 Another option to be worked on is an indicator to indicate which layers are renderable at a given time.This would prevent waiting all night for frames to render and realize that you have to do it all over because a particular layer didn't render.

Future Work

  • Consolidating the Named Layers UI to facilitate an even faster workflow and streamlining it's interface.
  • Maybe toggling the old layer buttons to appear and disappear in the 3D header UI for those that liked using them depending on feedback.(Completed 11/7/07)
  • Dynamic allocation of layers
  • Expanding the number of layers that Blender has.Work has started 12/17/07


  • OBJECTIVES:

Add more than 20 layers(256 conservative,1000 considered infinite)

The code has to be modular (not spread throughout the sources(very messy code))

The code has to be easy to update and change.

Since it is graphics code, speed issues must be taken into consideration as regards to layer screen updates and rendering issues.

  • RECODE FEATURES:

Add,delete,name,and select layers

Visibility,invisibility,wireframe toggles

An indicator to indicate which layers are being rendered at rendertime

If Blender has more layers and groups are getting more powerful, bone layers may not be needed anymore since each character can have it's own bone layer in the new scene layer structure.

Actually, each character should be able to have it's own sets of layers:

Example:

CHARACTER1

 BONES
   Layer
   Layer....
     MESH 
       Layer
       Layer....  
           RIG
              Layer
               Layer....

CHARACTER2

 BONES
   Layer
   Layer....
     MESH 
       Layer
       Layer....  
           RIG
              Layer
               Layer....


  • Some good UI mockups:

Layer manager.jpg


Layersmenu.jpg