Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Softbody Update
#1
Hello! Is there any news about the GPU backend for softbody? My project involves realistic humanoid characters, and I'm quite limited in maintaining realism with a low number of particles. I find myself in a dilemma between increasing resolution and severely impacting performance or opting for a low particle count with a larger skinning radius and/or more bones per vertex. The latter helps, but it introduces undesired deformations in joints, especially in knees, elbows, shoulders, etc.

I released the project a year ago when I acquired the asset, but for these reasons, I ended up choosing a combination of active ragdolls and shaders. However, every time I work on an update, I feel tempted to use Obi because I really love the interactions it provides. And since I'm currently working on a new update, I'm giving it another chance, lol.
Thanks in advance!
Reply
#2
(13-12-2023, 01:14 PM)SimonP Wrote: Hello! Is there any news about the GPU backend for softbody? My project involves realistic humanoid characters, and I'm quite limited in maintaining realism with a low number of particles. I find myself in a dilemma between increasing resolution and severely impacting performance or opting for a low particle count with a larger skinning radius and/or more bones per vertex. The latter helps, but it introduces undesired deformations in joints, especially in knees, elbows, shoulders, etc.

I released the project a year ago when I acquired the asset, but for these reasons, I ended up choosing a combination of active ragdolls and shaders. However, every time I work on an update, I feel tempted to use Obi because I really love the interactions it provides. And since I'm currently working on a new update, I'm giving it another chance, lol.
Thanks in advance!

Hi,

It's been in beta since May:
https://obi.virtualmethodstudio.com/foru...-3849.html

you can write to obi+beta@virtualmethodstudio.com stating your order number to get access to it.

kind regards,
Reply
#3
(13-12-2023, 01:22 PM)josemendez Wrote: Hi,

It's been in beta since May:
https://obi.virtualmethodstudio.com/foru...-3849.html

you can write to obi+beta@virtualmethodstudio.com stating your order number to get access to it.

kind regards,
Yeah, I had sent it right after that post, but I never received a response. Now I'm sending it again. Thank you!
Reply
#4
(13-12-2023, 06:22 PM)SimonP Wrote: Yeah, I had sent it right after that post, but I never received a response. Now I'm sending it again. Thank you!

We had lots of beta requests coming in at the beginning, so we may have missed yours. My apologies. I've sent it to you a few minutes ago, let me know if you don't receive it.

kind regards,
Reply
#5
(14-12-2023, 11:22 AM)josemendez Wrote: We had lots of beta requests coming in at the beginning, so we may have missed yours. My apologies. I've sent it to you a few minutes ago, let me know if you don't receive it.

kind regards,
No problem, I also didn't want to bother with insistence. Yes, I received it already, and currently, I am testing it! It works incredibly well, and I think I can finally add it to the project. Surface collision significantly reduces the FPS, but I suppose it's due to the number of particles.

On the other hand, it would be a good idea to add a particle counter in the blueprint generator. (I had already added it manually in previous versions and remembered when I installed this version). A small detail but quite useful in cases like mine.

Thank you very much, and congratulations on such a development!
Reply
#6
(14-12-2023, 11:46 AM)SimonP Wrote: On the other hand, it would be a good idea to add a particle counter in the blueprint generator. (I had already added it manually in previous versions and remembered when I installed this version). A small detail but quite useful in cases like mine.

Could you elaborate a bit? Do you mean a label that shows the amount of particles in the blueprint?
If so, a simple workaround is to hit the "invert selection" button in blueprint edit mode to select all particles, then look at the amount of selected particles. But yeah, we can add an info field with the amount of particles.

(14-12-2023, 11:46 AM)SimonP Wrote: Thank you very much, and congratulations on such a development!

Thanks!
Reply
#7
(14-12-2023, 12:04 PM)josemendez Wrote: Could you elaborate a bit? Do you mean a label that shows the amount of particles in the blueprint?
If so, a simple workaround is to hit the "invert selection" button in blueprint edit mode to select all particles, then look at the amount of selected particles. But yeah, we can add an info field with the amount of particles.
Exactly! I added an 'Int' simply for convenience, mainly because I was trying to find a configuration that gave me the best balance between performance and visuals.

On the other hand, I've been trying to generate everything at runtime like my original code. I noticed that the method for binding has changed, and i cant make it work correctly. (I initially deactivate the game object with the skinned mesh, add the soft body component and the skinner, and then reactivate the game object and make it a child of the solver). In the previous version, it worked without any problems. Am I missing something? Or perhaps it's no longer possible to generate them at runtime?"


Code:
var Skinner = SkinnedMesh.gameObject.AddComponent<ObiSoftbodySkinner>();
        var SoftBody = SkinnedMesh.gameObject.AddComponent<ObiSoftbody>();
        var Blueprint = ScriptableObject.CreateInstance<ObiSoftbodySurfaceBlueprint>();
        Blueprint.inputMesh = SkinnedMesh.sharedMesh;
        Blueprint.skeleton = SkinnedMesh.rootBone.gameObject;
        Blueprint.rootBone = SkinnedMesh.rootBone;
        Blueprint.surfaceResolution = SurfaceResolution;
        Blueprint.surfaceSamplingMode = SurfaceMode;
        Blueprint.volumeResolution = VolumeResolution;
        Blueprint.volumeSamplingMode = VolumeMode;
        Blueprint.GenerateImmediate();
        SoftBody.softbodyBlueprint = Blueprint;
        Skinner.softbody = SoftBody;
        Skinner.customSkinMap = Blueprint.defaultSkinmap;
        Skinner.Bind();
       


If I add the Particle Renderer, I can see that the particles are generated correctly and deform properly when moving the bones. However, the mesh glitch completely, so I assume I'm missing something when I do the binding or maybe the skinmap?.
Reply
#8
I was able to solve it already; I performed the bind after initializing everything, and it worked perfectly
Reply