多头显示系统[关闭]

问题描述 投票:4回答:5

我可以使用哪些工具,API,库来创建一个能够在由4,8,9,16等屏幕/投影仪组成的显示器中实时渲染高分辨率3D场景的系统?对于使用8台投影机的设置,我应该选择集群解决方案,还是应该使用具有4个双头显卡的单个节点?有人有这方面的经验吗?

opengl 3d hardware directx
5个回答
5
投票

Equalizer可能是你会找到的更好的解决方案之一。

它专门用于拆分渲染并将它们分布在显示器上。

描述:

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

均衡器的使用示例:

Render Wall (来源:equalizergraphics.com

我曾经在没有Equalizer的情况下尝试过类似的事情,我可以说老实说这很糟糕。我们只是勉强工作。在稍后找到均衡器后,我无法想象使用这种工具会有多容易。


2
投票

使用X11 / Xorg时,您可以使用Xinerama或XRandR。但引用维基百科关于Xinerama

在大多数实现中,OpenGL(3D)直接渲染仅适用于其中一个屏幕。应该在其他屏幕上显示3D图形的Windows往往只显示为黑色。这种情况最常见于3D屏幕保护程序,它显示在其中一个屏幕上,黑色显示在其他屏幕上。 (Solaris SPARC OpenGL实现允许在Xinerama模式下直接呈现所有屏幕,当两个显示器位于同一视频卡上时,nvidia驱动程序也是如此。)

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


2
投票

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

关于API:使用这样的卡(但也使用TripleHead2Go),您可以获得单个虚拟画布,它支持完整的3D加速而不会降低性能(比使用扩展桌面要好得多)。在AMD,他们称之为单个大型表面(可能相当于NVidia称之为水平/垂直跨度)。需要注意的是,所有输出都需要具有相同的分辨率,帧速率和颜色深度。这样的表面可能具有5760 x 3240或更高的分辨率,具体取决于设置,因此5870的速度非常快。

然后,在你的应用程序中,你渲染到这个大的虚拟画布(使用OpenGL,Direct3D或其他方式),你就完成了...除了你没有说你是否要让显示器与每个画面成一定角度其他或扁平配置。在后一种情况下,您可以使用单个透视相机并渲染到整个后备缓冲区。但是如果您有更多的“环绕声”设置,那么您需要在场景中安装多个摄像头,所有摄像头都从同一个点向外看。

然后,执行此渲染的最快循环可能是:

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

因为切换对象会导致GPU从状态和缓存中丢失比切换视口更多的有用信息。

您可以联系AMD以检查是否可以将这些卡中的两个(电源允许)添加到单个系统以驱动多达12个显示器。

请注意,并非所有配置都受支持(例如5x1不是,因为我从FAQ中读到)。

在创建Future Flight Experience项目期间收集了很多关于此事的经验,该项目使用三个投影仪(每个投影仪在3D场景中都有自己的相机),SLI中的双Nvidia GTX 280和Windows XP上的Matrox TripleHead2Go。


2
投票

我在我的游戏装备上使用这些漂亮的TripleHead2Go中的一个来从一个视频卡驱动3个显示器(甚至在Vista中)。两个显示器中间有一个挡板,对于游戏来说有点令人失望。 TripleHead2Go (来源:maximumpc.com

我发现了它们,因为我们正在考虑使用它们中的几个来驱动我们拥有大约9个显示器的系统。我想我们最终选择了一个带有5个PCI-X插槽和每个插头的双头卡的系统。如果您在主板上获得那么多PCI插槽时遇到问题,可以使用PCI-X总线扩展系统。


1
投票

我知道用于python的pyglet OpenGL包装器(http://www.pyglet.org)具有多平台多监视器支持;您可能希望查看其源代码并弄清楚它是如何实现的。

© www.soinside.com 2019 - 2024. All rights reserved.