pouët.net

Web GL

category: code [glöplog]
We want gnu-rocket in the web. Would be nice if it was easy to integrate as the C++ version, so I can plug it to ShaderToy for example and track the parameters of the shaders...

Oh, a parenthesis in the discussion here:

(

I'm with Skrebbel, demos in the web will be super convenient. Random reasons.
- easier to consume (let's be honest, we often watch youtube/capedtv videos of demos just because it's "one click" versus "click, download, unzip, run, setup the anoying config dialog", not because our gfx card can't run the demo)
- easier to "sell": we will finally be able to speak to other digital "art" communities in their own language (processing, java, flash guys) and get out of the little dark hole we are living in. Many sceners might not want to take this step, but others will.

)
added on the 2009-12-23 20:11:25 by iq iq
furthermore you'll be able to run demos in realtime on whatever device you want. for example, nokia recently demostrated webgl running on their n900 handset.
Quote:
furthermore you'll be able to run demos in realtime on whatever device you want

People with Intel integrated GPUs beg to differ. Hell, the x600 graphics adapter in my workstation royally nosedived on Shader Toy and failed to run any other Web GL demo -including the hey-dumbass-here's-a-cube ones.

It runs pretty well on iPhone 3GS, apparently. I'm not exactly brimming over with incentive to jailbreak mine though.
added on the 2009-12-23 20:44:47 by Shifter Shifter
whatever device you want, hardware/driver/browser permitting then!
@iq and Skrebbel, indeed, this is a fantastic opportunity to spread demo's art. It's going to be even portable on small devices, and that's really cool.

Anyway, on my side, I still do care about lightweight intro, even if it's on the web... so I'll check a bit more about audio... I did already some easy dynamic audio rendering with silverlight 3 (here) and it's quite promising! Need to check know how well to integrate it with WebGL...
added on the 2009-12-23 21:17:01 by xoofx xoofx
i have a Intel GMA 4500 MHD card (low end and non 3d) on my 13" laptop and despite what I expected almost all presets in Shader Toys run smoothly (20-25fps).
added on the 2009-12-23 21:55:58 by Tigrou Tigrou
Quote:
I'm not exactly brimming over with incentive to jailbreak mine though.

um yes, way to go on about a browser thing, me! kindly attribute this to sleep deprivation and medication :(
added on the 2009-12-23 23:44:01 by Shifter Shifter
Quote:
i have a Intel GMA 4500 MHD card (low end and non 3d) on my 13" laptop and despite what I expected almost all presets in Shader Toys run smoothly (20-25fps).

The 4500MHD is actually quite decent (compared to 950 gma and such), has GL 2.1 support and so on.
added on the 2009-12-24 00:13:12 by snoutmate snoutmate
Playing a bit with WebGL, seems one thing that might be a bit annoying is not being able to play in fullscreen with a different screen resolution. You are stick to the resolution of your desktop (which are quite high actually compare to the resolution we use in intros), forcing the WebGL canvas to be displayed on a smaller area inside the browser in order to keep an acceptable fps. From a visual experience point of view, this is going to limit the "wow" factor.
added on the 2009-12-24 00:29:05 by xoofx xoofx
@lx, fbo?
@petemobil, i forgot that, that could be an idea, render to a smaller buffer and just stretch the buffer for the display, yep! ;)
added on the 2009-12-24 00:40:46 by xoofx xoofx
btw kusma, i wasn't actually kidding - as iq correctly mentioned, doing http requests from javascript is very simple. keeping any other connection (i.e. some tcp socket) open for bidirectional communication is not possible, however.

so we'd need to change the protocol, so that the editor is the server and the demo is the client (already the case), but also that all commands sent from the server to the client are sent as a response to a client request, as in http the server can't just decide to send a request to a client at any random moment. this should be easily possible, though, as you want to do update() at the beginning of each frame anyway. the response could be "thanks for the update! oh and by the way please pause the demo and skip it to position x".

but this is getting very off topic, really :-)

more back on topic: after a short 10 minute investigation, it seems that firefox uses liboggplay for the audio and video tags (not entiirely sure, but the source includes liboggplay and that precisely matches the supported formats for the audio and video tags). i haven't checked, but given that liboggplay is free, cross platform, and very easily integrated it could very well be that the other OS browsers use it too.

in that case, *if* the bad resolution comes straight from liboggplay, we could just fix it there (or nag others to do so) and have an improvement in all three browsers.
added on the 2009-12-24 01:02:53 by skrebbel skrebbel
About the granularity of the Date object in JavaScript, bare in mind that JS engines are usually only allowed to run every ~15ms because of stupid implementations ( without pause-resume ) that can make the browser UI non-responsive in case of a heavy script.


Quote:
furthermore you'll be able to run demos in realtime on whatever device you want

Quote:
People with Intel integrated GPUs beg to differ
: \ yeah, I'm not sure I'm happy to see a HW divide on the web. I know it's inevitable with HW acceleration stuffs but it's a tad worrying to see a web standards be completely inaccessible to a whole range of devices. ... :p maybe I'm just pissed at my Intel GMA that can't do PS 3 and make WebGL browsers crash or choke badly on all the WebGL examples I tried.


added on the 2009-12-24 14:06:56 by p01 p01
skrebbel: perhaps the easiest thing would be to make an "http-proxy" that buffers up updates from the editor?
added on the 2009-12-24 15:35:41 by kusma kusma
skrebbel: you can delay the answer of ajax requests till something new happened on the server.
after getting an answer, the client again sends an request to the server.
there is some funky buzzword for it, but i forgot it.
facebook does it that way, you can see the delayed response in firebug.

happy xmas!
added on the 2009-12-24 17:34:29 by pandur pandur
pandrr, ahyes good point. i'm so used to http on php+apache being difficult to stall that i forgot that this is of course peanuts on a homecooked http server. simplethen!
added on the 2009-12-24 17:59:18 by skrebbel skrebbel
pandrr, skrebbel: the buzz word is Comet.
added on the 2009-12-24 18:52:54 by p01 p01
the web two point OH! crowd never fails to amaze with horrible buzz words.
added on the 2009-12-24 19:17:03 by skrebbel skrebbel
skrebbel, it just means you're not (or close enough) a teenage programmer anymore :) (as in > 19 years of programming ;)

Them teenage programmers and their fads
added on the 2009-12-24 19:37:22 by _-_-__ _-_-__
\o/ happy coding!
added on the 2009-12-28 23:51:56 by xTr1m xTr1m
WEB2.0 XML MEGADEMO
added on the 2009-12-29 12:05:24 by halcy halcy
Quote:
maybe I'm just pissed at my Intel GMA that can't do PS 3 and make WebGL browsers crash or choke badly on all the WebGL examples I tried

It's even more depressing when you realize that a N900 or an iPhone is better at WebGL than your GMA-equipped computer.
added on the 2010-01-14 14:47:01 by Shifter Shifter
they should fix that up a bit
its not like the powervr in the iphone is a beast

then again the framebuffer is tiny
added on the 2010-01-14 15:37:06 by superplek superplek
I do not see anything else but bad points:

.Sluggish fps
.Fullscreen issues
.Spending money in a new NxGPU (not bad idea if you owe some nvidia,ati,intel stock-stuff on Nasdq)
.and being more realistic, all sort of typical browser incompatibilities==additional work. So not so far from porting classic client's from one platform to another.

Notable advantages? Yes.
.Connectivity, online content.
...er...C'mon, any kid could write a simple binary with a "http-tcp" light protocol to recieve-send data from a client allover the Inet.
added on the 2010-01-19 17:26:37 by JaK JaK

login