• 1
  • 7
  • 8
  • 9(current)
  • 10
  • 11
  • 13
Release 2D Spectrum, visualization
hm.. I also include screensaver into dx11 test build Smile
Reply
(2015-05-31, 16:08)da-anda Wrote: a screensaver add-on for shadertoy has already been created and is part of nightly RPI builds by Milhouse Smile

You can install onto Gotham builds with this repo:
https://github.com/popcornmix/repository...ornmix.zip

Download the zip file and install from setting/addons.
And then install from the new popcornmix repo the screensaver and visualization.

Select shadertoy screensaver in appearance/screensaver settings
Select shadertoy visualisation in music/playback settings

You can change the screensaver preset in screensaver settings.
You can change the visualisation preset when music is playing. Switch to fullscreen mode, bring up controls (enter) and select preset (rightmost "mountain" control in confluence).

Only tested on Pi, but they might work on other ARM platforms.
Reply
(2015-05-28, 19:16)uNiversal Wrote: Ive tried implementing (see it in action there -> https://www.shadertoy.com/view/4lS3W3) a variation of audioCube as well, and I managed to get it working in kodi.

Problem is that performance?! Is awful despite CPU being at 10% and Ram 400MB, so hardly being used and with a nvidia GT610. (not the only visualisation do act like this on this machine haven't tested others dont have others to test)

Screenshots (looks great but its really slow)

This should have enough humpf for these things and yet they grind to a halt.

The shadertoy stuff are generally extremely GPU hungry, I wouldn't be surprised if the GT610 is your limiting factor here. Running these types of shaders at 1080p are taxing Smile

(2015-05-28, 19:16)uNiversal Wrote: Also there's no support for cube maps (yet is it planned?) in the shadertoy addon this visualization particular looks great with a texturecube mapped to it.

I was considering it but when I gathered shaders I didn't find any which needed it, so I just skipped it. However it shouldn't be the hardest thing to add. If you have a link to a shader which uses it on shadertoy I could probably take a look at adding support for it!

(2015-05-28, 19:16)uNiversal Wrote: But there you are maybe soon enough.

I also realized that shortage of better screensavers or even live wallpapers can also be remedied by a similar addon one for audio visualisations and one for screensavers and so on, So the same code visualisation.shadertoy and screensaver.shadertoy etc, Im sure content wouldn't be a problem.

I will probably move out all shadertoy specifics out to something which both screensaver and such could reuse. I would love a live wallpaper one too and might take a stab at supporting it. The biggest hurdle here is probably that we don't have any "background" support now for skins, the skins which lets you customize handles it themselves. So not really sure how to implement it so its nice for skinners. One idea could simply be a live wallpaper control were the skinner states exactly which addon to use, then it would work roughly the same as an image control.

I've been away last week on vaccation but my idea is to start going through the PRs next week and merge in some stuff, nice to see people interested in it and the help is greatly appreciated!
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
Ok, well its not the GPU itself, the same gpu and via browser and same shader works.

the texturecubes the one addon that uses it is the original AudioCube https://www.shadertoy.com/view/llBGR1 which I modified as above and had to remove the texturecube support.
However that shader only does 4fps via kodi shadertoy same gpu via browser (chrome) I get 60fps...

I have some performance fixes for the audio cube II (https://www.shadertoy.com/view/llB3D3) but alas in kodi still no go at more than 6fps, the if statements on GPU kill the performance afaik. Im trying to find a workaround. I know some people in demoscene so will see.
Atm those dont have texturecube support but I can do one if you want.

Can someone please confirm the state of these 3 existing shaders

these crash kodi outright for me.

Polar Beats by sauj123
Revision 2015 Livecoding Round 1 by mu6kl

This one does nothing just the circles and no reaction, works in shadertoy.
Beating Circles by Phoenix72

This one slows down kodi to a halt and theres only a black screen
Demo - Volumetric Lines by iq

Pending feedback I can have a try at fixing them or replacing them with working shaders, I have a few working ones.
Reply
Well the shaders in shadertoy in browser runs at 800x480 and in kodi you run it at 1920x1080, the latter needs about 5.4 more power, which can very well cause it to grind to a halt.

TBH I am considering adding a setting to render it to texture (800x480 or something) and then use linear scaling up to full HD. It won't look as nice but should run on a lot more hardware Smile

But, I do think something is off with the rendering because I have a full out gaming rig and it doesn't feel like 60fps to me ever. The rest of the Kodi GUI runs fluid (with and without shadertoy visualizer on) but the actual visualizer feels slower. My issue could be audio data feed though.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
(2015-05-31, 16:19)popcornmix Wrote: Only tested on Pi, but they might work on other ARM platforms.
Just tested on my WETEK box and I only get a still frame for the screensavers. Looks like the "iGlobalTime" might not be forwarded to the shader or something else is borked. Haven't tested the viz yet.
Reply
Re: scaling

Well there are shaders that perform very very well on full 1080p and very few that dont currently.

What would be nice is that the ones that dont perform so well would be scaled, e.g. Circuits by Kali

Would that be possible? Scaling per select preset, maybe ship with some sane defaults and allow user to select if the current shader should be scaled or not.

Visulisations thers currently one or two I noticed but in future fro screensavers /live wallpapers you potentially have some very high demanding shaders.

That said, my research seems to indicate GPU's dislike flow control via if statements, Im trying to grab hold of a friend who knows about shaders and see if he can help me there.
Reply
Too bad Shadertoy is only some sort of very power demanding raytracing and not utializing other capabilities of the GPUs like 3D game engines do. I suppose >60% of the shaders would run smooth at 1080p with no issues if this would be changed. Maybe we need to come up with our own version of Shadertoy which exposes the missing, more performant parts.

edit: or with Retroplayer in the pipeline, how about adding the Unity game engine Smile
Reply
Shadertoy is meant to be a simplistic way to test out shaders. That people are able to do this insane stuff with the API is just cool. Normally you'd mix and use other stuff to achieve it with better performance, but to do that you'd need a full game engine Tongue In the shadertoy visualizer the majority of the code is audio related and not graphics, this is because how simplistic the engine and the API is.

My hopes is to find some more time to fix up dawn, which is inspired by three.js, which is closer to an actual graphics engine. With that and the stuff I have in shadertoy it should be much easier to actually make visualizers that perform, but with more implementation time. Its always a tradeoff Tongue

Consider shadertoy viz more of a fun thing, it was never meant to run on all hardware. The reason I did it was that it needed very little c++ implementation to get access to a bunch of fun vizualisations, even if they are very heavy to render Tongue
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
sure, it's ofc a nice fun thing and many cool looking shaders even run on the PI, was just mentioning that it's a pitty that the little more advanced shaders perform sooooo badly while they would run fine when done via a game engine like thingy

some more possible screensavers (haven't check which ones are already available in the add-on)
. https://www.shadertoy.com/view/4tl3W8 (needs to be slowed down by doing something like iGlobalTime*0.05)
- https://www.shadertoy.com/view/XlX3DM (the iterations in line 10 have to be lowered to something like 10 or 20 to perform well. Will look a bit different then, but still nice)
- https://www.shadertoy.com/view/Ml2GWy
- https://www.shadertoy.com/view/lsf3Dn
- https://www.shadertoy.com/view/4sl3z2 (would need to be darkened somehow, haven't figured yet)
- https://www.shadertoy.com/view/MdlXWr
- https://www.shadertoy.com/view/4sX3R4 (won't perform well I guess without alteration)
- https://www.shadertoy.com/view/Xs2SzR (a little less colourful or desaturated and it would be cool)
- https://www.shadertoy.com/view/4sSGDG (unfortunately too GPU hungry)
- https://www.shadertoy.com/view/4dfGDr (center would need to shift a bit to not get a burn in on plasmas)
- https://www.shadertoy.com/view/MdXGz4 (GPU killer)
- https://www.shadertoy.com/view/4dBSRK
- https://www.shadertoy.com/view/Md23Wc (your personal inferno Smile )
- https://www.shadertoy.com/view/XlB3zV (looks awesome but GPU killer)
- https://www.shadertoy.com/view/ldjGzV
- https://www.shadertoy.com/view/MdXGDr
- https://www.shadertoy.com/view/MdSXzz
- https://www.shadertoy.com/view/XdfXzn (needs tweaking of the density to perform better)
- https://www.shadertoy.com/view/4d2Xzc (merry xmas)
- https://www.shadertoy.com/view/MslGD8 (would be nice if the dot was removed and a little less colourful)
- https://www.shadertoy.com/view/XssXz4
- https://www.shadertoy.com/view/lsfGzr (less fog and wider movement and it'll be nice)
- https://www.shadertoy.com/view/MdB3Rc (motion blur is killing GPU, but if tweaked it could be nice)
- https://www.shadertoy.com/view/ldXGRX (like this one pretty much - nice tech touch)
- https://www.shadertoy.com/view/MdSGzG
- https://www.shadertoy.com/view/4dBGDy (needs to get rid of motion blur for better performance, remove the "for" loop in line 124)

yes, I spent a lot of time browsing Shadertoy website Smile
Reply
I think screensavers should be done in separate addon, even if its same code I really like

https://www.shadertoy.com/view/Xdl3D2
https://www.shadertoy.com/view/4dBSRK
https://www.shadertoy.com/view/XlB3zV
https://www.shadertoy.com/view/MsjGRt
https://www.shadertoy.com/view/XlsGRs
https://www.shadertoy.com/view/ldjXDD -> needs slowing down globaltime L#47
https://www.shadertoy.com/view/XtX3WB -> needs speeding up a great deal
https://www.shadertoy.com/view/XtjGRD

all of these with some minor modifications could become more suitable as screensavers in addtion to da-anda picks
Reply
(2015-06-01, 09:53)topfs2 Wrote: Well the shaders in shadertoy in browser runs at 800x480 and in kodi you run it at 1920x1080, the latter needs about 5.4 more power, which can very well cause it to grind to a halt.

TBH I am considering adding a setting to render it to texture (800x480 or something) and then use linear scaling up to full HD. It won't look as nice but should run on a lot more hardware Smile

GLES version already renders to a smaller texture and then scales it up. i suspect that code is portable to desktop GL.
I've added a way of scaling each shader by an appropriate amount to get a consistent fps out. That's good for Pi users, but actual results may be different on different GPUs.

I'm thinking of rendering the first frame at 1080p and timing it, and then using that time as a scale factor for the resolution. If it is fast enough render directly to framebuffer, otherwise use an off-screen buffer with a size chosen so you get the desired framerate.
Reply
That might be the reason why there are really big (i mean HUGE - like GIANT Big Grin) pixels on some of the screensavers on wetek - right?
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
(2015-06-01, 12:14)da-anda Wrote: yes, I spent a lot of time browsing Shadertoy website Smile

Its addictive isn't it Tongue

Thanks for the list, I'm sure many of those would make awesome screensavers or wallpapers.

(2015-06-01, 13:20)uNiversal Wrote: I think screensavers should be done in separate addon, even if its same code I really like

Yeah agreed, should be simple enough to separate the shadertoy stuff out on its own so it can be shared by copy.

(2015-06-01, 14:02)popcornmix Wrote:
(2015-06-01, 09:53)topfs2 Wrote: Well the shaders in shadertoy in browser runs at 800x480 and in kodi you run it at 1920x1080, the latter needs about 5.4 more power, which can very well cause it to grind to a halt.

TBH I am considering adding a setting to render it to texture (800x480 or something) and then use linear scaling up to full HD. It won't look as nice but should run on a lot more hardware Smile

GLES version already renders to a smaller texture and then scales it up. i suspect that code is portable to desktop GL.
I've added a way of scaling each shader by an appropriate amount to get a consistent fps out. That's good for Pi users, but actual results may be different on different GPUs.

I'm thinking of rendering the first frame at 1080p and timing it, and then using that time as a scale factor for the resolution. If it is fast enough render directly to framebuffer, otherwise use an off-screen buffer with a size chosen so you get the desired framerate.

Need to merge our version I think Tongue I'd love PRs if you have the energy. Not sure how to do the scaling stuff for desktop tbh, its always hard to measure stuff like this. Need many frames to test and need to know that nothing else is happening. Ideally Kodi should send information like this to us, as they could make a performance test during first launch, a bit more cumbersome doing it on each addon creation (which happens anytime you change the window).
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
(2015-06-01, 18:28)topfs2 Wrote: Need to merge our version I think Tongue I'd love PRs if you have the energy. Not sure how to do the scaling stuff for desktop tbh, its always hard to measure stuff like this. Need many frames to test and need to know that nothing else is happening. Ideally Kodi should send information like this to us, as they could make a performance test during first launch, a bit more cumbersome doing it on each addon creation (which happens anytime you change the window).

Do these work for you?
https://github.com/popcornmix/visualization.shadertoy
https://github.com/popcornmix/screensaver.shadertoy

I've not been testing on desktop GL, but it was reported as working a while back, so hopefully they still work (or are only broken trivially).
Reply
  • 1
  • 7
  • 8
  • 9(current)
  • 10
  • 11
  • 13

Logout Mark Read Team Forum Stats Members Help
2D Spectrum, visualization0