Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Assets Obi Particle Based Physics (Cloth, Rope, Fluid) thread

Discussion in 'Works In Progress' started by arkano22, Jun 30, 2015.

?

Performance vs compatibility

Poll closed Oct 9, 2015.
  1. I don't care about performance, keep my data intact please.

    0 vote(s)
    0.0%
  2. I don't care if I have to re-do some stuff, as long as it runs faster.

    14 vote(s)
    100.0%
  1. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    No, there is no minimum count for the topologies. Even single triangles can be turned into topologies, so there must be something particular about the low-poly geometry you're using. If you have used the subdivide tool, chances are it fixed whatever was the problem.

    Look out for lamina faces (faces with zero area), unconnected vertices, unconnected edges, zero-length edges...that kind of stuff. Maya's "cleanup" should take care of most of that, though.
    Also make sure your normals point in consistent directions, as that can sometimes affect triangle winding.

    cheers!
     
  2. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi everyone,

    ObiFluid 1.0 and ObiCloth 2.2.2 are under review, both introducing Android support. ObiFluid will be priced at 60€, as it is more complex (by far) than cloth or ropes. Like all other Obi assets, its price will never rise, no matter how much functionality is added in the future.

    Here's a sneak peek:


    Disclaimer: ObiFluid is a 100% multithreaded CPU simulator. GPU fluid simulators exist that will easily outperform it, but most will only run on very specific hardware, or with additional restrictions (e.g. grid-based, bounded simulations in 2D). ObiFluid does not use a grid, particles can go anywhere in the scene, they can interact with rigid bodies and all collider types, and both 2D & 3D are supported. Fluid simulation is quite math intensive, so use for small-scale fluid effects only (big pools of water, oceans, rivers and such are completely out of its reach... in realtime ;))
     
  3. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    280
    how configurable are the fluids? considering 0:53 in the vid
    can it be more like "honey" or water-like? or something in between?
     
  4. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Completely configurable. Here's an exhaustive list of parameters:

    - Density: determines the mass of each particle, and relates closely to rigidbody buoyancy.
    - Cohesion: determines how much particles stick to each other.
    - Viscosity: determines the fluid's viscosity.
    - Surface tension: determines the strength of surface minimization (spherical drops formation)
    - Buoyancy: determines relative density of the fluid compared to ambient (air) density. This can make the fluid float or rise, like smoke.
    - Atmospheric drag: amount of drag exerted by the air on border particles.
    - Atmospheric pressure: amount of inward force exerted by the air on border particles.
    - Baroclinic vorticity: scales the amount of vorticity generated as a result of buoyancy.

    For honey, crank up viscosity and cohesion. For water, set viscosity very low and crank up surface tension. :)
     
    Last edited: Aug 9, 2016
    Arganth likes this.
  5. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    280
    woah just sick :D
    cant wait
     
  6. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,271
    I forgot to say this is actually the back-facing shader that comes with Obi Cloth….
    Shadows looked the same with or without a normal map….
     
  7. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Obi's back-facing shader is just a slightly modified version of the Standard shader (normal flipping, that's all, just a minus sign), so the same stuff applies to both.

    It could then be just the way Obi updates normals (which is the standard area-weighted method) or the mesh topology, which makes triangles very apparent. Looks the same when I just call mesh.RecalculateNormals() however, so normal recalculation is working correctly.
     
    Last edited: Aug 9, 2016
    wetcircuit likes this.
  8. silentneedle

    silentneedle

    Joined:
    Mar 14, 2013
    Posts:
    280
    Hello Arkano,

    I'm currently looking for a solution to add cloth support for UMA generated character models. The problem here is that all information gets lost when UMA combines all body/cloth/equipment parts to one single mesh.

    I'm not sure if this would work, but my idea was now to find a cloth solution which allows to export the painted constraint information which will get imported after the final mesh has been generated.

    Does obi cloth contain such a feature? I've read about something called loading from texture, but unfortunately there is not much information about it. Maybe you could share some insights (or the documentation?), that would be great.
     
  9. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi silent needle,

    I´m not sure how UMA works, but I will try to answer this to the best of my knowledge.

    Obi uses a lot of per-vertex information (constraint stiffnesses, particle radii, mass, and some others) which can be imported from a texture. That simply means that you provide a texture map (painted in photoshop, exported from a modeling program, whatever) in which the color for each channel ranges from black to white, and Obi uses these as the per-vertex values for whatever you tell it to (mass, stiffness, etc). You can tell it to map the black-white values to a range of your choice, so it is even possible to reuse the same channels for several values.

    Supposing you paint these maps for each separate mesh in UMA, provided that the model UVs remain the same before and after it combines everything into a single mesh (which is the wise thing to do), you can then import them into Obi to set per-vertex values of your final combined mesh.

    A note on performance, though: Obi will perform better if the parts being simulated are separate meshes. So if you plan on adding simulation to a shirt, it's better to leave it as a separate mesh skinned to the same skeleton as the character's body.

    This is because Unity only lets you get/set skinned vertex values for a whole mesh at once. So if your character is 20.000 vertices and you are only simulating 1.000 of them, Obi will still have to move 20.000 vertices around in memory constantly, resulting in very poor performance.
     
    wetcircuit and silentneedle like this.
  10. silentneedle

    silentneedle

    Joined:
    Mar 14, 2013
    Posts:
    280
    That sounds very promising. I think it will work that way, thanks. :)
     
  11. sashahush

    sashahush

    Joined:
    Sep 5, 2012
    Posts:
    75
    Purchased!
    "ObiSoftbodies will use shape-matching constraints to allow for the whole range of soft body behavior (from completely rigid to elastic / plastic). No release date for this asset yet."
    This is excellent!
     
    arkano22 likes this.
  12. Carpe-Denius

    Carpe-Denius

    Joined:
    May 17, 2013
    Posts:
    828
    So, ObiSoftbodies will be a part of cloth or something new? I'd say I'm willing to buy that, too.
     
  13. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi Carpe,

    It will be a separate asset. The whole asset collection will be ObiCloth,ObiRope,ObiFluid and ObiSoftbodies. Integration between them will then tighten once all of them are out.
     
  14. tpenney

    tpenney

    Joined:
    Jan 21, 2013
    Posts:
    1
    Hello Arkano I am so excited to use your new system. I used to make many artworks using the pressurised cloth features of the old cloth system.

    I am having the same issue as Paul here, however it is only on my Mac computer that the particle editor does not appear. I can see the particle editor on my PC. I am not familiar with using code to change the editor, so I can't figure out the problem and I couldn't see any solution to this. There are no errors in the console. I am using Unity 5.4. Maybe it's an issue with the new Unity, as you suggested.

    Thanks again
    Tom
     
  15. sashahush

    sashahush

    Joined:
    Sep 5, 2012
    Posts:
    75
    Hi there,
    I'm very new to ObiCloth so its probably something i missed. But if i load a simplecloth scene and select the cloth and click "Edit Particles" I get a bunch of errors:

    Unable to find required resource at 'Editor Default Resources/EditorParticle.mat'
    UnityEditor.EditorGUIUtility:LoadRequired(String)
    Obi.ObiParticleActorEditor:CreateParticleMaterial() (at Assets/Obi/Editor/ObiParticleActorEditor.cs:171)
    Obi.ObiParticleActorEditor:OnSceneGUI() (at Assets/Obi/Editor/ObiParticleActorEditor.cs:180)
    UnityEditor.DockArea:OnGUI()

    I'm using 5.3.4f1 unity.
    I'm importing the asset from the asset store window.

    Is there a step i'm missing to setup this asset?

    Cheers!
     
  16. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi sashahush,

    Yes, you're missing the installation procedure. Check either the readme or the quickstart guide, and you will find the required steps there. This particular error appears because Obi/Gizmos and Obi/Editor default resources folders haven´t been moved to /Assets.

    cheers!
     
    Last edited: Aug 16, 2016
  17. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi Tom,

    I usually develop on Mac, and I´ve never had problems with the particle editor not appearing. Furthermore, the editor rendering code is mostly standard Unity stuff, should work unless something is going really wrong in Unity's side. Can you send me a project/scene where this is consistently reproducible?
     
  18. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,570
    My bank have implemented 2 steps authentications through mobile (don't have one) and now I'm locked from buying this, I'm cursed :(
     
  19. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744

    Hi Tom,

    I´ve been looking into this and it seems to be related to the recently introduced editor retina screen support. (I bet your Mac has a retina screen). I´m working on a workaround, will keep you up to date on this.

    cheers,
     
  20. web76

    web76

    Joined:
    Nov 4, 2009
    Posts:
    141
    Hi, just bought your asset, cloth and rope, regarding rope I am most interested in lifting Heavy Equipment through blocks and using extencible rope..
    But I could not find the "rope constraint" that is supposed to get the rope to not stretch..?

    Edit: Found that you had changed it to Chain constraint...
     
    Last edited: Aug 18, 2016
    arkano22 likes this.
  21. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Yes, it has been finally named "chain constraint". Remember than chain constraints trade stability for inextensibility. If you find out your rope jitters when trying to lift heavy objects, increase the amount of iterations spent in chain constraints.

    cheers!
     
  22. jgilbert

    jgilbert

    Joined:
    Aug 20, 2014
    Posts:
    10
    Hey, I asked a while back about Linux support, is that still on the radar? You mentioned needing to get Android out the door first, sounds like that is done.

    We have shied away from adding more cloth content to our game because we have had such a difficult time getting the built-in cloth component to work well.
     
  23. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    280
    oh obi fluids is live :)

    could you create some demos (especially demanding ones)
    so performance can "felt" :)
     
    macdude2 and hopeful like this.
  24. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Linux support is still on the roadmap, but there are quite a few things before it. Most of them about ease-of-use (automatic installer, better workflow) and documentation. Android is now supported, so it has been checked off the list :).

    I hope to add linux support before the end of this year (that's 4 months to go...). Keep in mind that adding new platforms also slows down the general development, as things have to be tried and tested in multiple environments, usually several times while they are developed. That's why I tend to interlace new features/new platforms.

    cheers!
     
  25. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Yes it is! (that took a while to get approved, phew).

    I will generate some demos and add a video to the asset description, but don´t expect spectacular performance as I said. Not that Obi Fluid is slow per se, but fluid simulation is very expensive (if you do the real thing). On my laptop (core i5), 2000 particles @ 60 fps including rendering. Enough for pretty effects and small fluid-related gameplay mechanics, but you won´t be creating a waterfall with it. ;)
     
  26. Project-Mysh

    Project-Mysh

    Joined:
    Nov 3, 2013
    Posts:
    223
    Hi there,

    In some cases, your 2 side shader solution (using 2 materials) are causing some overstep showing artifacts in the faces. Is there any solution about this?

    P.D: Can you fix all the warnings about scripts missing on the samples of the package? I think some of the missings are causing performance drops, like in the cloth rigidbody interaction sample. Using unity 5.4.0f3.
     
  27. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi Project-Mysh,

    Can you specify what do you mean by "overstep" artifacts? The backfaces shader is just a slightly modified Standard shader, so it should behave exactly like the standard Unity shader in all cases.

    There should be no warnings about missing scripts at all, in any of the scenes. If you have missing scripts, either you haven´t installed Obi (move /Obi/Gizmos and /Obi/Editor default resources to /Assets) or there's something going wrong elsewhere. In any case, missing script warnings do not affect performance at all, since Unity only checks for them once. :)
     
    Last edited: Aug 19, 2016
  28. Project-Mysh

    Project-Mysh

    Joined:
    Nov 3, 2013
    Posts:
    223
    Maybe with screenshots.
    Scripts errors in one of the sample scenes (ClothRigidbodyInteraction):
    error.jpg

    Project (tested with editor folder on the root and inside Obi):
    Sin título-1.jpg

    Problem with cloth double material:
    shader.jpg
     
  29. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi Project-Mysh,

    I´ll look at these errors, but I can´t get them to appear. I don´t see any components with missing scripts in the inspector of these objects, so it's not possible for these errors to show up. Check for components with no scripts and delete them if present, but again, there aren´t any missing scripts in any of the components here. Might be a bug in Unity?

    About the problem with the material, it's got nothing to do with the material or the shader, and it's not a bug at all. It's just that the geometry is intersecting itself because both bending constraints and self-collisions are disabled for these flags. This is completely normal for realtime cloth (also happens with Unity cloth and just about any deformable geometry). If you remove the backfaces material, you won´t see this happen because the backfaces won´t be drawn at all, thus you only see front faces even if backfaces are occluding them.

    Check the "wind" sample scene to see a flag with self-collisions enabled, you won´t see any intersections there because collisions prevent the flag geometry from intersecting with itself. The materials and shaders used are exactly the same. Note that self-collisions come with a performance hit.

    cheers!
     
  30. warbo336

    warbo336

    Joined:
    Jul 31, 2013
    Posts:
    1
    Hi There!,

    Loving your program so far but I am running into quite a few serious issues when setting up my cloth. I have been running into an issue where I can alter or set the SKIN_RADIUS or SKIN_BACKSTOP variables within the edit particles editor as when I do try and set them or even select them and I believe being unable to alter these is causing some of the more serious issues my mesh is suffering from to do with such as insane stretching issues. is there any way to fix this?

    These are the errors specifically:

    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[System.Single].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    Obi.ObiClothEditor.GetPropertyValue (ParticleProperty property, Int32 index) (at Assets/Obi/Editor/ObiClothEditor.cs:145)
    Obi.ObiParticleActorEditor.DrawParticles () (at Assets/Obi/Editor/ObiParticleActorEditor.cs:292)
    Obi.ObiParticleActorEditor.OnSceneGUI () (at Assets/Obi/Editor/ObiParticleActorEditor.cs:200)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2034)
    UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1381)
    UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1218)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

    &

    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[System.Single].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    Obi.ObiClothEditor.GetPropertyValue (ParticleProperty property, Int32 index) (at Assets/Obi/Editor/ObiClothEditor.cs:145)
    Obi.ObiParticleActorEditor.DrawSelectionToolUI () (at Assets/Obi/Editor/ObiParticleActorEditor.cs:730)
    Obi.ObiParticleActorEditor.DrawUIWindow (Int32 windowID) (at Assets/Obi/Editor/ObiParticleActorEditor.cs:527)
    UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:485)
    UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1894)
    UnityEditor.DockArea:OnGUI()



    Thanks.
     
  31. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744

    Hi Warbo!

    Probably your mesh isn´t skinned (has a regular MeshRenderer instead of a SkinnedMeshRenderer) and that's why you're seeing this error. SKIN_RADIUS and SKIN_BACKSTOP aren´t defined for unskinned meshes. In the next update these particle properties will not show up in the editor for unskinned meshes as it makes no sense trying to edit them.

    Stretching is however not caused by this, and is inherent to any cloth simulation. You can reduce stretching by either:
    - Increasing the amount of distance constraint iterations in your solver (default is 3). This will improve convergence, at a moderate cost.
    - Setting up tether constraints, which will "anchor" particles to the nearest fixed particle directly, avoiding stretching altogether for very low cost. However this will only work if your cloth has at least 1 fixed particle. Take a look at: http://obi.virtualmethodstudio.com/tetherconstraints.html
     
  32. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi everyone,

    I reach out to you with one question in mind. I´ve been looking at several ways to improve cloth performance, and found a pretty nice one. This particular optimization however, would cause cloth tearing support to be dropped, and rope tearing support to never be added.

    Technical reason: the optimization in question involves processing cloth distance and bend constraints in parallel in groups of 4, using SIMD instructions. This however requires that no two constraints sharing one particle can be processed together, due to how gauss-seidel solvers work. To ensure that this doesn´t happen (in an efficient way), constraints would have to be sorted when first added to the solver, so that constraints adjacent in memory do not share particles. This means that when adding new constraints (such as when the cloth tears), the whole thing would have to be re-sorted, resulting in awful tearing performance. At this point, tearing would be so slow that it would have no use at all.

    So it's either simulation & tearing, or faster simulation & no tearing. How much faster? about x2.5. The benchmark scene (32 flags, 512 triangles each) goes from 55-60 fps to 135 fps in my core i5. This is probably the same reason why Physx 3.x dropped tearing support, in favor of a faster solver.

    What would you prefer? do you think tearing/cutting is a dispensable feature?
     
  33. chiapet1021

    chiapet1021

    Joined:
    Jun 5, 2013
    Posts:
    604
    I would say tearing/cutting is much more niche and worth dropping for the performance improvements, which will benefit your overall customer base much more. That being said, I can understand a customer who does use that feature would be upset if you were to drop it.

    But yes, I at least would prefer you drop the tearing/cutting feature, if it means that much of a performance enhancement!
     
  34. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,271
    2.5x??? No contest.
     
  35. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,193
    I'm not an owner of Obi Cloth yet, and I can't think of where I would use cloth tearing - I'm more likely to want to prevent it, I think - so I would be all for the performance improvement.

    However, I wonder if it is possible to keep the current version, which does include tearing, and have it available as a deprecated older version for compatibility with projects that might currently be using the tearing feature.
     
    ElectroMantis likes this.
  36. ElectroMantis

    ElectroMantis

    Joined:
    Sep 15, 2013
    Posts:
    78
    As a prospective buyer myself I think this is the best way to go.
     
  37. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,570
    I was counting on tearing as soon as I had resolve my banking system, why not have both? could that be triggerable or taggable? I mean some cloth would have tearing while most other would run without (as generally you don't want tearing everywhere but on specific objects ...).

    I need tearing i_i (and a new bank)
     
    hopeful likes this.
  38. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    284
    Hmm... What if we installed two versions of Obi cloth? One with tearing, and one without (with increased performance). Performance is always important, but also, someone may be making a shooter or something, and counting on Obi cloth tearing for some eye candy or even unique gameplay scenario. You would only apply the tearable version in scenes that need it - if this is all possible of course.
     
  39. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi neoshaman,

    Tearing is currently selectable per-cloth (you can have tearable and not-tearable cloth pieces), but having just one tearable cloth would require the solver to rearrange all current constraints in memory each time an edge tears, which is why the optimization isn´t compatible with tearing.

    I´m thinking of a way to allow constraints to be grouped depending on whether they need to be dynamically created or not, disabling pre-sorting for dynamic constraints. This would however require to have two different solver paths, for sorted and un-sorted constraints (SIMD and regular path). And this, for each type of tearable constraint (distance, bend, aerodynamic and tether) which would significantly increase the complexity of the code. :(

    I will try to think some more about this, and see it there's an easier way to achieve both things at once...but seems unlikely.
     
  40. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi Deckard,

    The main drawback of this is that I´d need to maintain and ship two entirely different solvers. It is not impossible to do, but it is way too much work (and a bit confusing for the user, too). It's already a lot of work with just one! :p
     
  41. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    284
    @arkano22 I Understand. It would be foolish to not go for the performance improvement then, especially if it really is 2.5x more performant - just a shame to see tearing cloth removed as a feature.
     
    chiapet1021 and Nateply like this.
  42. Nateply

    Nateply

    Joined:
    May 20, 2014
    Posts:
    46
    @arkano22 Who can argue that 2.5X faster is always better with anything in Unity. However, how poor is cloth performance right now? As you posted earlier, you're now getting 55-60fps with 32 flags, which seems like (to me) a lot of cloth to be simulating on camera at once. Would that amount of cloth be considered a stress test, or a typical amount for a "normal" scene? The videos on your asset store page don't indicate any issues, as the examples all look fine. Current performance doesn't seem to be a real problem from what I can see. I'm not an owner of Obi-Cloth (yet), but tearing is/was one of the draws that put it on my watch list. Several use cases spring to mind for keeping the tearing option. Cannonballs blowing holes in a ship's sails. Shooting projectiles thorough the side of a tent, awnings on a building, or into a hot air balloon. Tearing material on a character's costume. By removing a chunk of functionality of the package as a whole by dropping the tearing, I'd suspect that a few potential buys will hold off. Unless the 2.5X faster is truly necessary to keep the non-tearing cloth performance functional, I vote to keep tearing.
     
    Last edited: Aug 28, 2016
    hopeful likes this.
  43. ElectroMantis

    ElectroMantis

    Joined:
    Sep 15, 2013
    Posts:
    78
    One of the things that was attractive to me in this asset was the clever use case for simulated vegetation. This would probably be one area where a speed increase would be beneficial (for allowing more possible plants on the screen at a time).

    While I thought the tearing was neat, it always seemed too artificial to me, mostly due to the way it just disconnected vertices to tear. It just sort of looked like square chunks peeling off. Regardless, it was a unique feature and I'm sure there are uses for it. I think in this case though, the speed increase would outweigh tearing.

    HOWEVER - Tearing would be something much more valuable in rope simulations I think. If the chances of an feature like rope extending/shrinking relying on tearing are high, I'd say leave tearing in the solver.
     
  44. eyier

    eyier

    Joined:
    Aug 29, 2016
    Posts:
    6
    Hello Arkano,

    I have purchased the rights.
    And tried to dropping the cloth from the air to the cube.
    But cloth will pass through the cube...

    I was operated along the tutorial.
    And, I've set the cube to [obi collider group].
    Why cloth is from passing through the plate ?
     
  45. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi eyler,

    Double check that the cube and the plane are in different layers, as indicated in the manual:
    http://obi.virtualmethodstudio.com/collisions.html

    cheers!
     
  46. abatcat

    abatcat

    Joined:
    Feb 8, 2015
    Posts:
    70
    Not a user yet , but curious about the solver. Any news about support for objects with thickness?
    I think in many cases , such as when modelling thick leather armour, thickness is really needed to make realistic looking cloth objects.
     
    VargaPD likes this.
  47. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Thick objects are already supported for non-skinned meshes. Support for skinned meshes is in the roadmap, but still a while to get to it.
     
    VargaPD likes this.
  48. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Hi Nate,

    Current performance is not an issue indeed, but faster cloth means more room for other stuff, which is always welcome. Also, mobile platforms will benefit a lot more from this as they're far less capable than desktop. I´ve been thinking and I think I found a relatively clean way to keep both tearing and the performance improvement. I still have to get to the depths of it, though, but looks promising.

    cheers,
     
    hopeful, chiapet1021 and Nateply like this.
  49. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Here's a very early video (recorded using a phone camera, to avoid screen-capture induced framerate drop) of the new batch-based architecture, which features both tearing and high-performance. 32 flags run at around 110 fps in my core i5.

    4 times that amount of flags run at 30-40 fps. Each flag has 800 distance constraints and 512 aerodynamic constraints, for a total amount of 167.936 constraints being processed in realtime. More than fast enough for any game, imho! For comparison, the current version runs 32 flags at 50 fps and 128 flags at 8 fps.

     
  50. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,570
    Can you freeze the current implementation for those who want it? what's missing on that? I'm always visualizing potential highlight and set pieces to immediatly distinguish my game. I was hoping for swashbuckling action, the trope of the character going down a big piece of cloth, using a knife, to land safely.
     
unityunity