Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Obi Rope and VR
#1
Hello, I am developing a VR application in which its user will connect different kinds of cables to appropriate devices. I wonder whether to buy your ObiRope asset. I have a couple of questions.
1. How will a created rope/wire behave during a teleportation if an application user holds it in his hands when: a) one end of it is connected to an unmovable object while the other one is movable b) both ends are movable? The user will only be able to grip a connector - e.g.  a HDMI connector instead of a jacket of the wire. 
2. How much does the asset affect efficiency? Are 30 wires able to make a significant difference to efficiency? How much is a cpu used by the asset?
3. Will it be possible to get a refund if the asset doesn't work well with my application?
4. Is it hard to use Obi Rope for a beginner in Unity?
Reply
#2
(05-08-2018, 04:48 PM)Peny22 Wrote: Hello, I am developing a VR application in which its user will connect different kinds of cables to appropriate devices. I wonder whether to buy your ObiRope asset. I have a couple of questions.
1. How will a created rope/wire behave during a teleportation if an application user holds it in his hands when: a) one end of it is connected to an unmovable object while the other one is movable b) both ends are movable? The user will only be able to grip a connector - e.g.  a HDMI connector instead of a jacket of the wire. 
2. How much does the asset affect efficiency? Are 30 wires able to make a significant difference to efficiency? How much is a cpu used by the asset?
3. Will it be possible to get a refund if the asset doesn't work well with my application?
4. Is it hard to use Obi Rope for a beginner in Unity?

Hi,

1.- If you teleport one of the ends (or both) without deactivating the rope first, it will bounce around due to the sudden change in kinetic energy. This is true for all constraint chains in any physics engine: you must either teleport the entire chain (all particles in the rope) or deactivate the simulation, teleport, reactivate it.
2.- It entirely depends on the resolution and length of your wires. The number of wires is completely irrelevant to performance.
3.- Yes.
4.- Not hard for a beginner in Unity if you've used other game engines, but all Obi assets assume you're pretty comfy with simulation and game physics. Terms like convergence speed, time step, mass ratio, etc. should sound familiar to you if you want to make the most out of Obi.
Reply
#3
Thanks for your answers.


1. According to rope behavior, what I meant was: is there a possibility of anything weird happening like e. g. while I was making a rope out of RigidBody capsules connected with joints. (During teleportation or quick moves, the whole line wobbled wildly through whole scene.)
2. Ok, which total length of the lines won’t cause problems for Intel’s 4-core or 6-core processor? Or number of cores doesn`t have impact on Obi Rope? 
4. Unity is my first game engine. I need your asset for creating simple ordinary cables, familiarity with all those terms is really required? ? ????
Reply
#4
(08-08-2018, 10:04 PM)Peny22 Wrote: Thanks for your answers.


1. According to rope behavior, what I meant was: is there a possibility of anything weird happening like e. g. while I was making a rope out of RigidBody capsules connected with joints. (During teleportation or quick moves, the whole line wobbled wildly through whole scene.)
2. Ok, which total length of the lines won’t cause problems for Intel’s 4-core or 6-core processor? Or number of cores doesn`t have impact on Obi Rope? 
4. Unity is my first game engine. I need your asset for creating simple ordinary cables, familiarity with all those terms is really required? ? ????

1. Obi is unconditionally stable, which means the simulation will never blow up, jitter, or become "crazy". However unexpected things can happen if you don't fully understand what you're doing. Teleporting physical simulations around a scene requires you to reason about the order in which things happen in the engine to avoid adding energy to the simulation. The correct order should be: #1 simulation stops #2 teleport #3 simulation restarts. Since Unity performs physics during FixedUpdate(), this usually requires you to stop the simulation, teleport the object, make a coroutine that uses WaitForFixedUpdate(), then resume the simulation.

2. In addition to rope length, it depends on rope resolution (how many particles per length unit), what level of rigidness you need, whether you need self-collisions or not, how accurate you need rendering to be, and lots other things. As a rough estimate, 3000 particles can be run comfortably on most 4-core processors, including meshing and rendering. At average resolution, and assuming they are part of multiple ropes, you'd be able to simulate around 200 short ropes before encountering performance issues.

3. It is essential. Not just for working with Obi but with pretty much all physics engines, specially when trying to make non-trivial things (constraint chains, of which ropes/cables are an example, are one of them). In addition to that, many engines limit your options or hand-hold you a lot to make things easier, but Obi does the opposite: it leaves all options open for you to explore and achieve exactly what you want, no artificially imposed limits. Knowing how to get there requires some knowledge, though.

Also, the definition of "simple, ordinary cables" varies a lot from person to person. I've seen similar terms used to refer to the cable setup for a piece of industrial machinery, which ended up requiring engineering-grade simulators. Cables are only simple to simulate if they don't have to support the weight of other objects, if they don't self-collide or collide with other cables, and if they're relatively short (less than 3-4 meters). Obi can do all these things, but increasing levels of understanding are needed to achieve them.
Reply
#5
Hi,
I have bought Obi Rope asset. Unfortunately, I have encountered several problems and I need assistance.
1. Importing Obi Rope asset to my VR project as well as to blank project (Unity 2018.2.10f1) causes many warnings and errors. (error1.jpg errror2.jpg error3.jpg)
Should I be worried about this?
Using the asset also causes errors, like when I duplicated an Obi Rope element (error4.jpg).
2. I noticed that adding a new rope causes a massive fps drop. Having couple dozen ropes with defult lenght, thickness 0,01 ,42 particles  and damping 0,94 in a scene leads to less than 20 fps. I occurred to me that ObiSolver.FixedUpdate for every rope happens in Main Thread. Does Obi Rope not make use of multiple core processors? Is everything being done using only one? Additionally, I discovered that a CPU usage is almost the same whether Obi rope is enabled or not.  (Obi rope usage1.jpg, Obi rope usage2.jpg)
3. In order to make a rope the stiffest (to simulate e.g. a HDMI cable), what settings should be set on? I experimented with damping, but the results were rather disappointing.
4. Based on the documentation, as I understand, every rope should have its own component Obi Rope, Obi Solver and ObiBezier or ObiCatmullRom? 


Attached Files Thumbnail(s)
   
Reply
#6
(30-09-2018, 02:00 PM)Peny22 Wrote: Hi,
I have bought Obi Rope asset. Unfortunately, I have encountered several problems and I need assistance.
1. Importing Obi Rope asset to my VR project as well as to blank project (Unity 2018.2.10f1) causes many warnings and errors. (error1.jpg errror2.jpg error3.jpg)
Should I be worried about this?
Using the asset also causes errors, like when I duplicated an Obi Rope element (error4.jpg).
2. I noticed that adding a new rope causes a massive fps drop. Having couple dozen ropes with defult lenght, thickness 0,01 ,42 particles  and damping 0,94 in a scene leads to less than 20 fps. I occurred to me that ObiSolver.FixedUpdate for every rope happens in Main Thread. Does Obi Rope not make use of multiple core processors? Is everything being done using only one? Additionally, I discovered that a CPU usage is almost the same whether Obi rope is enabled or not.  (Obi rope usage1.jpg, Obi rope usage2.jpg)
3. In order to make a rope the stiffest (to simulate e.g. a HDMI cable), what settings should be set on? I experimented with damping, but the results were rather disappointing.
4. Based on the documentation, as I understand, every rope should have its own component Obi Rope, Obi Solver and ObiBezier or ObiCatmullRom? 

1. Restart Unity after importing ObiRope to make the .dll error go away. Unity cannot hotload native plugins (.dll, so, bundle, etc), it requires a restart.

The second error is a bug in Unity, has nothing to do with Obi. Fortunately, you can safely ignore it:
https://issuetracker.unity3d.com/issues/...or-message

2. It depends on what update mode you're using, and what your timestep is. The default is FixedUpdate, with a timestep of 0.02. This might cause FixedUpdate() to be called more than once per frame, which can result in death spiralling.

Obi is fully multithreaded (it uses a job-stealing task manager to automatically distribute the workload among cores) and uses SIMD for math operations.

3. Increase distance constraint iterations, increase the amount of substeps, or reduce the timestep. Increasing damping simply decreases the amount of kinetic energy of particles (making everything look like it is underwater, or moving trough very thick air), it has nothing to do with rope stiffness.
See:
http://obi.virtualmethodstudio.com/tutor...gence.html
http://obi.virtualmethodstudio.com/tutor...olver.html

You can also use tether constraints if some parts of your cables are fixed/pinned:
http://obi.virtualmethodstudio.com/tutor...aints.html

4. Nope. You can (and usually do) have one solver shared by many ropes, to better utilize resources. Also, you can have only one ObiBezier/ObiCatmullRom shared by many ropes. The solver is in charge of simulating the ropes and managing particles/constraints, the bezier/catmullrom curves are "blueprints" that define the shape of a rope.
Reply
#7
Hi there,
I tested in V.R and it runs extremely well...   but as the admin mentioned, teleporting will cause the rope to act erratically.  IT does settle after a sencond or two.
Reply