TVShader now available

https://marketplace.coronalabs.com/graphics/tvshader

“TVShader” is a shader that implements old-school retro-style full-screen CRT effects.

[media]https://www.youtube.com/watch?v=RC0ppPhfOZo[/media]

Easily integrated into most projects, pure Lua, source code included, use as is or modify to suit.

Happy to help out with support questions here.

 @davebollinger, I got mine!   If you have anything else you are thinking of adding to the marketplace - please do.

Very nice!!

Well done!

Looks awesome! Thanks!

Tiiiiiight!!! I had to roll my own for this effect but it was nowhere near as robust!! Thanks a lot! Great to have someone do the heavy lifting! :wink: Bought it right away!!

-Mario

thanks all, and welcome!

TVShader revision 8/1/2018 includes 3 new demos that illustrate…

adding runtime-adjustable parameters (here scanline size/gain/speed):

tvshader_demo6_collage.jpg

alternate runtime-adjustable parameters (here pincushion, convergence, flicker):

tvshader_demo7_collage.jpg

adding an aperture grill aspect to the effect:

tvshader_demo8.jpg

Oh man that’s so awesome!!  Playing with that as soon as I get home this evening :smiley:

Are you going to update the docs to explain how to use the runtime adjustable parameters?

[edit]

Never mind…  When I downloaded the new version for some reason it gave me the old version again.

I’ve re-downloaded it again and now have the new version :slight_smile:

Happy days!!

for now at least, the parameterized versions are offered only as “demos” - that functionality is not included in the “core”.  (so docs do not reflect it, though they do speak of customizing the effect yourself - which is what those demos do)

the issue is the sheer number of things that could be adjusted (at least 20, maybe more, depending on what you’d count as worth adjusting) versus performance.

you can easily pass 4 values to a shader without incurring a performance penalty, and maybe squeeze in a few more if they’re just ints that could be packed, but 20 is pretty much out of the question - it would have to switch to using uniforms to get access to that many, and suffer performance as a result, so i didn’t feel it worth introducing that into core.

i suppose if there were four “favorite” things that ppl wanted to adjust, then perhaps i could bundle those into core, otherwise i think this approach is better.  it means you might have to tweak the code for your own purposes, but the demos should show you the way.  if you take a few minutes to study demos 6 & 7 the hope is it’ll become clear how they’re were implemented and used.

@davebollinger - Brilliant!  Really, this is such a cool plugin - thanks again for making it!

Super easy to use, and man that effect is great. Gimme your paypal addy @davebollinger. I’m buying you a beer!! (in private of course, otherwise you’ll get spammed to heck and back, lol!!)

@mroberti thanks, feel free to spam this if you wish:  https://www.paypal.me/bollingerdave

:smiley:

Done! :slight_smile:

I just checked out your TVShader and I agree with the rest, it looks fantastic!

This looks like something I could definitely use in one of my future projects. Did you create this for one of your own games or did you simply get creative?

I’m also interested in your TVshader’s performance. It probably runs great on new devices, but what about older ones? Also, if there are a couple of hundred of display objects moving around on the screen and I add your TVShader on top of everything, what sort of frame drop might I be looking at?

I’ve added the TVshader to one of my scenes with a couple hundred physics objects and my Dynamic Shader running as well with no noticeable decrease in performance in the simulator or an iPhone 7.  It’s a fabulous little tool indeed!

Note - I also have animations, particles and AI so I was expecting the TVshader to be the straw that broke the camels back but it worked seamlessly and for all intents and purposes, effortlessly.

@XeduR @Spyric - it was originally for one of my games (just the scanlines) but didn’t make it into production for artistic reasons - early dev was lo-res 16-color “CGA” -type retro thing, ended up as monochrome, so the effect no longer “made sense”.

all demos run flawlessly on a 2012 Nexus 7 tablet, the oldest device i’ve actually tested it on.  also retrofitted it, just as a test, into other of my games, where it still ran without impact on same device.  there’s no way for me to say for sure what impact it will have on some other random app on some other random device, but…

with or without a fullscreen shader, a hundred objects on screen should not pose a problem.

with or without a fullscreen shader, a thousand objects on screen might.

it’s not doing “heavy lifting” in shader terms - fe, it’s nowhere near as intensive as a blur.  you could “mock up” a performance test of the included “bulge” filter if you thought your app was close to hitting the “final straw”.  perhaps the most intensive portion of the effect is the beam misconvergence which causes additional sampling, tho individual portions of the effect could be easily commented out.

Well, that sounds like I simply cannot afford not to put this on my shopping list for a future project.

Thank you both for the detailed info!

by the way… THANKS! to those who’ve “gifted” (you know who you are) :slight_smile: