I had no idea that LOVE 12 will support compute shaders, that's nice to read :) I diffused the image and decayed the color using a pixel shader (Available since LOVE 0.9) , and processed the agents logic on the CPU, that's why you can't really go too high with agent numbers.
I see! But how do the agents see the diffused pixel data in order to decide whether or not to turn left or right? Reading back the image data from the GPU is very slow, at least from the method I tried using Canvas:newImageData()
I apologize for the intrusion but I unwiggled your balls unfused your binary to have a look, seems like you're using the canvas:newImageData() method, which halves the framerate, making it unusable for my purposes.
No worries! I've already rewritten my diffuse as a C library that LOVE calls, currently I can do 640x360@3ms which is fast enough for my purposes
← Return to project
Comments
Log in with itch.io to leave a comment.
Fantastic stuff!
May I ask, how are you doing diffuse on the GPU? Are you using LOVE 12 compute shaders or some other method?
Thank you!
I had no idea that LOVE 12 will support compute shaders, that's nice to read :)
I diffused the image and decayed the color using a pixel shader (Available since LOVE 0.9) , and processed the agents logic on the CPU, that's why you can't really go too high with agent numbers.
I see! But how do the agents see the diffused pixel data in order to decide whether or not to turn left or right? Reading back the image data from the GPU is very slow, at least from the method I tried using Canvas:newImageData()
I apologize for the intrusion but I
unwiggled your ballsunfused your binary to have a look, seems like you're using the canvas:newImageData() method, which halves the framerate, making it unusable for my purposes.No worries! I've already rewritten my diffuse as a C library that LOVE calls, currently I can do 640x360@3ms which is fast enough for my purposes