4 ms·
Show HN: A conformant WebGL implementation for Node.js
- antihero 10y agoDoes this mean we can basically render any WebGL code server side and effectively stream the output?
- jpambrun 10y agoAnd, if so, is it hardware accelerated or a software implementation? Edit: And, how many concurrent context could it support?
- roblabla 10y agoIt looks like it uses whatever native implementation of EGL there is behindt he scenes. So it should be hardware accelerated if there is a GPU on your server. As for whether you can stream the output, looks like you can with `gl.readPixels`, but you'll probably want to compress it somehow. Sending a raw video stream is heavy.
- vvanders 10y agoThat's a really bad idea, glReadPixels is usually a full pipeline flush + read back and stall which kills perf for all sorts of reasons.
- 33a 10y agoYou could, but it would be slow, or at least pretty heavy per client. That said if you have a beefy enough server I suppose it might work.
- nomel 10y agoI don't really understand what's going on here. Is there a practical use for this? When would rendering, server side, ever be beneficial (assuming that's what's going on here)?
- 33a 10y agoLots of places. For example: * You want to generate preview images of WebGL content, such as in a gallery * You are using WebGL to accelerate some computation in nodejs with a library like https://github.com/waylonflinn/weblas https://github.com/waylonflinn/weblas * You want to test your WebGL code using continuous integration etc.
- jpambrun 10y agoI know that some medical image viewers use server side rendering for segmented volumes. Such tasks are computationally intensive and usually involves very large datasets. With server side rendering, you can easily and efficiently stream videos or even JPEGs to thin clients such as mobile devices.
- AshleysBrain 10y agoThis looks cool. Are there any demos we could try in our browser?
- bhouston 10y agoIt is a little buggy for production use at the moment. A bunch of basic things are broken, but we are working on fixing those issues in the near term: https://github.com/stackgl/headless-gl/issues/62 https://github.com/stackgl/headless-gl/issues/62 BTW pretty sure OP is mikolalysenko, the author of stackgl. :) Heh, great work!
- 33a 10y agoOk, solved this. The validation for this part of the constant blending was a bit too strict https://www.khronos.org/registry/webgl/specs/1.0/#CONSTANT_COLOR_BLEND https://www.khronos.org/registry/webgl/specs/1.0/#CONSTANT_C... . Somehow the conformance suite didn't catch this problem (go figure).
- 0x0 10y agoFunny they mention a project called "node-webgl" being an opengl wrapper. Seems like they should have traded project names, since "headless-gl" sounds like an OpenGL thing and "node-webgl" sounds like a WebGL thing, while they're both the opposite! :)
- 33a 10y agoGuess which one got there first and took the webgl name on npm? :)
- z3t4 10y agoIt would be cool if you could talk to the graphics driver and other IO devices directly from NodeJS. I guess it would require a layer for cross platform standardization. But would be awesome if you could make a Graphics engine in NodeJS that just worked everywhere. I've tried some of the graphics packages for nodeJS but failed at installing their dependencies. I want something that just works or installable via NPM.
- yarp 10y agoIs there chance to run threejs on it?