ProwlEngine / Prowl

An Open Source C# 3D Game Engine under MIT license, inspired by Unity and featuring a complete editor and built on Silk.NET
MIT License
434 stars 36 forks source link

[Runtime] Physics #169

Open michaelsakharov opened 2 months ago

michaelsakharov commented 2 months ago

BepuPhysics is pretty well implemented however it's still missing a few important features.

PaperPrototype commented 2 months ago

By missing a few features do you mean the implementation, or BepuPhysics itself

Doprez commented 1 month ago

Hello, we have been messing with Bepu for Stride a lot ourselves and the Convex and Mesh are available through Bepu but I think we had to create our own layering implementation. Im not sure if you are already using it but VHACD is what Stride uses for convex shapes and mesh decomposition.

Convex does currently have a bug that you will want to look out for https://github.com/bepu/bepuphysics2/issues/325 but it seems to work 99% of the time otherwise.

Meshes were relatively simple, the only thing that may be different between Stride and Prowl there is the winding of the mesh?

Eideren has also got Layers working, in the new PR we are using to eventually merge into our main branch. https://github.com/stride3d/stride/pull/2131/commits/538e34fdcfd65b147ff6b3df42ab99400a97d35c I dont know if its final though.

Would love to have another C# game engine collab on this with any info if you guys find anything cool!

michaelsakharov commented 1 month ago

Hello, we have been messing with Bepu for Stride a lot ourselves and the Convex and Mesh are available through Bepu but I think we had to create our own layering implementation. Im not sure if you are already using it but VHACD is what Stride uses for convex shapes and mesh decomposition.

Convex does currently have a bug that you will want to look out for bepu/bepuphysics2#325 but it seems to work 99% of the time otherwise.

Meshes were relatively simple, the only thing that may be different between Stride and Prowl there is the winding of the mesh?

Eideren has also got Layers working, in the new PR we are using to eventually merge into our main branch. stride3d/stride@538e34f I dont know if its final though.

Would love to have another C# game engine collab on this with any info if you guys find anything cool!

Hey! I've actually based our implementation a lot on the one used for Stride! It was a huge stepping stone for me, We do actually have a mesh decomposition, but as for what method it is I'm not entirely sure it's been a while since I put all that together, we were previously using Jitter Physics, and It's the same decomposition as back then, it's possible it may have come from Jitter's Samples?

I sorta had meshes working but they seemed weirdly offset and not scaled correctly so I postponed it for the time being.

I'll definitely let you guys know if we find anything of note, Though you guys are way further ahead than we are so we probably won't have anything too interesting anytime soon.