RBD sim ignores mesh (cloth) deformation #91183
Labels
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
8 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#91183
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 461.92
Blender Version
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-09-03 21:49, hash:
716682365c
Worked: BLENDER 2.79b
Open below file and press play. RBD sim ignores mesh deformation and reacts to its undeformed state instead. The setting of 'deforming' shown below is ignored in versions after 2.79b:
rbd sim ignores mesh deformation .blend
Here's another file, this time using an alembic as the deforming object. It still acts as though the mesh is not deforming...which is strange considering it's an imported deforming object.
rbd sim ignores mesh deformation on imported USD as well .blend
All works as expected in 2.79b
279b physics .blend
2021-09-04 19-46-49.mp4
Added subscriber: @3di
#94036 was marked as duplicate of this issue
Added subscriber: @EvertonSchneider
Hi! I can confirm it. The cloth modifier is not being considered on RBD "convex hull" shape and "deform" source and not even using "final" source which describes as considering "all modifiers". Tried "mesh" shape also but same result on every source mode...
But, I noticed that the "simple deform" modifier gets detected using the "mesh" shape and "deform" as source and also checking the "Deforming" checkbox right below (which I think is very annoying having to check a deforming checkbox even using deforming source... it's redundant) Check the file to see it working:
RBD_MeshDef.blend
Added subscriber: @HooglyBoogly
Added subscriber: @lichtwerk
Changed status from 'Needs Triage' to: 'Confirmed'
Can confirm, problem of the 2.8 depsgraph it seems (was also not working in 2.79 with the
--enable-new-depsgraph
option)Added subscriber: @ZedDB
@ZedDB: interested?
RBD sim ignores mesh deformationto RBD sim ignores mesh (cloth) deformationAs this stops the entire physics system working, and because it's been an issue for a few years, could this be considered a higher priority than normal? I don't think it's ever going to get addressed otherwise.
OK, I have a fix for this [ but still have to verify it is the right thing to do :) ]
Whoaa, that's impressive. I'd be amazed if there aren't a few hundred related bugs that you'll be fixing in one swoop! Any chance of sharing the diff? I was just about to mess about moving everything to 2.79 as alembic, and then shrinkwrapping for collisions. Staying in 3.0 alpha would be great.
I am still investigating (getting deeper and deeper here -- this involves depsgraph issues where some stuff isnt available when needed -- will try to explain in detail when I put a final patch up).
So the very short answer would be: start blender with
-t 1
(one thread) and remember to have it onMESH
andDeforming
ON :) -- things should be fine thenThen if you have multiple threads, this is the bandaid for now:
P2375: T91183_bandaid
Like I said, this will all change once the threading issue is out of the way (the baindaid just builds a new collision shape for the case it fails), stay tuned...
Would like to hear if
-t 1
is also a workaround for your cases.awesome, thanks!
-t 1
working for you (without patch)?Just having a drop of lunch, will let you know as soon as I get back.
Just tested with the -t 1 workaround in 2.93, and I find that collisions don't work at all. Opening the same file again without the -t 1, and collisions work again.
hmm, I think that has something to do with the caching, because if I try it several times by playing and then rewinding, eventually it works with non deforming objects, but deforming objects don't get recognised at all.
3.0 the t -1 fix works, but caching during playback stops working after a variable number of frames. using the bake button works.
ah, just realised why that was because frame dropping was turned on. So yeah, that's a great workaround for now thanks!
Sorry @lichtwerk , it's all over the place, I thought it was just a case of frame dropping being turned on that was causing the collisions to intermittently not work, but I've baked several times now and sometimes it works and others times it doesn't. There doesn't seem to be any logic to it, it's just random. I'll head over to 2.79b for now as I have to get this project done.......if I can get armature weights to carry over (which seems impossible at the moment).
does the patch work better?
I don't have time to download everything and build at the moment (running behind on this project). If you have a windows build available, drop me the link and I'll quickly try it out .
Hi @lichtwerk Just tried the patch. It's very hit and miss. Sometimes it works, other times it doesn't. When it does work, it only works for part of the specified frame range defined in the simulation start and end frames. Other times blender hard crashes when trying to remove the rigid body physics from multiple objects.
I suspect a lot of the problems are cache related. Clearing the bakes doesn't delete the cache, you have to change a setting on one of the simulated object's RBD properties.
It's SUPER broken.
Just tried baking from the scene tab's bake button...it's baking around 10 x slower than 2.79b (even though 2.79b had approx 100x more cubes in the tower being knocked over..plus constraints between each object!). It got to 50% and then crashed blender.
I think you may have your work cut out for you :) I'll keep my fingers crossed for you though. You'll go down as a legend if you can bring working physics back to Blender after it being missing for 2 years.
Thx @3di for spending the time trying it out (even on a tight deadline)!
And sorry this bandaid wasnt working (it being slower was kind of expected since it has to rebuild the entire shape instead of just updating some positions).
Couldnt reproduce crashes so far [but have an idea why that might be the case and will check on that as well].
And yes, there are issues all around this area, will still try some more and sum up my findings (but might have to get other devs onboard as well if this turn into a timesink for me...)
All the best on the current project!
thx @lichtwerk , still tearfully battling the blender physics system :( Desperately trying to avoid renewing my Houdini licence after dedicating the last 2 years to building a business around teaching Blender.
Perhaps you guys could get in touch with your friends at Nvidia to see if they'll amend the licence of their flex system which is already practically GNU. Perhaps they'd be happy to make it fully GNU so you guys can have a fully unified phyiscs system. You can try the demo here:
https://github.com/NVIDIAGameWorks/FleX
Works on Nvidia and Amd GPU's.
Added subscribers: @JacquesLucke, @Sergey, @dr.sybren
As a triager, I am afraid I will have to step down and let the #nodes_physics module take over (as much as I'd like to get down to it it just eats too much time that is needed to fight other reports :/)
I can only raise awareness to @Sergey or @dr.sybren or @JacquesLucke perhaps, and yes since I have done that I would also think this deserves High prio.
👍
Is anyone looking at this?
To my knowledge nobody is working on this issue due to being busy in other projects.
This is not likely to have an easy fix, as the rigid body was violating some fundamental designs to make certain things appear to work. If we consider this a high priority issue we need to make sure there is a dedicated time from a developers allocated to look into solving those fundamental issues with the rigid body system design.
Added subscriber: @dfelinto
@Sergey: feel free to change priority back (or maybe @dfelinto might also have an opinion?)
We can also declare (some parts of) RB physics (or interaction between different simulation systems in general) EOL and make sure simulation integration in geometry nodes tackles this properly (or clearly states that this is not supported).
I just set the High priority because in its current form, it is a completely broken feature.
We need to do a deep clean/refactor of our rigidbody code to properly fix some other crashing issues that are there because of some very bad design choices in the current code that can't be fixed.
So as Sergey pointed out, I don't either think this will be a high priority issue because of the amount of planning and time this need to be fixed properly.
In general, none of our current physics sims interacts with each other in a good way.
Sometimes it might work, but that is mostly because of luck. This is because all is not most systems are not aware of each other in any way.
Hell even multiple cloth sims have trouble interacting with each other already.
To make that better we need to do even more rewrites and cleanups.
I did notice that everything works as expected if the collision mesh is set to anything other than mesh or convex hull. It does start having a schizoid embolism though, which can only be cleared by checking and unchecking the animated checkbox of the rigid body settings:
hmm, maybe I could cover the cube with particles, set the object they're instancing as animated rbd with sphere collisions, and then the particles would act as the collision rather than the meshes geometry.....
2021-09-20 14-27-26.mp4
yep, super messy workaround. It seems the bug isn't the physics system though, more to do with the depsgraph?
2021-09-20 15-12-42.mp4
Added subscriber: @mont29
This is certainly not high priority, as already said by others RB needs serious re-design... This is not even a bug actually, but rather a known issue.
For anyone arriving here with one of the other issues caused by this bug; for non-deforming rbd driven geometry which should act as a mesh shaped cloth collision . Duplicate object being driven by rbd, remove rbd from duplicate, parent to original, and then give duplicate a collision modifier (remove collisions modifier from parent/original):
2021-09-20 16-03-40.mp4