服务器端回退渲染

时间:2012-12-23 22:05:02

标签: three.js

有没有办法在无头服务器(独立服务器,亚马逊AWS或类似服务器)上运行服务器端的三个。?

目前,当用户的浏览器不支持WebGL时,我会回到画布渲染(仅出于性能原因的线框)。这对于实时交互来说已经足够了,但是为了使应用程序有意义,用户真的需要以某种方式能够看到具有灯光,阴影,后期处理等的正确渲染版本,即使它具有很长的延迟。

那么......是否可以使用功能性的three.js实例创建服务器端服务?客户端仍然会使用tree.js画布线框渲染,但在说......一秒钟不活动之后,它会通过AJAX从服务器端服务请求完整渲染,并将其简单地覆盖为图像。

目前是否有任何应用程序,库或任何允许这样的东西(功能性javascript + webgl + three.js在无头,最好是Linux服务器上,以及GPU少)?

PhantomJS浮现在脑海中,但显然它还不支持WebGL:http://code.google.com/p/phantomjs/issues/detail?id=273

或者问题的任何替代方法?使用GPU和标准chrome / firefox实例以编程方式控制完整桌面计算机的路线感觉很可能,虽然很脆弱,但如果有任何纯软件解决方案,我真的不想去那里。

3 个答案:

答案 0 :(得分:9)

在其QA基础架构中,Google可以使用Mesa运行Chromium测试(请参阅问题97675,通过交换机--use-gl=osmesa)。最新版Mesa中的软件光栅化器非常先进,涉及使用LLVM转换着色器并模拟CPU上的执行。你的第一次冒险可能是建造Mesa,建造Chromium,然后尝试将它们绑在一起。

作为旁注,这也是我为PhantomJS本身计划的(在不久的将来),特别是因为Qt也朝这个方向发展,即仅使用Mesa / LLVMpipe而不是自己的光栅引擎。 The numbers实际上看起来不错。更好的是,对于离线,非动画的单次拍摄,性能会更令人满意。

答案 1 :(得分:1)

此主题中的一些输入:https://github.com/mrdoob/three.js/issues/2182

特别是这个demo显示了如何使用nodejs在服务器端生成一些图像。

谢谢, 尼科

答案 2 :(得分:0)

下面的链接不会解决您的AWS问题,但会给您一个提示。

我正在使用类似架构的应用程序,并遇到了这些示例:

Multiplayer game with realtime socket.io

My original question on similar architecture