I took some time to implement a few more features for LaboratoryGames’s CRT Monitor Effect.

The new challenges were to implement a Distortion Map, Desaturation (aka: GrayScale), and Vertical RGB offset (since horizontal was already implemented last time, it wasn’t that hard to complete).

My first example looked like what VCRs used to do when they chewed the tapes and spat them back out with the tape hanging out everywhere. Not pretty!

This time, I give you a more controllable demo with several Keyboard hotkeys.

This area requires
Adobe FlashPlayer version 11.3 or above.
iOS Devices are not currently supported.

NEW FEATURE in 2.1: You can now selectively toggle each individual effects to save on GPU performance when required. This generates new Program3D objects on the fly with the selected combination of effects, and caches it for future uses at runtime.
Here’s the list of new hotkeys in this demo:
Key Number 1: Toggle Displacement Map
Key Number 2: Toggle Roller
Key Number 3: Toggle RGB Offset
Key Number 4: Toggle Noise
Key Number 5: Toggle Gray-Scale
Key Number 6: Toggle Shadow Map
Key Number 7: n/a (yet)
Key Number 8: Toggle Global Enable (Everything!)

Next Step – Multiple Render Passes…

I’m currently seeking advice / help to create a blur-filter in a cheap way. I’ve heard it can be done by reducing the resolution of a texture, and the blowing it back up to large dimensions. The GPU’s linear texture sampling then creates a natural blur (although some could argue about the quality!).

Basically I need to figure out if Starling’s FragmentFilter class allows to do multiple passes AND render them at different dimensions, so the 1st one can feed into the 2nd, etc.

If you have any answers, you can either post it below in the comments – or preferably on the Starling Forum question found here.

I’ll hopefully be able to reveal soon the next feature of this shader – but until then…

Keep on learning how to program in AGAL! :)