Yeah it is explicit time integration, single step per frame. Grid resolution is 512x512x128, particles res adaptive with 8 per cell at surface
kotsoft
Creator of
Recent community posts
Thanks for the feedback and providing the performance numbers.
Yeah, the water looking like jelly is still something I'm trying to figure out. I may just need to put solids on a separate velocity field from liquids so the particle velocities don't blend together. But sometimes it can also be useful, like if you mixed water with dirt you might get mud naturally. On the rendering side, I may also split the opaque and transparent objects and use screen-space reflections/refractions in conjunction with the voxel-based lighting.
I'll also work on improving the controls and fixing mouse movement. I think the way I multithreaded made it so that the times the mouse movement is measured are a little jittered.
I might be able to improve the speed further by taking advantage of AVX2 and improving the multi-threading efficiency. I'm also seeing some improvements moving things over to DirectX 12. I'm going to be experimenting with Async Compute and Copy to more fully utilize the GPU.
Thanks again, stay tuned for more!
EDIT: And yes, I definitely plan to have a map editor and really want to make it easy for players to bring in their own user generated content.
Thanks for the feedback. Yeah, there is still a lot of optimization work that can be done. For the physics, one thing I've started experimenting with is lowering the simulation resolution behind the player, but it is a bit tricky and can cause artifacts. For the lighting, I could probably do some optimization for static objects but other than that, all shadows, reflections, and refractions are dynamic and it doesn't average things over multiple frames. For geometry/rasterization, I have a pretty good LOD system set up with mesh shaders (it can render more than just cubes) but that requires a Turing or better GPU. I haven't released the mesh shaders version yet. Also, I plan to take advantage of asynchronous compute eventually, to simulate the lighting while rasterizing.
Hi everyone! I just released a physics tech demo on itch.io. The world is entirely simulated using particles and you can get some different material behaviors as well, like liquids vs solids. Eventually I will add many more materials, and if you have any materials you'd like to see included, fee free to let me know.
Here is the itch.io page: https://kotsoft.itch.io/mpm-tech-demo It is best to install via the app.
And also a video demo:
Screenshot: