Ich habe eine OpenGL-Anwendung, die stereoskopisches 3D-Video über HDMI an handelsübliche Fernsehgeräte ausgibt, aber derzeit muss das Display die vor 1.4a-Methoden unterstützen, das richtige Format manuell auszuwählen (nebeneinander, oben-unten usw.). Aber jetzt habe ich ein Gerät, das ich unterstützen muss, unterstützt nur HDMI 1.4a 3D-Signale, die, wie ich es verstehe, ist eine Art von Paket an das Display, dass es sagt, in welchem Format das 3D-Video ist in. Ich benutze eine NVIDIA Quadro 4000 und ich würde gerne wissen, ob es möglich ist, mein Video auszugeben (oder der Videokarte zu sagen, wie es geht), so dass ein Standard-3DTV das richtige Format sieht, ähnlich einer 3D Blu-ray oder einer anderen 1.4a -kompatibles Gerät, ohne einen bestimmten 3D-Modus manuell auswählen zu müssen. Ist das möglich?
Ich sehe keine direkte Antwort auf die Frage.
HDMI 1.4a definiert Metadaten zur Beschreibung des 3D-Formats. video_format 010 bedeutet 3D 3d_structure 0000 frame packing, 0110 top-bottom, 1000 nebeneinander
Aber wenn der Treiber keine API dafür hat, müssen Sie seinen Code ändern (vorausgesetzt, er ist offen oder Sie haben Zugriff)
Wenn Ihre Treiber dies zulassen, können Sie einen Quad-Buffer-Stereo-Rendering-Kontext erstellen. Dieser Kontext hat zwei Back-Puffer und zwei Front-Puffer, ein Paar für das linke Auge und ein Paar für das Recht. Sie rendern auf einen Back-Puffer (GL_BACK_LEFT), dann auf den anderen (GL_BACK_RIGHT), und tauschen sie dann mit der Standard-Swap-Funktion aus.
Das Erstellen eines QBS-Kontexts erfordert eine plattformspezifische Codierung. Wenn Sie Windows verwenden, müssen Sie ein Pixelformat mit Vierfachpuffern auswählen.
Dies ist nur möglich, wenn es Ihre Treiber erlauben. Sie dürfen nicht. Und wenn sie es nicht tun, gibt es nichts, was du tun kannst.
Wenn Ihre OpenGL-Anwendung eine ausreichend einfache Teilmenge von OpenGL verwendet, könnte Folgendes funktionieren:
Tags und Links opengl stereo-3d 3d stereoscopy