marlam / bino

3D video player with support for 180°/360° video and Virtual Reality
https://bino3d.org
GNU General Public License v3.0
45 stars 14 forks source link

Emitter Module for Active 3D Glasses Support #23

Closed Kuldeep-kd closed 1 year ago

Kuldeep-kd commented 1 year ago

I’m interested in discussing the possibility of developing an emitter module for active 3D glasses in Bino 3D, to support any 120Hz display, similar to Nvidia 3D Vision.

Given the unavailability of 3D displays and Nvidia 3D Vision, this could be a great solution for those of us who still have 120Hz TVs/Monitors and want to enjoy 3D content.

The proposed solution involves:

Here are some references that back up this idea:

Looking forward to hearing your thoughts on this.

marlam commented 1 year ago

Yes, such an emitter would be useful.

To align perfectly with the frame switch, it needs to be triggered either by the display hardware (monitor or projector; there are some projectors that offer synchronization signals for external emitters) or by the graphics card that drives the display hardware.

Bino is on the wrong abstraction level to be able to get to this precise frame synchronization information.

The queue is

Display - GPU - Kernel driver - Xorg/Wayland - Qt Abstraction - Bino

If you cannot hook the emitter to your display, the next best place is the GPU driver in the kernel. Xorg/Wayland should also have the kind of low level access that is necessary to implement this, but if you implement it there, then it's specific to the window environment. The Qt abstraction is already too far away due to compositing and many other things that can happen on the Xorg/Wayland level. Bino only sees Qt so that it is portable across platforms; it cannot get to the frame timing information.