WIP: Prototype: Geometry Nodes: data block references list per node instance #117635

Closed
Jacques Lucke wants to merge 64 commits from JacquesLucke/blender:bake-data-block-map-instance into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Member

This tests a slightly different version of #117043 where each bake node instance has its own data block list. The following features are implemented:

  • View data blocks in node editor side bar.
  • Only writeback mapping to original data if bake node has actually baked anything.
  • Automatically clear data block references when freeing the bake.

image

The intention is to merge this into #117043 if it turns out to be the better solution.

This tests a slightly different version of #117043 where each bake node instance has its own data block list. The following features are implemented: * View data blocks in node editor side bar. * Only writeback mapping to original data if bake node has actually baked anything. * Automatically clear data block references when freeing the bake. ![image](/attachments/200a0039-7867-4157-badd-ca629fdf1e5c) The intention is to merge this into #117043 if it turns out to be the better solution.
Jacques Lucke added 63 commits 2024-01-29 16:07:22 +01:00
improve description
All checks were successful
buildbot/vexp-code-patch-lint Build done.
buildbot/vexp-code-patch-linux-x86_64 Build done.
buildbot/vexp-code-patch-windows-amd64 Build done.
buildbot/vexp-code-patch-darwin-arm64 Build done.
buildbot/vexp-code-patch-darwin-x86_64 Build done.
buildbot/vexp-code-patch-coordinator Build done.
0420547c21
Jacques Lucke added 1 commit 2024-01-29 16:38:45 +01:00
Simon Thommes requested changes 2024-01-29 17:48:59 +01:00
Simon Thommes left a comment
Member

Thanks for addressing this so quickly, to me this feels a lot better now!

So far I haven't been able to find a situation where the automatic population and clearing of the list fails.

Obviously now, that the list is per bake and only visible in the node editor for the time being, it's a lot more hidden. Which now, that I'm quite confident that the automatic solution can just work, should be acceptable imo.

At least now the data is also clearly associated with the rest of the properties of the bake.

On the topic of having a separate list or one in the UI, I can see exposing a superset of all datablock references in the modifier for convenience, while still keeping the ground truth per bake, so that they can be edited on a lower level. E.g importing the same bake with different materials (or in the future, replacing the geometry that an instancer is referencing).

But that can come later imo, since now the reference data is accessible in the same way the bake properties are and for the vast majority of currently possible use-cases it should not be necessary to access. In the future this would change though and we'll need more UI.

I'd still like to hear from @brecht about the split list per bake, since the current approach is different from what we last discussed. To me the current approach is reasonable though.

The one thing that I'd like to have added in this patch a title Referenced Data, potentially by putting this UI in a subpanel.

Thanks for addressing this so quickly, to me this feels a lot better now! So far I haven't been able to find a situation where the automatic population and clearing of the list fails. Obviously now, that the list is per bake and only visible in the node editor for the time being, it's a lot more hidden. Which now, that I'm quite confident that the automatic solution can just work, should be acceptable imo. At least now the data is also clearly associated with the rest of the properties of the bake. On the topic of having a separate list or one in the UI, I can see exposing a superset of all datablock references in the modifier for convenience, while still keeping the ground truth per bake, so that they can be edited on a lower level. E.g importing the same bake with different materials (or in the future, replacing the geometry that an instancer is referencing). But that can come later imo, since now the reference data is accessible in the same way the bake properties are and for the vast majority of currently possible use-cases it should not be necessary to access. In the future this would change though and we'll need more UI. I'd still like to hear from @brecht about the split list per bake, since the current approach is different from what we last discussed. To me the current approach is reasonable though. The one thing that I'd like to have added in this patch a title `Referenced Data`, potentially by putting this UI in a subpanel.

I'm fine with multiple lists. I can see some use cases when importing the same thing multiple times and you want different materials for each.

It's less convenient if you have multiple bake nodes just because you have some multi-step baking of the same geometry. But I guess in that case only the last bake node needs to be handled anyway.

I'm fine with multiple lists. I can see some use cases when importing the same thing multiple times and you want different materials for each. It's less convenient if you have multiple bake nodes just because you have some multi-step baking of the same geometry. But I guess in that case only the last bake node needs to be handled anyway.
First-time contributor

You must be explicit due to baking and his possibilty, he should be look more like :


Bake solution 1 Bake solution 2 Bake solution 3
Baked frame : 84 Baked frames : From 1 to 90 (Instead 1 - 90) Baked multiples frames : 1 and 5 and 10
Only for one baked frames Only for baked frames from X to X (Frames)) Only for multiples frames baked at different times

All bake solution (Enumered in table content (Is needed to merge 3 solutions in one and automatically detected by blender and update the text in the node and bake the good result choosen by the user in terms of the solution choosen by the user (Solution 1 or *Solution 2 or Solution 3

So in my proposal only the solution 3 are newed ! The rest are the same ! Expect updating the text in the node instead use char use text is more good for the user understand what he do ! use "From X To X" instead " - " for baking The solution 2 (Because actually we use the char " - " and is not good for user friendly.

You must be explicit due to baking and his possibilty, he should be look more like : ----- | Bake solution 1 | Bake solution 2 | Bake solution 3 | | :--------: | :--------: | :--------: | | Baked frame : **84** | Baked frames : **From 1 to 90** (Instead 1 - 90)| Baked multiples frames : **1 and 5 and 10** | | **Only for one baked frames**| **Only for baked frames from X to X (Frames)**)| **Only for multiples frames baked at different times** ----- |All bake solution (Enumered in table content (Is needed to merge 3 solutions in one and automatically detected by blender and update the text in the node and bake the good result choosen by the user in terms of the solution choosen by the user (**Solution 1** or **Solution 2* or **Solution 3**| |-----| > So in my proposal only the solution 3 are newed ! The rest are the same ! Expect updating the text in the node instead use char use text is more good for the user understand what he do ! use **"From X To X" instead " - "** for baking The solution 2 (Because actually we use the char " - " and is not good for user friendly.
Author
Member

@dodo-2 this is unfortunately not related to what this patch is about. Currently, we (intentionally) only support baking still frames or frame ranges, but not multiple independent frames.


Will close this, because I'm merging the change into #117043. Thanks for the feedback on this approach.

@dodo-2 this is unfortunately not related to what this patch is about. Currently, we (intentionally) only support baking still frames or frame ranges, but not multiple independent frames. ----- Will close this, because I'm merging the change into #117043. Thanks for the feedback on this approach.
Jacques Lucke closed this pull request 2024-01-30 15:50:12 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
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
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#117635
No description provided.