New tool to add and subtract prismatic volumes #75913

Open
opened 3 years ago by mano-wii · 41 comments
Collaborator

Status:
b79a5bdd5a implemented a new tool "Extrude, Dissolve and Intersect" (now Extrude Manifold) that performs the following sequence of actions:

  • extrudes,
  • dissolves the edges whose faces are coplanar and
  • intersects the new edges with the existing geometry.

But while useful, it would be interesting if this tool also supports:

  • A boolean-like operation by subtracting internal geometry.
  • Display result in real time.

But there are limitations to implementing these items in the existing tool, since it is a macro calling existing operators.
And one of the operators is the translate which is already modal.

Therefore, the purpose of this task is to propose a new tool that can replace the "Extrude Manifold"


Team
Commissioner: ? Core developer or artist, sign off the project, works as client/qa/tests.
Project leader: @mano-wii

Description
Big picture:
Groups of faces define prismatic volumes that will have their ends limited by existing geometry.
If any existing geometry intersects the prism, the internal area of that geometry will be subtracted.

Use cases:

  • Facilitate the creation of holes in meshes with volume. This is common for doors and windows for example.

Design:

  • New tool that will be located between the existing extrusion tools.
  • Since Boolean operations are CPU intensive, the boolean operation will not be modal, but a preview should indicate the volume that will be added or subtracted (similar to what is done in other tools such as loopcut).
    extrud1.png extrud2.png extrud3.png

Work plan

Time estimate: 2 weeks

    • Operator
    • Interface drawing
    • Gizmo
    • Icon
**Status:** b79a5bdd5a implemented a new tool `"Extrude, Dissolve and Intersect"` (now `Extrude Manifold`) that performs the following sequence of actions: - extrudes, - dissolves the edges whose faces are coplanar and - intersects the new edges with the existing geometry. But while useful, it would be interesting if this tool also supports: - A boolean-like operation by subtracting internal geometry. - Display result in real time. But there are limitations to implementing these items in the existing tool, since it is a macro calling existing operators. And one of the operators is the translate which is already modal. Therefore, the purpose of this task is to propose a new tool that can replace the `"Extrude Manifold"` --- **Team** **Commissioner:** `?` *Core developer or artist, sign off the project, works as client/qa/tests.* **Project leader:** @mano-wii **Description** **Big picture:** Groups of faces define prismatic volumes that will have their ends limited by existing geometry. If any existing geometry intersects the prism, the internal area of that geometry will be subtracted. **Use cases**: * Facilitate the creation of holes in meshes with volume. This is common for doors and windows for example. **Design:** * New tool that will be located between the existing extrusion tools. * Since Boolean operations are CPU intensive, the boolean operation will not be modal, but a preview should indicate the volume that will be added or subtracted (similar to what is done in other tools such as loopcut). |![extrud1.png](https://archive.blender.org/developer/F8484250/extrud1.png)|![extrud2.png](https://archive.blender.org/developer/F8484252/extrud2.png)|![extrud3.png](https://archive.blender.org/developer/F8484254/extrud3.png)| | -- | -- | -- | **Work plan** Time estimate: `2 weeks` * - [ ] Operator * - [x] Interface drawing * - [x] Gizmo * - [x] Icon
Poster
Collaborator

Added subscriber: @mano-wii

Added subscriber: @mano-wii

Added subscriber: @ugosantana

Added subscriber: @ugosantana

Added subscriber: @Schiette

Added subscriber: @Schiette

Added subscriber: @kouzanagi

Added subscriber: @kouzanagi
Pasang commented 3 years ago

Added subscriber: @Pasang

Added subscriber: @Pasang
cdog commented 3 years ago

Added subscriber: @cdog

Added subscriber: @cdog

Added subscriber: @item412

Added subscriber: @item412
bent commented 3 years ago

Added subscriber: @bent

Added subscriber: @bent

HI, this tool is still relevant ? the current extrude manifold isn't really good I dont understand why they didn't keep destroy end optional, it doesn't make sense.

HI, this tool is still relevant ? the current extrude manifold isn't really good I dont understand why they didn't keep destroy end optional, it doesn't make sense.
imad commented 2 years ago

Added subscriber: @imad

Added subscriber: @imad

Added subscriber: @garwell

Added subscriber: @garwell
GeRo commented 2 years ago

Added subscriber: @GeRo

Added subscriber: @GeRo

Added subscriber: @MeshVoid

Added subscriber: @MeshVoid

Added subscriber: @PetterLundh

Added subscriber: @PetterLundh

Added subscriber: @RahulPradipPatil

Added subscriber: @RahulPradipPatil

Added subscriber: @AnityEx

Added subscriber: @AnityEx

hey! thanks for this task but this doesn't look like it has made it to 2.91? since blender is in Bcon3; unless changing a whole tool is considered bugfixing i'd like to know if it is being developed still? I assume this will benefit from the new boolean code, can't wait!

hey! thanks for this task but this doesn't look like it has made it to 2.91? since blender is in Bcon3; unless changing a whole tool is considered bugfixing i'd like to know if it is being developed still? I assume this will benefit from the new boolean code, can't wait!
Collaborator

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Collaborator

@AnityEx Just add yourself as a subscriber to this task and you will get an email any time there's an update. A task is more like a proposal, it doesn't mean anyone is actually working on it at the moment, and this is a large one. I agree it would be very cool though.

@AnityEx Just add yourself as a subscriber to this task and you will get an email any time there's an update. A task is more like a proposal, it doesn't mean anyone is actually working on it at the moment, and this is a large one. I agree it would be very cool though.

Can this be ready for 2.91? I've seen Estimated Time: 2 weeks for a while now. but i don't really understand what it means :/

Can this be ready for 2.91? I've seen Estimated Time: 2 weeks for a while now. but i don't really understand what it means :/
Poster
Collaborator

The estimated time of 2 weeks starts from the beginning of the work.
The idea really was to develop this tool for blender 2.91, but I was unable to schedule my time this month to work on it.
Depending on how to prioritize other tasks (like #81864 for example), this project can be anticipated.

The estimated time of 2 weeks starts from the beginning of the work. The idea really was to develop this tool for blender 2.91, but I was unable to schedule my time this month to work on it. Depending on how to prioritize other tasks (like [#81864 ](https://developer.blender.org/T81864) for example), this project can be anticipated.

Removed subscriber: @RahulPradipPatil

Removed subscriber: @RahulPradipPatil

Added subscriber: @RahulPradipPatil

Added subscriber: @RahulPradipPatil

Removed subscriber: @RahulPradipPatil

Removed subscriber: @RahulPradipPatil

Added subscriber: @RahulPradipPatil

Added subscriber: @RahulPradipPatil

Added subscriber: @NunoAlexandreConceicao

Added subscriber: @NunoAlexandreConceicao

In #75913#1043650, @mano-wii wrote:
The estimated time of 2 weeks starts from the beginning of the work.
The idea really was to develop this tool for blender 2.91, but I was unable to schedule my time this month to work on it.
Depending on how to prioritize other tasks (like #81864 for example), this project can be anticipated.

Sir Any update, please sir we are all waiting for this.

> In #75913#1043650, @mano-wii wrote: > The estimated time of 2 weeks starts from the beginning of the work. > The idea really was to develop this tool for blender 2.91, but I was unable to schedule my time this month to work on it. > Depending on how to prioritize other tasks (like [#81864 ](https://developer.blender.org/T81864) for example), this project can be anticipated. Sir Any update, please sir we are all waiting for this.

Added subscriber: @SoulCake

Added subscriber: @SoulCake

Added subscriber: @GeorgiaPacific

Added subscriber: @GeorgiaPacific

Added subscriber: @TheCharacterhero-4

Added subscriber: @TheCharacterhero-4
juang3d commented 1 year ago

Added subscriber: @juang3d

Added subscriber: @juang3d
juang3d commented 1 year ago

This was supposed to be the solution to manifold extrude, what's the status on this?

It's a very useful tool in general and as requested as criticised, the critics go to the manifold extrude which is not working fine, in it's current state it's barely useful.

This was supposed to be the solution to manifold extrude, what's the status on this? It's a very useful tool in general and as requested as criticised, the critics go to the manifold extrude which is not working fine, in it's current state it's barely useful.
Poster
Collaborator
Status can be seen in patches [D12421: Edit Mesh: Extrude Boolean Tool](https://archive.blender.org/developer/D12421) and [D12698: Boolean Fast Mode Refactor](https://archive.blender.org/developer/D12698). [D12698: Boolean Fast Mode Refactor](https://archive.blender.org/developer/D12698) needs testing and benchmarking.
juang3d commented 1 year ago

Awesome, thanks @mano-wii

Awesome, thanks @mano-wii
Yuro commented 1 year ago

Added subscriber: @Yuro

Added subscriber: @Yuro

Added subscriber: @lictex_1

Added subscriber: @lictex_1

Added subscriber: @Emi_Martinez

Added subscriber: @Emi_Martinez

Added subscriber: @SensArice

Added subscriber: @SensArice

Added subscriber: @Dangry

Added subscriber: @Dangry
Kuboa commented 3 weeks ago

Added subscriber: @Kuboa

Added subscriber: @Kuboa

Added subscriber: @AlexeyAdamitsky

Added subscriber: @AlexeyAdamitsky
ThomasDinges added this to the 2.91 milestone 2 days ago
lichtwerk removed the
legacy module/Modeling
label 23 hours ago
lichtwerk removed the
Interest/Modeling
label 23 hours ago
Sign in to join this conversation.
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/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
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/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
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
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
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 & Devices
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 Information 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
28 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#75913
Loading…
There is no content yet.