【问题标题】:server-side fallback rendering服务器端回退渲染
【发布时间】:2012-12-10 12:08:00
【问题描述】:

有没有办法让 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 实例的完整台式机的路线感觉可行,但很脆弱,如果有任何纯软件解决方案,我真的不想去那里。

【问题讨论】:

    标签: three.js


    【解决方案1】:

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

    附带说明一下,这也是我为 PhantomJS 本身计划的(在不久的将来),特别是因为 Qt 也在朝着这个方向发展,即使用 Mesa/LLVMpipe 而不是仅使用它自己的光栅引擎。 The numbers 实际上看起来不错。更好的是,对于离线、非动画的单镜头捕捉,性能会更令人满意。

    【讨论】:

    • 这正是我正在寻找的(好吧,在没有更现成的选项的情况下)。我不知道 Chromium 对 Mesa 渲染器的支持。希望我能在这方面取得成功,或者如果你先让它在 PhantomJS 中工作会更好:)
    • @yaku 你能用 Mesa 渲染器运行 Chromium 吗?
    • @frank 不,我没有。并不是说它做不到,只是我没有太多构建和调整大型软件的经验。仍然期待有时间再试一次,或者 PhantomJS 或其他现有解决方案是否支持 WebGL。
    • 这可能是在此评论线程(4 年前)之后添加的,但 PhantomJS 已明确声明他们不打算支持 WebGL phantomjs.org/supported-web-standards.html#unsupported-features
    【解决方案2】:

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

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

    谢谢, 妮可

    【讨论】:

    • 不幸的是,它看起来只是 CanvasRenderer。我正在寻找完整的 WebGLRenderer 功能,即使它们是非加速的并且在软件中渲染(大约 1 FPS 应该足够了)。以某种方式使 node.js(或 phantomjs)与 osmesa 或 llvmpipe(?)等软件 OpenGL 渲染器一起工作可能是要走的路,但那是..我不知道从哪里开始。
    【解决方案3】:

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

    我正在开发具有类似架构的应用程序,并遇到了以下示例:

    Multiplayer game with realtime socket.io

    My original question on similar architecture

    【讨论】:

    • 请从参考链接中引用答案的基本部分,因为如果链接页面发生变化,答案可能会失效。
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2015-05-07
    • 2018-01-05
    相关资源
    最近更新 更多