Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  ObiSolver.Lateupdate() bad performance
#4
(16-12-2019, 04:58 PM)TheMunk Wrote: Using Obi 4.1.

Yes i guessed thats how particles and rendering was done, but whats bugging me the most is that it isn't the physics simulation that takes time but it seems to be the rendering and updating of the mesh/line. Isn't the line renderer supposed to increase performance "dramatically"? Weird when i don't seem to gain much more than 1-2 ms on the 3 ropes.
(thanks for the quick answer)

Rendering has received quite an overhaul in 5.0, it's 20-30% faster than in 4.X. That's why I asked.

Thing is, simulation is performed using our own multithreaded physics engine, written in C++, with hand-optimized SIMD. Rendering has to be performed in Unity, using Unity's vector math (which is terribly underperformant). So in many situations, rendering is more expensive than simulation (which I know is counterintuitive as the complexity of the simulation is much greater).

The line renderer improves performance because the amount of work done for each curve point is far less (just two vertices instead of 8 of the default section/extruded renderer). Even then, math in Unity is awfully slow compared to what can be done with proper vectorization in unmanaged code.

We expect this to change once we move to Unity's new mathematics library with support for vectorization and make use of Jobs and the Burst compiler.
Reply


Messages In This Thread
RE: ObiSolver.Lateupdate() bad performance - by josemendez - 16-12-2019, 05:03 PM