Procedural pixel art with high degree of control

Hello everyone!
I’m working with a led matrix with a resolution of 600x80 pixel.
I would like to turn on and off each pixel individually (so each led), for a pixelized visualization (here a reference), with a high framerate (60 fps).

I tried to do it with Skia in this way:
Onopen I calculate the 48000 coordinates (one for each led of my led matrix). Then I rendered the rectangles with a foreach and using setAlpha I turned on or off each rectangle… 15/20 fps (CPU ko).

I tried with instances in Stride (Instancing QuadRenderer), but i need high coordinate precision and using OrthoCamera is not easy (and fps was low).

Can you suggest a performative way to do it?


If you want to deal with spreads of numbers, I suggest using stride’s dynamic texture. This lets you set each pixel individually, but the spread operation is quite costly.

You can always send the numbers from the spread to the led controller directly. No need to do the rendering part at all, except as a preview.

callmenames-2023-04-26_02.vl (12.2 KB)

I found another solution: instead of controllling each led of the matrix, I disabled the antialias. Without the white gradient, the visual output is pixelated (each led is on or off).

I was just wondering if there is a way to disable the antialias directly on the skia render, instead on a single layer on the pin paint with the SetIsAntialias node.

Thanks ;)