Synchronizing editors between workspaces #76810
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
12 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#76810
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Here is a design discussion about synchronizing editors between workspaces.
Basically, synchronizing editors try to keep content in editors with same type when you switch between workspaces.
Working prototype and previous discussion is here https://developer.blender.org/D7272
Problems, that we need to discourse:
Solutions
Add a Synchronize property for areas. When two areas in different workspaces are marked as Synchronize, they get same Sinc ID, and Blender will synchronize areas by this ID.
What settings we heed to synchronize
I noted, that synchronization of view position approved by all, but not all wants synchronization of other settings. So there is a suggestion to divide synchronization into several parts: view position, window scroll and settings, open-close state.
Possible solutions how to do this:
Add only synchronizing view position / window scroll / open-close state in Outliner only and add an operator "Copy Overlay (Shading, Gizmo) Settings to all Viewports (Editors)". By the way, it will be nice to have this operator and without this synchronization task
Synchronize all settings, but add more settings to workspace. For example, assign Shading Mode to the workspace (where now Object Mode selector is located). Or maybe, Minimum Shading level. It will be useful for Shading workspace. When you tap to Shading workspace from Solid mode, you switch to "Material Preview", but if you already have Rendered mode, it will be nice to keep it and do not downgrade it to "Material Preview"
UI
The new menu View - Area - Sinc, made like a property with checkbox. If it checked, area is synchronized.
I suggest some different variations, how menu can be looks like, depends on current situation:
I created this design because @JulianEisel suggest this. This is my first task, if I did something wrong, notify me.
Added subscribers: @JulianEisel, @crantisz
Added subscriber: @Debuk
This is heavily dependent on if the goal is to support different synchronziation groups/ids for the same editor types or if there is just one sync ID them. (eg have for all 3dviews just one id possible)
If there is just one sync id per areatype, then syncing could be handled like subscribing to its defined id. So more views in a viewport could subsribe to being in sync with that or not and every area could opt out of individual properties associated with this sync id, like pos, shading,...
This comes with limitations in possibilities but would be easier to handle, so my question left open is this,
more sync ids per areatype or is that beyond scope
?In the last implementation, the sinc IDs in no way depend on the type of editor. It allows keeping areas synchronized, even they temporary replaced by image editor during rendering. And, of-course, it allows synchronizing more than one editor with same type
MACHIN3tools realization via pie-menu: https://www.youtube.com/watch?v=HdKkskyFDN4&feature=youtu.be&t=263
Added subscriber: @BulatKR
Added subscriber: @TheCharacterhero-4
Added subscriber: @1D_Inc
Changing the 3D view is the most disorienting in my opinion.
Added subscriber: @Luxary
I think this design proposal could be reworked in favour of simplicity. Two main things come to mind:
I don't the Global Sync should carry anything other than
view_location
,view_rotation
,view_distance
andview_perspective
. Perhaps,lens
,clip_start
andclip_end
as well.Anything more than that would defy the purpose of having multiple workspaces, which tend to have different view/shader settings specifically because they're designed to be different "environments". The true inconvenience that stems from the current situation, IMHO, is the need to readjust the view when working on a certain part of the scene while hopping between different stages (Modeling, Sculpting, Unwrapping, Shading...).
The global syncing should be fast to toggle on and off. Hiding the option into a context menu is inadequate. It both hides the current Sync state from the user, and "opting in" for each viewport is a lengthy and inconvenient process. Instead, I think it would be easier to have a global setting from which a viewport can "opt out" of, entering in a temporary "Free view" state. Here's a working mock-up I made in python:
2020-08-20_17-38-35.mp4
There are still some problems that need to be addressed, such as handling a workspace with many 3D Views. Offhand, it would seem logical to me to designate one of them as the main one from which you'd copy the view settings. After all, multiple 3D Views in workspace are almost always used to check the scene from different angles, perhaps with different settings. The user would be in charge of selecting which view would be the main one, perhaps from the same popover menu that would dynamically accomodate the settings.
Finally, I wouldn't cram too many features into this proposal. Storing and linking multiple sets of views, for example, is something that is not only potentially confusing, but kinda goes out of the main proposal's scope. Not to mention, there are bundled add-ons that enable this functionality . Keeping it simple and manageable is a good first step to actually have something that embraces Blender's design philosophy.
Added subscriber: @NeilSmith-1
Added subscriber: @APEC
Looks so nice!
The "lock" on views looks just perfect instead of checkboxes.
One thing is to move this option to View - View Sync
Well, usually, in the context menus you'd have single-entry operators and nothing else. They're not really meant for checkboxes and stuff.
This was thought more along the lines of Object Types Visibility panel, the functionality of UI elements is pretty similar to that.
Also, I felt like it would have to be as readily accessible as possible, hence why I hacked it in the viewport.
I'm glad you like it, though. But I wonder if this task needs to be re-published, since it's inactive by now.
Yes, you are right. There is no place in viewport except where it is now or near the "View Object Types".
BTW what we should do to make this design active?
Ah, nevermind that, I just noticed it's on the 2.92 Workboard as Short-Term Scope, just not as high in priority, so it's fine the way it is. It will eventually bubble to the top (hopefully) ;)
This thread is meant for design proposals and technical discussion by the way, so we should avoid anything that isn't strictly related to that.
Added subscriber: @ckohl_art
Added subscriber: @StroBlend
Hi @Luxary any news here ? is this patch ready ? We have the nicer user interface of all 3D softwares and workspaces is a wonderful/powerful feature to quickly jump between different workflow, And THIS please! can really give a better user experience using full worspaces potential! So we don't have to make lot of scroll and rotate of viewport to continue the work on what we were just currently working at!
Blender 3.0 is coming and it will fit perfectly with it!
Would be nice feature for 3.1+
Just to remember for subscribers, this design still exist.
I've made an add-on with this functionality:
https://blenderartists.org/t/synchronize-workspaces-blender-add-on/1356695
Post suggestions for improvements, after the add-on will be more polished, I will post it in suggest add-on box.
Added subscriber: @Mentales
Removing the
Needs Triage
label. This is under the general rule that Design and TODO tasks should not have a status.If you believe this task is no longer relevant, feel free to close it.