Mr. Boy
Mr. Boy

Reputation: 63728

Are there any libraries that let me display remote rendering on a website?

Rather than use WebGL, NaCl, Flash or developing a custom browser plugin, I'm interested in doing 3D real-time rendering on the server. It's for a specialist product not general use.

Are there any existing technologies for this kind of thing, to save having to write a pretty complex chunk of code? Free or paid are both of interest. Ideally something that can be run on our servers, but hosted services are interesting too since they can offer a pool of servers.

Effectively what I'm describing is a cross-browser control which provides a 'window' into what's being rendered on a remote server. Sort of like VNC through Javascript/HTML5 I suppose.

One suggestion from another site was MJPG but I've no idea if it's feasible.

While not ideal, using Flash on the client side to pull content from the server would not be too terrible.

Upvotes: 7

Views: 1244

Answers (3)

SpliFF
SpliFF

Reputation: 38976

"Sort of like VNC through Javascript/HTML5 I suppose"

The RealVNC Java Viewer actually does this (through Java). It will only fail if you are trying to stream the output generated by a GPU (ie, hardware rendering). I believe VNC can handle this case by changing the method it uses to grab the framebuffer.

According to this page "For times when a 3D application/video cannot be remoted, reverting to VNC Hooks will most likely provide updates, but the performance will be degraded."

There are also workarounds for UNIX

Upvotes: 0

Elias Vasylenko
Elias Vasylenko

Reputation: 1534

If you don't mind having a Flash client, then this should be pretty simple.

I am assuming from the phrasing of the question that you already have plans for how the content will be rendered, or at least that this is aside from the issue presented in your question here.

With this in mind your requirements really reduce to that of live screencasting.

The simplest option that I know of is Flash Media Live Encoder to serve streams to RTMP clients, or Red5 or something like that.

I'm not too sure about what licensing issues may exist with these solutions, but hopefully this will at least give you an idea of where else to look for other options...

P.S. I just noticed you mentioned Flash as an option at the end of the question, so perhaps you were already aware of these options and mainly looking for non-Flash alternatives? If this is the case then I am not sure on what solutions are actually available, but Adobe has released the RTMP specification for public use, and I'm pretty sure none flash clients do exist. I am pretty certain than non flash servers exist, also.

Either way I still think this is a solid option tbh...

Upvotes: 0

Adam Rofer
Adam Rofer

Reputation: 6521

This sounds a lot to me like it has the same requirements as a video game - take a look into these engines:

Photon Engine (commercial): https://www.exitgames.com/

Cloudmach (commercial): http://cloudmach.com/

Quake 2 ported to GWT: http://code.google.com/p/quake2-gwt-port/

Steppe (2.5d so far but server-side rendering): http://steppe.fleetingfantasy.com/

...And here's another SO article on this exact topic: Server Sided 3D rendering

Upvotes: 1

Related Questions