Wie kann ich ein HDMI 1.4a-kompatibles stereoskopisches Signal von einer OpenGL-Anwendung an ein 3DTV-Gerät ausgeben?

8

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?

    
bparker 11.08.2011, 21:20
quelle

3 Antworten

2

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)

    
user1477675 24.06.2012, 05:30
quelle
1

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.

    
Nicol Bolas 11.08.2011 21:35
quelle
0

Wenn Ihre OpenGL-Anwendung eine ausreichend einfache Teilmenge von OpenGL verwendet, könnte Folgendes funktionieren:

  1. Verwenden Sie GLDirect , um Ihre OpenGL-Aufrufe dynamisch in DirectX zu konvertieren.
  2. Verwenden Sie Nvidia 3DTV Play , um das Signal automatisch über HDMI 1.4 zu digitalisieren und zu verpacken.
Christopher Bruns 18.06.2012 14:06
quelle

Tags und Links