代码之家  ›  专栏  ›  技术社区  ›  user16120

多头显示系统

  •  4
  • user16120  · 技术社区  · 16 年前

    我可以用什么工具、API、库来创建一个能够在4、8、9、16等屏幕/投影仪组成的显示屏上实时渲染高分辨率3D场景的系统?对于一个设置8个投影仪我应该去集群解决方案或我应该留在一个具有4个双头显卡的节点?有人有过这样的经历吗?

    5 回复  |  直到 16 年前
        1
  •  5
  •   Glorfindel Doug L.    6 年前

    Equalizer

    它是专门为分离渲染和分布在显示器上而设计的。

    说明:

    均衡器允许用户缩放渲染性能、视觉质量和显示大小。基于均衡器的应用程序可以在任何可视化系统上运行,从简单的工作站到大规模的图形集群、多GPU工作站和虚拟现实安装。

    均衡器的用法示例:

    Render Wall
    (来源: equalizergraphics.com )

        2
  •  2
  •   Eduard - Gabriel Munteanu    16 年前

    希内拉玛 使用X11/Xorg时。但引用维基百科 Xinerama :

    在大多数实现中,OpenGL(3D) 直接渲染仅适用于 其他屏幕上的3D图形 在其中一个屏幕上显示 其他的都是黑色的。(Solaris SPARC OpenGL实现允许 直接呈现到中的所有屏幕 当两个监视器都在

    我建议你先读一下维基百科的文章。

        3
  •  2
  •   Lex van der Sluijs    14 年前

    你应该看看 AMD Radeon HD 5870 Eyefinity 6-edition “显卡。这支持同时输出到六个显示器,并允许在驱动器中设置关于输出排列的多个选项(一行3个,2x3水平/垂直)等。

    关于API:有了这样的卡(也有TripleHead2Go),你就得到了一个虚拟画布,它支持完整的3D加速而不损失性能(比扩展桌面要好得多)。在AMD,他们称之为单一的大表面(可能相当于NVidia所称的水平/垂直跨度)。这里需要注意的是,所有输出需要有相同的分辨率,帧速率和颜色深度。这样的表面可以有5760 x 3240或更高的分辨率,这取决于设置,所以5870是一件好事,这么快。

    然后,在你的应用程序中,你渲染到这个大的虚拟画布上(使用OpenGL,Direct3D或其他一些方式),你就完成了。。。只是你没有说你是要让显示器彼此成一个角度,还是在一个平面配置。在后一种情况下,只需使用一个透视摄影机并渲染到整个backbuffer。但如果你有更多的“环绕”设置,那么你需要在你的场景中有多个摄像头,所有摄像头都从同一点向外看。

    for all all objects
        set textures and shader and renderstate
        for all viewports
            render object to viewport
    

    而不是

    for all viewports
        for all objects
             set textures and shader and renderstate
             render object to viewport
    

    你可以联系AMD来检查是否可以在一个系统中添加两个这样的卡(电源允许),以驱动多达12个显示器。

    全部的

    我在这方面的很多经验都是在 Future Flight Experience 该项目使用了三个光束器(在3D场景中每个都有自己的摄像头)、SLI中的双Nvidia GTX 280和WindowsXP上的Matrox TripleHead2Go。

        4
  •  2
  •   Glorfindel Doug L.    6 年前

    我用一个漂亮的 TripleHead2Go 在家里,我的游戏机可以从一张显卡(甚至在Vista中)驱动3个显示器。两个中间有一个挡板的显示器对游戏来说有点麻烦。 TripleHead2Go
    (来源: maximumpc.com )

    我发现了它们,因为我们正在研究如何在工作中使用它们来驱动我们的一个大约有9个显示器的系统。我想我们最终会使用一个有5个PCI-X插槽和一个双头卡的系统。如果您在主板上有那么多PCI插槽有困难,那么有PCI-X总线扩展系统可供使用。

        5
  •  1
  •   user42056    16 年前

    http://www.pyglet.org )因为python支持多平台的multiplatformmultimonitor;您可能需要查看它们的源代码并弄清楚它是如何实现的。

    推荐文章