Page MenuHome

Crash when animating cloth
Closed, ArchivedPublic

Description

System Information
Multiple systems (tested with other users).
w7x64 (nvidia geforce gtx 560 ti), windows tp 64,

Blender Version
Broken: 2.72b, and confirmed with 5c6e333
Worked: n/a

Short description of error
High cloth repel distance crashes blender upon animate.

Exact steps for others to reproduce the error
Load attached .blend. Hit Alt-a. That should do it.
Turn repel distance down low (eg. .01) will animate without crash on my system.

Details

Type
Bug

Event Timeline

Jaggz H (jaggz) added a project: BF Blender.
Jaggz H (jaggz) set Type to Bug.
Jaggz H (jaggz) added a subscriber: Jaggz H (jaggz).
Jaggz H (jaggz) created this task.
Jaggz H (jaggz) raised the priority of this task from to Needs Triage by Developer.

With a large repel distance the amount of BVH tree overlap and subsequent CollPair allocation gets insanely high:

https://developer.blender.org/diffusion/B/browse/master/source/blender/blenkernel/intern/collision.c$651

I'm not sure what to do about this ... It could be a bvh tree bug, or maybe it needs some kind of limit check. We have a number of places where memory requirements can blow up (e.g. subdiv levels), but we currently just expect users to use sane values, which is not always easy because the relation of memory size to settings can be quite abstract, like in this case.

Lukas Toenne (lukastoenne) triaged this task as Confirmed, Medium priority.Nov 12 2014, 1:37 PM

Technically i would not even consider this a bug. The "repel distance" is a dangerously misguiding feature IMO, it's not clear to users that this can have a profound effect on how the simulation happens.

For an efficient solution it's necessary to limit the influence of geometry to it's actual extent in space, otherwise the BVH tree cannot optimize any intersection tests - cloth collision can only happen at the place where there actually is cloth, not at some imaginary extended boundary far away from discrete mesh elements. Modern cloth collision algorithms don't work with penalty forces in the first place, so there is much less need for such hacks to prevent (self-)intersections.

Sergey Sharybin (sergey) closed this task as Archived.

Well, it is always possible to find a case when old algorithm will run out of memory. But technically speaking it is not a bug but an optimization TODO. Mentioned this report in cloth TODO list: http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Tools#Cloth

Thanks for the report, but closing it now. The system currently works as it was designed to.