(DP) Paint not following object, when object constraint to dp weight created vertex group #71166

Closed
opened 2019-10-28 18:12:25 +01:00 by Björn Eckhardt · 10 comments

System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 970/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 388.13

Blender Version
Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-10-27 13:40, hash: 9b6aa740be
also broken in 2.80 release
Worked: (optional)

Short description of error
I want to control the location of an object by drawing weight paint on a plane and constraint the object to this vertex group created by the weight paint. The problem occurs when the object with the constraint should also be a brush painting colors on the plane. The colour will not follow the object, but stay at the objects "original origin".

examples
2.81: https://www.dropbox.com/s/cougeh7xhujnvp2/DynPaint_2-81.blend?dl=0
[2.80 https://www.dropbox.com/s/n9tbxbeo0hh6hpe/DynPaint_2-80.blend?dl=0]

Exact steps for others to reproduce the error

#71166.blend

  • open file and play animation

from scratch:

collections:

  add collection called paint
  add collection called weight

plane (master or other collection):

  add a plane, scale largers, subdive a lot (e.g. 50 time)
  add 2 dynamic paint canvas:
    1. name weight, surface type weight, Brush Collection = weight; check Dissolve, output/add dp_weight vertex group 
    2. name paint, surface type = paint, Brush Collection = paint, (check Dissolve), output/add dp_wetmap vertex group 
  add a material with attribute node with dp_wetmap, fac connected to emission --> material output (node wrangler/strg+shift+click on attribute node)
      

Add a cylinder (will mark the spot for the cube to be via dp weight on the plane)

  add a cylinder 
 scale a bit bigger and set to viewport display = wireframe 
  move it that it touches the plane 
  add dp brush 
  move it to the "weight" - collection 
  
  

Cube

  add a cube
  add dp brush
  constraints: add copy location 
      target= plane 
      vertex group = dp_weight
      
  • when you press play and move the cylinder (eevee or cycles), the cube will follow the cylinder, but the paint will stay at the "original origin" of the cube

If you would constrain the cube to the location of the cylinder, the cube will brush paint as expected.

  
  

I hope you can reproduce and find the problem. ... At one point of setting up this exact example for you I added keyframes to the cube and it painted correctly .... I tested that because of another bug in the same setup, where the cube is not following the cylinder when it has location keyframes (minimum of two)...as if the keyframes overwrite the constraint. However, in the minimal setup I can't reproduce it. So if you have an idea connected to it to it go for it... I'll try to find a setup that makes clear where the problem comes from

thanks for your work.

              
**System Information** Operating system: Windows-10-10.0.18362 64 Bits Graphics card: GeForce GTX 970/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 388.13 **Blender Version** Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-10-27 13:40, hash: `9b6aa740be` also broken in 2.80 release Worked: (optional) **Short description of error** I want to control the location of an object by drawing weight paint on a plane and constraint the object to this vertex group created by the weight paint. The problem occurs when the object with the constraint should also be a brush painting colors on the plane. The colour will not follow the object, but stay at the objects "original origin". examples 2.81: https://www.dropbox.com/s/cougeh7xhujnvp2/DynPaint_2-81.blend?dl=0 [2.80 https://www.dropbox.com/s/n9tbxbeo0hh6hpe/DynPaint_2-80.blend?dl=0] **Exact steps for others to reproduce the error** [#71166.blend](https://archive.blender.org/developer/F8290185/T71166.blend) - open file and play animation **from scratch:** collections: ``` add collection called paint add collection called weight ``` plane (master or other collection): ``` add a plane, scale largers, subdive a lot (e.g. 50 time) add 2 dynamic paint canvas: ``` 1. name weight, surface type weight, Brush Collection = weight; check Dissolve, output/add dp_weight vertex group 2. name paint, surface type = paint, Brush Collection = paint, (check Dissolve), output/add dp_wetmap vertex group ``` add a material with attribute node with dp_wetmap, fac connected to emission --> material output (node wrangler/strg+shift+click on attribute node) ``` Add a cylinder (will mark the spot for the cube to be via dp weight on the plane) ``` add a cylinder scale a bit bigger and set to viewport display = wireframe move it that it touches the plane add dp brush move it to the "weight" - collection ``` Cube ``` add a cube add dp brush constraints: add copy location target= plane vertex group = dp_weight ``` - > when you press play and move the cylinder (eevee or cycles), the cube will follow the cylinder, but the paint will stay at the "original origin" of the cube If you would constrain the cube to the location of the cylinder, the cube will brush paint as expected. ``` ``` I hope you can reproduce and find the problem. ... At one point of setting up this exact example for you I added keyframes to the cube and it painted correctly .... I tested that because of another bug in the same setup, where the cube is not following the cylinder when it has location keyframes (minimum of two)...as if the keyframes overwrite the constraint. However, in the minimal setup I can't reproduce it. So if you have an idea connected to it to it go for it... I'll try to find a setup that makes clear where the problem comes from thanks for your work. ```

Added subscriber: @BjornEckhardt

Added subscriber: @BjornEckhardt

Added subscriber: @iss

Added subscriber: @iss

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

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

Can you upload sample .blend file that we can investigate?

Can you upload sample .blend file that we can investigate?

thx for looking into the issue.
Here is the link to the example file.
https://www.dropbox.com/s/cougeh7xhujnvp2/DynPaint_2-81.blend?dl=0

This technique is used in my Addon "Advanced Ocean Modifier" where you can get the descriped path quickly with a few clicks. Be welcome to use it for your investigation (or fun):
https://www.dropbox.com/s/6ki5mhe6vy8p8lc/AOM_2-80_V6.zip?dl=0
in the n-panel of 3D Viewport, Advanced Ocean tab, press "generate ocean". then choose an mesh object (e.g. standard cube) and press float object(s). It does what what is described above + Oceananimation, Ocean material...

don't hesitate to ask if you need more information

regards Björn

thx for looking into the issue. Here is the link to the example file. https://www.dropbox.com/s/cougeh7xhujnvp2/DynPaint_2-81.blend?dl=0 This technique is used in my Addon "Advanced Ocean Modifier" where you can get the descriped path quickly with a few clicks. Be welcome to use it for your investigation (or fun): https://www.dropbox.com/s/6ki5mhe6vy8p8lc/AOM_2-80_V6.zip?dl=0 in the n-panel of 3D Viewport, Advanced Ocean tab, press "generate ocean". then choose an mesh object (e.g. standard cube) and press float object(s). It does what what is described above + Oceananimation, Ocean material... don't hesitate to ask if you need more information regards Björn

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

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

I can confirm the issue.

When I

  • disable constraint
  • add location keyframes to confirm, that cube draws
  • re-enable constraint

Cube now follows cylinder and also draws on plane

I can confirm the issue. When I - disable constraint - add location keyframes to confirm, that cube draws - re-enable constraint Cube now follows cylinder and also draws on plane

Added subscriber: @mont29

Added subscriber: @mont29

Changed status from 'Confirmed' to: 'Archived'

Changed status from 'Confirmed' to: 'Archived'
Bastien Montagne self-assigned this 2020-01-22 09:36:46 +01:00

Thanks for the report, but no bug here, this set-up is not expected to work, as position of the cube depends on the results of the dynamic paint evaluation, it cannot be used for it… Depsgraph does infor you about those dependency cycles:

Dependency cycle detected:
  OBPlane/Geometry Component/GEOMETRY_EVAL() depends on
  OBCube/Transform Component/TRANSFORM_FINAL() via 'Dynamic Paint Brush'
  OBCube/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done'
  OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Copy Location'
Dependency cycle detected:
  OBPlane/Geometry Component/GEOMETRY_EVAL() depends on
  OBPlane/PointCache Component/POINT_CACHE_RESET() via 'Point Cache -> Geometry'
  OBCube/Transform Component/TRANSFORM_FINAL() via 'Point Cache'
  OBCube/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done'
  OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Copy Location'
Dependency cycle detected:
  OBPlane/Geometry Component/GEOMETRY_EVAL() depends on
  OBPlane/PointCache Component/POINT_CACHE_RESET() via 'Point Cache -> Geometry'
  OBCube/Transform Component/TRANSFORM_FINAL() via 'Point Cache'
  OBCube/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done'
  OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Copy Location'
Detected 3 dependency cycles
Thanks for the report, but no bug here, this set-up is not expected to work, as position of the cube depends on the results of the dynamic paint evaluation, it cannot be used for it… Depsgraph does infor you about those dependency cycles: ``` Dependency cycle detected: OBPlane/Geometry Component/GEOMETRY_EVAL() depends on OBCube/Transform Component/TRANSFORM_FINAL() via 'Dynamic Paint Brush' OBCube/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done' OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Copy Location' Dependency cycle detected: OBPlane/Geometry Component/GEOMETRY_EVAL() depends on OBPlane/PointCache Component/POINT_CACHE_RESET() via 'Point Cache -> Geometry' OBCube/Transform Component/TRANSFORM_FINAL() via 'Point Cache' OBCube/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done' OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Copy Location' Dependency cycle detected: OBPlane/Geometry Component/GEOMETRY_EVAL() depends on OBPlane/PointCache Component/POINT_CACHE_RESET() via 'Point Cache -> Geometry' OBCube/Transform Component/TRANSFORM_FINAL() via 'Point Cache' OBCube/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done' OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Copy Location' Detected 3 dependency cycles ```
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
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
3 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#71166
No description provided.