2011-09-20 86 views
7

我们一直在考虑购买3D立体液晶显示器以及具有3D立体视觉功能的图形卡(ATI Radeon 5870或更高版本)的机器。这是为了显示我们使用OpenGL在3D中渲染的一些科学数据。 现在我们可以期待GPU,显示器和快门眼镜能够照顾立体显示,还是我们需要修改渲染程序? 如果有3D立体显示器的图形编程的特定技术,一些教程链接将非常感谢。OpenGL渲染可以用于3D显示器吗?

回答

9

技术上用于立体显示的OpenGL规定。关键字是“Quad Buffered Stereo”。您可以使用glDrawBuffer(GL_BACK_LEFT); /* render left eye view */; glDrawBuffer(GL_BACK_RIGHT); /* render right eye view */;切换左右眼渲染。

不幸的是,Quadbuffer立体声被GPU供应商视为专业功能。所以你需要NVidia Quadro或者AMD/ATI FireGL显卡来获得它的支持。

立体渲染不是通过倾斜眼睛,而是通过在投影矩阵中应用“透镜移位”来完成的。虽然细节有点棘手。去年我曾就此进行过一次演讲,但显然与演示幻灯片的链接有所下降。

关键图是这样的一个(它从我的我的补丁的笔记对搅拌机直接支持立体渲染) Stereoscopy parameters

+0

这是非常有用的信息。 Radeon HD5870规格:“3D立体显示/眼镜支持”令我困惑。在linux上搜索opengl四缓冲区后,我怀疑这可能甚至不可能在Linux上。另一方面[this](http://www.gali-3d.com/archive/articles/StereoOpenGL/StereoscopicOpenGLTutorial.php)讲述了一些不使用四缓冲区的方式来显示立体声的方法。任何想法,如果这可能在消费级GPU上? – subhacom

+0

渲染缓冲区怎么样?如何将它们与显示器同步交换?这种情况唯一的解决方案是使用2台投影仪? – Luca

+0

@Luca Piccioni:Quadbuffer立体声代表交换/快门工作给驾驶员;在自己的代码中同步到快门是可能的,但不可靠。 – datenwolf