#
Inclusive bounds for VertexWeightEdit? #82831

Closed

opened 2020-11-19 01:23:34 +01:00 by Will
·
17 comments

No Branch/Tag Specified

main

blender-v4.0-release

temp-sculpt-dyntopo

blender-v3.6-release

universal-scene-description

blender-v3.3-release

asset-browser-frontend-split

brush-assets-project

asset-shelf

anim/armature-drawing-refactor-3

temp-sculpt-dyntopo-hive-alloc

tmp-usd-python-mtl

tmp-usd-3.6

blender-v3.5-release

blender-projects-basics

blender-v2.93-release

temp-sculpt-attr-api

realtime-clock

sculpt-dev

gpencil-next

bevelv2

microfacet_hair

xr-dev

principled-v2

v3.6.4

v3.6.3

v3.3.11

v3.6.2

v3.3.10

v3.6.1

v3.3.9

v3.6.0

v3.3.8

v3.3.7

v2.93.18

v3.5.1

v3.3.6

v2.93.17

v3.5.0

v2.93.16

v3.3.5

v3.3.4

v2.93.15

v2.93.14

v3.3.3

v2.93.13

v2.93.12

v3.4.1

v3.3.2

v3.4.0

v3.3.1

v2.93.11

v3.3.0

v3.2.2

v2.93.10

v3.2.1

v3.2.0

v2.83.20

v2.93.9

v3.1.2

v3.1.1

v3.1.0

v2.83.19

v2.93.8

v3.0.1

v2.93.7

v3.0.0

v2.93.6

v2.93.5

v2.83.18

v2.93.4

v2.93.3

v2.83.17

v2.93.2

v2.93.1

v2.83.16

v2.93.0

v2.83.15

v2.83.14

v2.83.13

v2.92.0

v2.83.12

v2.91.2

v2.83.10

v2.91.0

v2.83.9

v2.83.8

v2.83.7

v2.90.1

v2.83.6.1

v2.83.6

v2.90.0

v2.83.5

v2.83.4

v2.83.3

v2.83.2

v2.83.1

v2.83

v2.82a

v2.82

v2.81a

v2.81

v2.80

v2.80-rc3

v2.80-rc2

v2.80-rc1

v2.79b

v2.79a

v2.79

v2.79-rc2

v2.79-rc1

v2.78c

v2.78b

v2.78a

v2.78

v2.78-rc2

v2.78-rc1

v2.77a

v2.77

v2.77-rc2

v2.77-rc1

v2.76b

v2.76a

v2.76

v2.76-rc3

v2.76-rc2

v2.76-rc1

v2.75a

v2.75

v2.75-rc2

v2.75-rc1

v2.74

v2.74-rc4

v2.74-rc3

v2.74-rc2

v2.74-rc1

v2.73a

v2.73

v2.73-rc1

v2.72b

2.72b

v2.72a

v2.72

v2.72-rc1

v2.71

v2.71-rc2

v2.71-rc1

v2.70a

v2.70

v2.70-rc2

v2.70-rc

v2.69

v2.68a

v2.68

v2.67b

v2.67a

v2.67

v2.66a

v2.66

v2.65a

v2.65

v2.64a

v2.64

v2.63a

v2.63

v2.61

v2.60a

v2.60

v2.59

v2.58a

v2.58

v2.57b

v2.57a

v2.57

v2.56a

v2.56

v2.55

v2.54

v2.53

v2.52

v2.51

v2.50

v2.49b

v2.49a

v2.49

v2.48a

v2.48

v2.47

v2.46

v2.45

v2.44

v2.43

v2.42a

v2.42

v2.41

v2.40

v2.37a

v2.37

v2.36

v2.35a

v2.35

v2.34

v2.33a

v2.33

v2.32

v2.31a

v2.31

v2.30

v2.28c

v2.28a

v2.28

v2.27

v2.26

v2.25

**Labels**

Apply labels

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

This issue affects/is about backward or forward compatibility

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

Metal

Interest

Modeling

Interest

Modifiers

Interest

Motion Tracking

Interest

Nodes & Physics

Interest

OpenGL

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

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

Issues relating to security: https://wiki.blender.org/wiki/Process/Vulnerability_Reports

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 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 & 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

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

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

**Milestone**

Set milestone

Clear milestone

No items

No Milestone

**Projects**

Set Project

Clear projects

No project

**Assignees**

Assign users

Clear assignees

No Assignees

**6 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#82831

Reference in New Issue

There is no content yet.

Delete Branch "%!s(<nil>)"

Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?

System InformationOperating system: Linux

Graphics card: Intel UHD

Blender VersionBroken: 2.90.1

Worked: ???

Short description of errorThe "Group Add" "Threshold" for the VertexWeightEdit modifier seems to be interpreted as an exclusive bound. This may be a deliberate design choice, but it makes it impossible to assign default weights of zero:

Exact steps for others to reproduce the errorWhen dealing with output from generative modifiers or meshes linked from library .blend files, it's useful for me to be able to non-destructively assign a default vertex weight of 0.0 to all vertices so I can then use VertexWeightMix modifiers to add textures to the weights, combine multiple vertex groups, etc.

What I was trying to say was that the VertexWeightEdit modifier has a "Group Add" functionality for setting all weights above a threshold, but it doesn't do anything for weights that are exactly equal to that threshold:

This kinda makes sense, but it also makes it impossible to e.g. assign weights of 0.0, or only weights of exactly 1.0.

Blend file below. The threshold is 0.010, so set the "Default Weight" to 0.010 and 0.011 to see what I mean.

VertexWeightEdit_Bounds.blend

Maybe this file makes it a bit clearer:

`VertexWeightMix`

modifier after the`VertexWeightEdit`

modifier`VertexWeightEdit`

modifier tries to add all vertices to the group with a value of 0.0 (to be able to be used by the following`VertexWeightMix`

modifier), but "fails" due to the exclusive boundsVertexWeightEdit_Bounds_repro.blend

Added subscriber: @WCN

I just realized my screenshots don't actually prove anything, as zero weights would be rendered black anyway. But the behaviour I described does occur AFAICT, and the test I did produces the same result with non-zero thresholds and default weights.

Added subscriber: @mano-wii

I'm not sure what I'm seeing in the image.

Can you share the file so we can analyze it?

Changed status from 'Needs Triage' to: 'Needs User Info'

@mano-wii Hey, sorry for being unclear.

What I was trying to say was that the VertexWeightEdit modifier has a "Group Add" functionality for setting all weights above a threshold, but it doesn't do anything for weights that are exactly equal to that threshold:

This kinda makes sense, but it also makes it impossible to e.g. assign weights of 0.0, or only weights of exactly 1.0.

Blend file below. The threshold is 0.010, so set the "Default Weight" to 0.010 and 0.011 to see what I mean.

VertexWeightEdit_Bounds.blend

Changed status from 'Needs User Info' to: 'Needs Triage'

Added subscriber: @iss

Changed status from 'Needs Triage' to: 'Needs User Info'

I can confirm this is the case, but I am not sure why you need this. Though I have not so much experience in this area.

Can you explain how this is problem in workflow?

@iss When dealing with output from generative modifiers or meshes linked from library

`.blend`

files, it's useful for me to be able to non-destructively assign a default vertex weight of 0.0 to all vertices so I can then use VertexWeightMix modifiers to add textures to the weights, combine multiple vertex groups, etc.Changed status from 'Needs User Info' to: 'Needs Triage'

Added subscriber: @lichtwerk

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'

I think I get the point.

So for vertices not in the group, it is impossible to add them with a default value of 0.0.

Maybe this file makes it a bit clearer:

`VertexWeightMix`

modifier after the`VertexWeightEdit`

modifier`VertexWeightEdit`

modifier tries to add all vertices to the group with a value of 0.0 (to be able to be used by the following`VertexWeightMix`

modifier), but "fails" due to the exclusive boundsVertexWeightEdit_Bounds_repro.blend

This patch changes it to be inclusive bounds

P1959: T82831_snippet

This is certainly not a bug, but possibly a TODO (if this is really beneficial in all cases).

Will confirm for now and let modules make a decision here.

I've confirmed that the behavior is still the same in current

`main`

. I agree that this should probably be an inclusive bound. I'll bring it up with the animation & rigging module.Animation: Make Vertex Weight Edit modifier inclusive#108286Animation: Make Vertex Weight Edit modifier inclusive#108286Fixed in 4.0 by #108286