gpujs / gpu.js

GPU Accelerated JavaScript
https://gpu.rocks
MIT License
15.11k stars 655 forks source link

Output 1D Unknown-Length Array from 2D Known-Length Array #805

Open c4b4d4 opened 1 year ago

c4b4d4 commented 1 year ago

I'm trying to generate an unknown-length array, from an input image or 2D array.

I want to distribute data using a noise image, for example:

For every white pixel -> Save the position of it (x, y) and push it to an array so you end up having a Z-length array. Where Z is the number of white pixels in the noise image.

Input

Screenshot 2022-12-28 at 17 08 45

Output

[[x1, y1], [x2, y2], .... [xZ, yZ]]

In result I get all the locations of where a pixel is white.

I need to use GPU power, since noise images are huge in my use case and must be updated at least at 24 fps.

Doing math

ObliviousDonkey commented 1 year ago

This is not possible using gpu.js D:

c4b4d4 commented 1 year ago

This is not possible using gpu.js D:

Is this a limit on how GPU operations work? Or just a missing feature/characteristic of the library?

TrashUwU commented 1 year ago

I guess the library is missing the feature.

https://github.com/gpujs/gpu.js/#types The kernel can only return few amount of types, the length of returned array cannot be more than 3.