有没有办法在无头服务器(独立服务器,亚马逊AWS或类似服务器)上运行服务器端的three.js?
目前,当用户的浏览器不支持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实例以编程方式控制完整桌面计算机的路线感觉很可能,虽然很脆弱,但如果有任何纯软件解决方案,我真的不想去那里.
解决方法
在其QA基础架构中,Google可以使用Mesa运行Chromium测试(请参阅问题
97675,通过交换机–use-gl = osmesa).最新版Mesa中的软件光栅化器非常先进,涉及使用LLVM转换着色器并模拟cpu上的执行.你的第一次冒险可能是建造Mesa,建造Chromium,然后尝试将它们绑在一起.
作为旁注,这也是我为PhantomJS本身计划的(在不久的将来),特别是因为Qt也在朝这个方向发展,即仅使用Mesa / LLVMpipe而不是它自己的光栅引擎. The numbers实际上看起来不错.更好的是,对于离线的,非动画的单次拍摄,性能将会令人满意.