Page MenuHome

Collections and groups unification
ClosedPublic

Authored by Brecht Van Lommel (brecht) on May 16 2018, 12:17 PM.

Details

Summary

OVERVIEW

  • In 2.7 terminology, all layers and groups are now collection datablocks.
  • These collections are nestable, linkable, instanceable, overrideable, .. which opens up new ways to set up scenes and link + override data.
  • Viewport/render visibility and selectability are now a part of the collection and shared across all view layers and linkable.
  • View layers define which subset of the scene collection hierarchy is used for each. For many workflows one view layer can be used, these are more of an advanced feature now.

OUTLINER

  • The related outliner categories were reorganized to be:
    • Collections: display collections and their objects
    • Objects: display all objects in the scene with parenting hierarchy
    • View Layer: edit which collections are used in the view layer
  • In the collections category we can switch between showing collections in the scene, unlinked collections not linked in any scene, and all in the file.
  • The outliner right click menus for collections and objects were reorganized.

LINKING AND OVERRIDES

  • Collections can now be linked into the scene without creating an instance, with the link/append operator or from the collections view in the outliner.
  • Collections can get static overrides with the right click menu in the outliner, but this is rather unreliable and not clearly communicated at the moment.
  • We still need to improve the make override operator to turn collection instances into collections with overrides directly in the scene.

PERFORMANCE

  • I tried to make performance not worse than before and improve it in some cases. There are still quite some quadratic time operations in object add / delete which would require much deeper changes to fix. But there some of the syncing code I plan to make faster still by avoiding unnecessary syncing of all scenes.
  • Collections keep a list of their parent collections for faster incremental updates in syncing and caching.
  • View layer bases are now in a object -> base hash to avoid quadratic time lookups internally and in API functions like visible_get().

KNOWN ISSUES

  • The G-key group operators in the 3D viewport were left mostly as is, they need to be modified still to fit better.
  • Same for the groups panel in the object properties, this needs to be updated still.
  • Collections must all have a unique name. Better namespacing is to be done later.
  • Outliner drag and drop is still weak with different behavior depending if the icon or text is dragged. I plan to unify that.
  • Full scene copy and delete scene are not properly working yet.

Diff Detail

Repository
rB Blender

Event Timeline

Note, feedback based in a previous version of the branch:

  • Move object in outliner from its name (not icon): crash: P683
  • Doversion issue I guess - test file:

  • Delete collection - crash: P684
  • Instance existing collection - crash: P686
  • Add new (non children) collecions, they are not linked to active view layer.
  • Selectability column drawing on top of object list
  • No need for three columns when showing "View Layer"
  • Unittests failing. Disable/remove them or update.
  • I can't have two different collections with the same name.
  • New objects when there is no collection in the view layer
  • Outliner modes a bit confusing:
    • Factory Startup + Delete collection.
    • In "Collections" outliner mode you see the objects.
    • In "View Layer" outliner mode you see nothing.
  • [old] Renaming View Layer from topbar doesn't update outliner name right away (and vice-versa).
  • [old] Duplicate cube, user count of new cube is 2 instead of 1.

There was a bug in my versioning code for the Hero files, the fix for that is included here.

  • Move object in outliner from its name (not icon): crash: P683

Couldn't repro so far, though I want to unify the drag & drop code so that this can't happen.

  • Doversion issue I guess - test file
    • Delete collection - crash: P684
    • Instance existing collection - crash: P686
    • Add new (non children) collecions, they are not linked to active view layer.
  • New objects when there is no collection in the view layer
  • Selectability column drawing on top of object list

These should all be fixed now.

  • Unittests failing. Disable/remove them or update.

I'll disable them for now and update later.

  • I can't have two different collections with the same name.

Know limitation at the moment, I'll tackle the namespacing later.

  • Outliner modes a bit confusing:
    • Factory Startup + Delete collection.
    • In "Collections" outliner mode you see the objects.
    • In "View Layer" outliner mode you see nothing.

I'll try to make this more clear.

  • No need for three columns when showing "View Layer"

This one is kind of for the [old] category but yes.

  • [old] Renaming View Layer from topbar doesn't update outliner name right away (and vice-versa).
  • [old] Duplicate cube, user count of new cube is 2 instead of 1.
  • Try to make outliner more clear.
  • Include fixes from Campbell.
This revision was not accepted when it landed; it landed in state Needs Review.May 18 2018, 1:35 PM
This revision was automatically updated to reflect the committed changes.