New Softbody Features on blender post 2.42a alias CVS |
2006/11/22 |
|
|
|
misc | |
| Adjustable Rigidity | Rigidity Gives local structure stability for tough fabrics, thin steelplates .. even suzanne gets pretty crash resistant that way. It not only adds diagonals but all other "2edge-wide" springs so it somehow replaces stiff quads for meshes too. Spings will have a elaticity module E Stiff *Rigidity and will suffer the same damping E Damp. A value of 0 disables this option. | ![]() |
| Edge Collision | CEdge Past collision model did only know vertices to interact with colliding faces now, if edges (that is to be exact springs conneting edges ) are available, they can be used for collision detection. | |
| Face Collision | CFace Eleminates the last bits of peeking trough colliders. But makes solver really slow. ( I was about to remove this option .. hey well who ever pushes that button gets what he deserves ) For obvious resons that only works for meshes. | |
| Aerodynamics | Aero Edges can feel wind. Yet, a simple aerodynamic model of a straw sailing in the wind. Nice value approx. 30. | |
|
|
Self Collision | |
| Self Collision | Simple (naive) self collision. It actually simulates the vertices beeing surrounded by viscoelastic balls. Setting the size of the collision balls can be done manual (Man) or using the spring lenght to attached neighbours. Several statistics are available. The tooltips on Av Min Max AvMinMax should be descriptive enough. The elaticity module is B Stiff and the viscous part is done by B Damp like in the edge settings. |
![]() |
|
Pitfalls with self collision: Note: when a vertex, or better the 'watch out' collision ball sees other fellows that are not joining an edge, it has to assume to stay away. So now, we are with the possible ball sizes. Q: What if the distaces to next neigbours vary a lot? A: Then this is the wrong algo! ( sit down and find/code another better/faster one) Choosing MIN --> the shortest edge (spring) connected to the vertex will make the 'defense line' pretty poor --> gives leaks for other veritces to pass Choosing MAX --> the longest edge (spring) connected to the vertex will make the 'defense line' pretty tough BUT on the other hand the system will have to struggle out the balance between pushing in/out solver springs : 'spring says we got to get closer to A' solver CB : 'but we are colliding with B' so if A and B are in the 'collision ball' they'll fight and fight and fight and fight .. the solver is built to find the equilibrum .. but depending on the agressivity of the duellants it may take some time. .. you will know you did start a long lasting dispute, when the solver takes 200 steps/frame or more. Q: So why there are so many options AV MIN MAX MIN+MAX/2 A: Hum .. well .. put it there to leave it to the user to find out, which option matches to their problem. Q: Why can't we paint where to use AV MIN MAX MIN+MAX/2 A: Because it was not coded .. ( sit down and code .. is's a 80 liner at most ) |
![]() |
|
|
|
Extended Solver Control | |
| Extended Solver Control |
Internal changes in the collision system:
The collider chache now stores the state of the collider as seen
on the last call (frame). This way the motion of the collider in between frames
can be interpolated. In combination with the enforcable maximum step size the
solver is allowed to take this is suited to avoid the 'tunnel effect' -> fast
moving colliders are passing though the SB object without ever been 'seen'.
MinS: minimum numbers of steps per frame to be taken. Increase this number if the SB misses fast evolution of colliders. A value of 0 disables this option. MaxS: maximum numbers of steps per frame to be taken. Overrides the adaptive stepsize calulated form Error Limit if it gets too small. However the solution is less acurate then.A value of 0 disables this option. Fuzzy: The very last chance to get really fast collider situations integrated in limited time. This number is multiplied to the Error Limit when vertices are detected to be inside the collider. Trades off with the stability of the simulation. ( I was about to remove this option too .. but i then it turned out to do magic in some desperate situations .. so have mercy ) M: Monitor solver. Print the progress of the running solver during a frame on the console and finaly print how long it did take to advance one frame. Depending on the amount of vertices and the current collision situation (--> number of substeps needed) advancing one frame can take a while. For tweaking solver settings and to verify the system is still alive turn on this option Choke: calm down reaction of vertices/edges on collision events comment in code: /* bp->choke is set when we need to pull a vertex or edge out of the collider. the collider object signals to get out by pushing hard. on the other hand we don't want to end up in deep space so we add some 'viscosity' to balance that out */ Note: The Damping options works outside the collider. The zone defined by Outer can be seen filled with a sticky viscous fluid like on a flypaper. The Damping value controls the viscosity. |
![]() |
|
|
Demo | Demo |
The video SBAC.avi 70k divx5 was done with a experimental build (which had some bugs in ). A peek in .blend to see how it works ArCol001.blend |
![]() |
|
|
Regression file | |
| Regression file | The .blend file for regression suite sb_col_must_4_1.blend | ![]() |
|
|
Aero and Fuzzy collision | |
| Aero and Fuzzy collision | The .blend AEROFUZZY.blend | ![]() |
|
Link to refund that page |
| Link to refund that page | Click here Thanks :) |