NeoPixelBus icon indicating copy to clipboard operation
NeoPixelBus copied to clipboard

Complex animations require buffers of complete strip size

Open Makuna opened this issue 5 years ago • 0 comments

Is your feature request related to a problem? Please describe. Having complex animations that have multiple async channels applying effects to the same pixel today requires intermediate buffers of the complete strip size to store results as the effects are built up; with a final channel blending and applying the color to the strip.

Describe the solution you'd like A modification/new animation technique that defines channels with a "shader" like callback to be applied on a per pixel bases, with its results stored and available for the next channel to use and store its result. The manager will expose a "render" that takes an argument of which pixels to effect and this will loop over those pixels and call each of the channels in order for each pixel; reducing extra storage to that of one pixel per channel (the results of each channel) and the result of the final channel will get stored into the strip.

Makuna avatar Dec 10 '19 19:12 Makuna