这里有一个重要的技术兼容点:主动立体眼镜的同步信号与左右眼画面生成机制的匹配。 这就需要显卡和显示设备(显示器或投影仪等)厂商之间同步信号的协调和兼容。 不幸的是,市场上有许多 3D 立体技术的名称。 显卡厂商和显示设备厂商都推出了自己的3D立体格式,造成市场混乱,限制了3D立体技术的发展。
在工程演示、3D仿真演示等领域ssp 3d播放器,通常需要使用多个显示设备进行3D图像的集成播放和实时引擎渲染。 市场上显卡和投影厂商提供的3D播放器无法满足要求,需要自己开发。 立体声播放器。
开发3D立体播放器最重要的技术问题是如何生成左右眼图像,并且左右眼图像的顺序与3D眼镜左右眼图像的切换频率完全相同。 任何一帧的丢失都会导致左右眼颠倒。 出现画面跳跃和立体画面反转的问题。
为了避免左右眼画面序列的延迟,理想的状态是播放软件同时产生左右眼画面并输出到显卡或显示设备。 显卡或显示设备硬件根据时钟顺序独立选择并显示左眼图像和右眼图像。
查阅相关资料后发现,3D和Quad技术都可以支持这种理想模式,而支持3D的显示器和投影仪无论3D菜单如何设置,都不会独立产生3D隔行图像。
3D,据资料显示,可以支持显卡左右眼图像的输入。 通过特殊标记,显卡可以自动生成左右眼序列帧。
但经过实际测试,NV RTX系列和NV RTX系列显卡无论是9还是10都不支持这种3D播放模式。我实际测试了一些3D播放器,它们的菜单中有3D选项,但实际选择没有影响。 有的眼镜厂商会说显卡驱动需要安装418版本,显示设备需要使用经过认证的3D显示器。 实际问题可能是取消了对 3D 的支持。 最新系列显卡仅保留3D SYNC信号接口,不具备完整的3D支持。
Quad,该技术采用立体备份缓存,支持左眼立体图像切换显示。
它提供四个缓冲区 、 、 和 ,并内置对立体显示的支持。 不过目前主流的3D引擎都有较好的支持,Quad仅在高端机型上有。 其应用前景不是很好。
经测试,该播放技术可以在RTX 4000和RTX 8000显卡上使用。
硬件采集卡方案选择
排除上述显卡生成立体图像的方案,唯一的选择就是通过软件生成120Hz左眼和左眼交错序列帧图像。 软件实现方法也比较简单: 1、打开显示垂直同步功能; 2、保证软件生成的帧率稳定,每帧渲染后增加计数器,根据计数器的奇偶校验选择显示左图或右图。
if (StereoSource_LeftRight == m_StereoSourceType) {
if(0 == GetApplication()->m_nFrames % 2) {
tutv = CFloatRect(tutv.left, tutv.top, tutv.right - tutv.Width()/2.0f, tutv.bottom);
}
else {
tutv = CFloatRect(tutv.left + tutv.Width()/2.0f, tutv.top, tutv.right, tutv.bottom);
}
}
else if (StereoSource_RightLeft == m_StereoSourceType) {
if(1 == GetApplication()->m_nFrames % 2) {
tutv = CFloatRect(tutv.left, tutv.top, tutv.right - tutv.Width()/2.0f, tutv.bottom);
}
else {
tutv = CFloatRect(tutv.left + tutv.Width()/2.0f, tutv.top, tutv.right, tutv.bottom);
}
}
else if (StereoSource_TopBottom == m_StereoSourceType) {
if(0 == GetApplication()->m_nFrames % 2) {
tutv = CFloatRect(tutv.left, tutv.top, tutv.right, tutv.bottom - tutv.Height()/2.0f);
}
else {
tutv = CFloatRect(tutv.left, tutv.top + tutv.Height()/2.0f, tutv.right, tutv.bottom);
}
}
else if (StereoSource_BottomTop == m_StereoSourceType) {
if(1 == GetApplication()->m_nFrames % 2) {
tutv = CFloatRect(tutv.left, tutv.top, tutv.right, tutv.bottom - tutv.Height()/2.0f);
}
else {
tutv = CFloatRect(tutv.left, tutv.top + tutv.Height()/2.0f, tutv.right, tutv.bottom);
}
}
Render(pSampleRender, GetClientRect(), tutv);
GetApplication()->m_nFrames=GetApplication()->m_nFrames+1;
如果不使用采集卡方案,需要3D渲染软件直接生成稳定的帧率,很难满足复杂场景演示的要求。 实际使用时,可以配置两台电脑,一台电脑同时渲染左右眼图像,另一台电脑通过采集卡采集左右眼图像,通过软件生成稳定的左右眼图像序列帧。
3D同步信号
3D SYNC信号是通知主动式立体眼镜进行左右眼切换的信号。 该信号与显卡的刷新率一致,配合软件生成的左右眼序列图像,实现3D立体播放。 (我们这里讨论的不是DLP Link技术,它是另一种用于3D图像光学切换的信号,功能与3D SYNC信号类似)
3D SYNC 信号可以由两种设备生成:显卡或显示设备(3D 监视器和 3D 投影仪)。
3D SYNC 显卡支持
由于取消了 3D 支持,大多数显卡上的 3D SYNC 也被取消。 系列专业显卡仅预留一个3D SYNC引脚,需要搭配3D SYNC子卡使用; 在支持3D SYNC的显卡驱动中(需要安装特定版本)。 有一个需要打开的 3D 显示支持选项。 对于某些显示设备,还需要选择匹配的3D格式等。此外,显示器刷新率必须设置在120Hz以上(120Hz刷新率不立体)显示是强制性要求,但它是强制性要求3D),否则即使设置正确,也不会输出 3D SYNC 信号。 如果有多台显示器,只要其中一台不具备120Hz刷新率,就不会输出3D SYNC信号*(注,在实际工程环境中,通常使用VNC软件来远程控制电脑,有些VNC软件通过虚拟显示设备实现远程桌面,会导致显卡认为虚拟显示设备不是120Hz刷新率)*。 总之,使用+3D SYNC子卡产生3D同步信号存在很多陷阱,需要一一测试。
3D SYNC 投影支持
在一些支持3D显示的投影仪和显示器上,有一个3D SYNC输出接口,可以输出3D SYNC信号。 支持3D的显示设备的菜单中通常有一个3D显示支持开关,需要打开该开关,但菜单中的3D格式和格式选项通常没有任何作用。 支持 3D 显示的投影仪和显示器在输出 3D SYNC 信号时不需要 120Hz 刷新率。 通常情况下,你只需要打开3D选项,这比显卡生成3D SYNC要灵活得多。
3D SYNC信号接口为类似PS鼠标的3针圆形接口,可搭配配套的主动立体眼镜使用。 通常,主动式立体眼镜系统配备有无线信号发射器,可以发射红外信号、无线射频信号或蓝牙信号等,用于眼镜左右眼之间的同步信号切换。 无线信号发射器本身并不产生左右眼交换信号,而仅接收来自显卡或3D显示设备的3D SYNC信号进行广播和转发。
至此,总结一下,一个完整的3D立体显示系统需要以下技术支持:
1. 产生 3D SYNC 信号的信号源。 您可以选择支持3D SYNC接口的显卡或立体显示设备。
2、广播3D SYNC信号的无线发射器,可以选择红外信号,也可以选择射频或蓝牙等不易受干扰的信号传输方式。
3.配备无线信号发射器的主动立体眼镜。 通常无线信号发射器和立体眼镜是一起出售的。 信号的发送和接收通常有自己的私有协议,没有通用的标准。
4. 生成左右交错图片序列的立体播放器
标题:开发3D立体播放器,左右眼画面产生机制匹配!
链接:https://yqqlyw.com/news/xydt/3337.html
版权:文章转载自网络,如有侵权,请联系删除!