Regression: When making a collection real, curves with depth in the collection are instantiated twice #99088

Open
opened 2022-06-22 12:57:52 +02:00 by thomas pahler · 12 comments

System Information
Operating system: Windows-10-10.0.19044-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3070 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 512.77

Blender Version
Broken: version: 3.2.0, branch: master, commit date: 2022-06-08 10:22, hash: e05e1e3691
Broken: 3.0
Worked: 2.93

Caused by b9febb54a4

Short description of error
when making a collection real, curves where geometry/bevel/depth is not zero are created twice.
curves that do not have this property set are only created once.

Exact steps for others to reproduce the error

  • open the attached file
    curves_file.blend
  • select the collection instance
  • object -> apply -> make instances real

What should happen

  • every object of the collection appears once

What happens

  • the "BezierCurveWithDepth" appears twice in the hierachy

this also is the case, when exporting the instanced collection, without making it real

**System Information** Operating system: Windows-10-10.0.19044-SP0 64 Bits Graphics card: NVIDIA GeForce RTX 3070 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 512.77 **Blender Version** Broken: version: 3.2.0, branch: master, commit date: 2022-06-08 10:22, hash: `e05e1e3691` Broken: 3.0 Worked: 2.93 Caused by b9febb54a4 **Short description of error** when making a collection real, curves where geometry/bevel/depth is not zero are created twice. curves that do not have this property set are only created once. **Exact steps for others to reproduce the error** - open the attached file [curves_file.blend](https://archive.blender.org/developer/F13216489/curves_file.blend) - select the collection instance - object -> apply -> make instances real **What should happen** - every object of the collection appears once **What happens** - the "BezierCurveWithDepth" appears twice in the hierachy this also is the case, when exporting the instanced collection, without making it real
Author

Added subscriber: @thomason1005

Added subscriber: @thomason1005

#101629 was marked as duplicate of this issue

#101629 was marked as duplicate of this issue
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Omar Emara changed title from when making a collection real, curves appear duplicated to When making a collection real, curves with depth in the collection are instantiated twice 2022-06-22 14:06:52 +02:00
Philipp Oeser changed title from When making a collection real, curves with depth in the collection are instantiated twice to Regression: When making a collection real, curves with depth in the collection are instantiated twice 2022-06-22 22:39:52 +02:00
Member

Added subscribers: @HooglyBoogly, @lichtwerk

Added subscribers: @HooglyBoogly, @lichtwerk
Member

Caused by b9febb54a4

I know some of the consequences of that commit have been "accepted" as Known Issues, I am not sure this issue reported here should (or could not be prevented) @HooglyBoogly ?
Will set to High prio since it is a regression until further notice by the module.

Caused by b9febb54a4 I know some of the consequences of that commit have been "accepted" as Known Issues, I am not sure this issue reported here should (or could not be prevented) @HooglyBoogly ? Will set to High prio since it is a regression until further notice by the module.

Added subscriber: @ThomasDinges

Added subscriber: @ThomasDinges

Blender 3.2.1 is scheduled for release soon. Any chance to fix this still? @HooglyBoogly

Blender 3.2.1 is scheduled for release soon. Any chance to fix this still? @HooglyBoogly
Member

I'm not sure I see a clear way to fix this at the moment, nothing I'd think of safe enough for 3.2.

I'm not sure I see a clear way to fix this at the moment, nothing I'd think of safe enough for 3.2.
Member

I think there are two ways to solve this:

  1. Add some flag to instances so we can tell when they correspond to a geometry component that doesn't match the original object type (the instances used for the geometry component system), and skip those instances here.
  2. Don't use the object "dupli list" for this feature. Instead look into the InstancesComponent of the evaluated geometry set.

Personally I prefer the second approach. The first is working around the problem and ending up with something more complicated and fragile, the second seems like a real step forwards in the features we want to support in this area (realizing geometry instances to objects, etc).
The problem with that approach is that the instances from the "Instances" panel aren't included in the InstancesComponent. However, we've talked about versioning away that panel for a while. Maybe now is the time to look into that...

EDIT: The task for that last part: #105321

I think there are two ways to solve this: 1. Add some flag to instances so we can tell when they correspond to a geometry component that doesn't match the original object type (the instances used for the geometry component system), and skip those instances here. 2. Don't use the object "dupli list" for this feature. Instead look into the `InstancesComponent` of the evaluated geometry set. Personally I prefer the second approach. The first is working around the problem and ending up with something more complicated and fragile, the second seems like a real step forwards in the features we want to support in this area (realizing geometry instances to objects, etc). The problem with that approach is that the instances from the "Instances" panel aren't included in the `InstancesComponent`. However, we've talked about versioning away that panel for a while. Maybe now is the time to look into that... EDIT: The task for that last part: #105321
Member

Added subscribers: @The5, @mano-wii

Added subscribers: @The5, @mano-wii
Member

For this bug, since it can be worked around relatively easily, I think I will wait to implement the fix with the second option I mentioned. In the meantime I'll make this a known issue, because I don't know exactly when we'll be able to do that.

For this bug, since it can be worked around relatively easily, I think I will wait to implement the fix with the second option I mentioned. In the meantime I'll make this a known issue, because I don't know exactly when we'll be able to do that.
Philipp Oeser removed the
Interest
Modeling
label 2023-02-09 15:27:36 +01:00
Jacques Lucke added
Priority
Normal
and removed
Priority
High
labels 2023-03-27 14:50:29 +02:00

For this bug, since it can be worked around relatively easily, I think I will wait to implement the fix with the second option I mentioned. In the meantime I'll make this a known issue, because I don't know exactly when we'll be able to do that.

The main problem I have is, that I use this a lot in scripts that instantiate, duplicate or use particles, and it is hard to prune the duplicates in there.

I do not know it it is technically linked to my issues in (#124758).
But it is a issue in the same workflow described there, as all ways to fetch evaluated geometry seem to go some long path.
Including making instances real.

In my case I often just want the mesh of a instanced collection with instanced curves and text in it for example.

Currently that involves making instances real and converting to mesh.
Rather than just fetching the available, already present geometry and making it a mesh of its own.

> For this bug, since it can be worked around relatively easily, I think I will wait to implement the fix with the second option I mentioned. In the meantime I'll make this a known issue, because I don't know exactly when we'll be able to do that. The main problem I have is, that I use this a lot in scripts that instantiate, duplicate or use particles, and it is hard to prune the duplicates in there. I do not know it it is technically linked to my issues in (#124758). But it is a issue in the same workflow described there, as all ways to fetch evaluated geometry seem to go some long path. Including making instances real. In my case I often just want the mesh of a instanced collection with instanced curves and text in it for example. Currently that involves making instances real and converting to mesh. Rather than just fetching the available, already present geometry and making it a mesh of its own.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
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
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
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
7 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#99088
No description provided.