Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I output 3D images to my 3D TV?

I have a 3D TV and feel that I would be shirking my responsibilities (as a geek) if I didn't at least try to make it display pretty 3D images of my own creation!

I've done a very basic amount of OpenGL programming before and so I understand the concepts involved - Assume that I can render myself a simple Tetrahedron or Cube and make it spin around a bit; How can I get my 3D TV to display this image in, well, 3D?

Note that I understand the basics of how 3D works (render the same image twice from 2 different angles, one for each eye), my question is about the logistics of actually doing this (do I need an SDK? etc...)

  • The TV I have uses polarization 3D, although my intention is that this question also be relevant to other 3D technologies (if possible)
  • My laptop has a HDMI output, which is what I intend to use to connect up to my TV with (does this make any difference over using a VGA / component video cable?)
  • In the past I have experimented with GLUT / OpenGL, however if its easier / only really possible to do this using some alternative technology then thats fine
like image 693
Justin Avatar asked Jul 26 '11 09:07

Justin


People also ask

Can I watch 3D movies on my TV with 3D glasses?

Play the 3D movie on your TV. Put on the 3D glasses. If you have passive 3D glasses, just put them on. If you have active 3D glasses, turn the power on, and they are ready to be used.

Do TVs still support 3D?

LG and Sony, the last two major TV makers to support the 3D feature in their TVs, will stop doing so in 2017. None of their sets, not even high-end models such as their new OLED TVs, will be able to show 3D movies and TV shows. Samsung dropped 3D support in 2016; Vizio hasn't offered it since 2013.

How do I use HDMI 3D?

Just plug the laptop to the tv via hdmi cable, and hit play. There should be a 3d button on your remote to turn the dual picture into a single 3d picture. You will need an external amplififer for the sound from your laptop, unless it supports sound over HDMI also, which is rare.


1 Answers

The main problem is, getting your GPU to send a stereoscopic format. In the case of a HDMI connection this will not work without the help of a driver. If you have a professional grade GPU (Quadro, FireGL), then they likely support OpenGL quadbuffers, i.e. you get framebuffers for the left and right eye, both back and front:

glDrawBuffer(GL_BACK_LEFT);
render_left_eye();

glDrawBuffer(GL_BACK_RIGHT);
render_right_eye();

glDrawBuffer(GL_BACK); // renders to both eyes simultanously
render_screen_level_and_nonstereoscopic();

SwapBuffers();

Unfortunately OpenGL quad buffer is considered professional grade stuff.

Instead NVidia (at least) provides a customary stereoscopy library plus some extensions to control it. The main reasoning is, that shared fragments are to be rendered only once and then sent to both eyes with the appropirate parallax applied. However from my semi-professional experiences with stereoscopy¹, these kinds of semi-/automatic stereoscopifications just don't cut it. Stereoscopy requires tight control of the whole "production" pipeline, otherwise you're screwed. With Elephants Dream I went as far as modifying the renderer's core code.

I sent the people at the 3D devision at NVidia some case scenarios where you need exact control over the stereoscopy process, and I hope they will see the light and give access to quad buffer stereo also on consumer grade hardware.

Note that I understand the basics of how 3D works (render the same image twice from 2 different angles, one for each eye)

Actually you don't render from two different angles but with a shifted parallax and lens shift. Otherwise you get some trapezoidal/keystone distortion in the horizontal, which are very, very unpleasant to watch (in fact I now think that in the stereoscopic rendering process one should slightly diverge the optical axes – i.e. doing the complete contrary to what one would naively do – and "over"compensate with lens shift, I'm currently preparing a small study about this, but still need to gather my testing and control groups).


1: heck, I'm the guy who single-handedly stereographed Elephants Dream, rendered it and got it an award at a 3D movie festival.

like image 126
datenwolf Avatar answered Oct 20 '22 03:10

datenwolf