JA-forreal
Zaz, what a project!
Yeah, tell me about it, :).
- Collision detection controlled on a chosen axis direction, with height values, depth, pressure, etc.
Hmm, why would you want to limit collision detection to an axis ? Explain height values, depth, pressure, etc. in this context please.
The expectation for collision detection would be to provide for self collision detection of the cloth to stop it from tangling, possibly with some stuff I’ve seen from pixar on untangling cloth once it tangles. I forget who put the link up for this, but it is a good paper.
As far as colliding with objects, my target is similar to the direction I was taking the topix work. The user would choose objects that they want the simulator to consider for collision detection with the cloth and what type of collision detection to use for those objects. If a collision is detected, the basic physical properties of the cloth and the relative speeds would determine the results.
This is basically an optimization because in any given scene its unlikely that the cloth will ever have a chance to come into contact with all objects in the scene. If the user really desires to have those tests run at the expense of time, they can simply choose all objects and add them to the collision object list(s).
-Cloth affected at least by object based particles. And object based particle source object maintains its set cloth dynamic attributes when added as a particle effect.
I think I need more explaination of this one also. Are we talking blender particles, like halo stuff ? Give me an example of how this would be used please.
-Maybe painted weights or selected face color can affect the strength of a cloth effect.
I think I understand this, but an example of how this would be useful might help. The topix work, when I had released it supported the concept of tagged vertices which weren’t deformed by the cloth simulator. I’ve generalized this some in the version I’m working on and renamed it to pinned which I think is a more generally used and intuitive term.
I think the pinned feature takes care of your “partial area” request and maybe the one in the quote directly above. I’m not sure from how I read your descrpition that a feature for this is needed if you can pin all but an area you want affected and specify the attributes of a cloth, like its stiffness, density etc. How would a feature allowing the user to specify the strength of the affect different than just specifying the basic properties of the cloth ?
-The cloth object must be able to collide with itself and react to other cloth objects. And collision surfaces must respond correctly to the force of the collision with the cloth surface. Maybe this could be guided by a value slider.
Generally I agree with this request, however a few caveats. The topix version only supported one cloth object. The initial release of my new work will also probably only support one cloth object. I have made my data structures support as many cloth objects as you want, but there’s a huge difference between what the data structures support and what the implementation does, :). Most notably, its definitely going to be tricky and costly to get two cloth objects to collide. Not impossible, but not a feature that’s going to make it in early at least.
I’m speaking of this in the sense that the two cloth objects would react to each other. In the topix stuff now, you could actually have two cloth objects collide by running the simulation on one, then a second simulation on the other. However, the cloth you simulated first wouldn’t react like cloth to the collision with the second cloth. Its this interaction that will cause this to get expensive as once two cloth objects collide, you’ll have to basically rerun the simulation for that time step to cause the collision effects to propogate.
As far as affecting other non-cloth objects, that hasn’t been planned yet. To me,the basic reason I’ve never considered this is the negligible affect the cloth would have on most objects it collides with. It’s likely going to be very hard for me to knock you off your feet by throwing a towel at you, a dry towel at least. What kind of objects and situations do you envision that it would be desireable to have the cloth somehow alter an object’s physical properties by colliding with it ?
Serialsiner
I just had an idea : cloth implementation could be useful to simulate long strands of hair but the strands should have to collide with several (more than 2) other cloth objects.
That’s my hope too, at least once the limitation of the Grid mesh is removed. It wouldn’t have all the features of a particle system, but you still might get some decent simulation of hair, fur, grass, etc. out of it.
The paper the topix cloth simulator is based on has this adjustment phase described in it. Basically it makes it so the cloth behaves more like cloth than rubber by putting a limit on how much the cloth can stretch. The stretching of the cloth is controlled by springs connecting the vertices, but the paper only deals with over stretching the springs.
I’ve got notes I made to myself about putting in a self correcting adjustment that would work with the compression of the springs. Think of it this way, when you crumple a cloth up, you’re compressing all these springs. The basic simulation doesn’t care about compression, so once compressed/crumpled, the cloth stays that way … like a piece of paper.
If it works, a big if, remember these are just thoughts I have, :), putting in a compression correction adjustment phase into the simulator should/might/could give the cloth a self correcting small force that would have it tend to uncrumple … more like real cloth.
Another big IF, in fact several big IFS. IF I get it to work with non-grid meshes, which I expect I will and definitely want to, you should be able to have it apply on grass. Apply a little wind and your grass waves in the wind. Have a character walk across it and it deforms where his feet touch it, i.e. footstep impressions in the grass. IF the compression correction I mention above works, slowly after your character walks away, the grass would tend to restore itself back into its original shape.
Hot and bothered yet ? I know I am, :).
Sorry, I shouldn’t tease everyone like that, myself included, ;). IF something like this ever works in the cloth simulator, it isn’t likely to happen soon. Remember, my target for release is to get something that replaces, probably with a few enhancements, the topix based implementation I worked on.
What happens after that depends on lots of things like my work schedule, my desire to keep burning lots of time on this, the participation of others, solving some technical problems, etc., etc.
As far as the topix based work goes, I haven’t heard back from topix and feel its unlikely I will. I’m working on another means of getting the work I did on the topix module released. I hope that that can happen soon, but no guarantees.
As far as my new implementation goes, the basic part of the simulation is coded, but not working. Not very unexpected with something like this. So, I’m into the fun work of debugging it. More research on collision algorithms is needed as I’m not sure I just want to stuff the same way the topix module did for several reasons. We’ll see what happens here. If the work required is high, I’ll probably default to performing self collision with spheres and similar object collision as I did in topix.
I won’t have time to make the feature list from this thread today, hopefully tomorrow.
Sorry for always writing tomes like this … its just the way I think, :).