Hi awesome Cesium developers,
I've been using SingleTileImageryProvider to overlay a PNG raster image on top of Cesium base layers, adjust transparency, etc. Very happy with this.
I'd like to add customized image processing filters: I was very impressed to see hue, saturation, brightness, etc., already supported out of the box, but I'd like to do per-pixel custom image processing, in the vein of this tutorial from HTML5Rocks :
I see that SingleTileImageryProvider's (and all the imagery provider classes that use it) requestImage function can yield a canvas or an "image" . I.e., in SingleTileImageryProvider, requestImage gives the "_image" member while in TileCoordinatesImageryProvider, this function returns a 256x256 canvas .
I'm trying to understand what are my choices in inserting custom image processing steps between the imagery provider's original rasters, through a potential canvas that Cesium might be using under the hood, to final display in WebGL. In , Scott Hunter proposed a custom imagery provider class that produced custom canvases in its requestImage.
More recently, Kevin Ring in  suggests this is could be done as easily as a JS object literal, in a thread that started out discussing the fact that SingleTileImageryProvider could only be constructed with a URL, and not a canvas object.
Instead of diving into creating a custom imagery provider, I noticed that, in an undated set of slides , slide 15 ("page" 17), Patrick Cozzi gives "image filters" as an example of contributions from users, which makes me ask if there's something easier I could be looking at to achieve my goal of custom image processing.
Any tips would be most appreciated, thank you!