Sign in to follow this  
GuyCalledFrank

Rendering stereoscopic 3D without stereo drivers

Recommended Posts

Hi there! I'm a graphics programmer and been told to make the game compatible with eMagin Z800 device WITH some stereo effect.
After researching a bit, I found that nvidia stereo drivers are not supported anymore.
So the only way to use the device is just plugging it as monitor and rendering simple flat image in 800x600.

What exactly stereo drivers did? rendering images for two eyes with interlacing very fast? rendering each eye to a half of the output?
Maybe I can simulate them if set up rendering correctly and mess with pixel shaders a bit?

Share this post


Link to post
Share on other sites
[quote name='Mr_F_' timestamp='1318682203' post='4872814']
Hi there! I'm a graphics programmer and been told to make the game compatible with eMagin Z800 device WITH some stereo effect.
After researching a bit, I found that nvidia stereo drivers are not supported anymore.
So the only way to use the device is just plugging it as monitor and rendering simple flat image in 800x600.

What exactly stereo drivers did? rendering images for two eyes with interlacing very fast? rendering each eye to a half of the output?
Maybe I can simulate them if set up rendering correctly and mess with pixel shaders a bit?
[/quote]

Hi.

I have some experience with older types of eMagin 3D glasses from the point of a graphic programmer and not just user (gamer). Nothing of the further mentioned required any special nVidia 3D drivers!

The glasses had two separate VGA inputs and thus allowed you to choose the mode where you simply provided two pictures, one for each eye. This worked quite well, you simply had to create a dualhead device and render each "eye" separately, each with a slightly shifted camera position.

The other method supported by the glasses (and successfully tested by me) was the "line" mode, which is using only one video input, where the odd horizontal lines of the image belong to one eye and the even lines to the other eye. The glasses process it properly and show only the right lines in the small LCD screens. This of course halves the horizontal resolution and the image is not very nice, because it has black lines.
Implementation of this method is quite easy, just render one view to a texture, shift the camera and render the second view to another texture and then combine them together (I used a pixel shader for this).

Unfortunatelly I didn't have time yet to try the newer eMagin glasses, although we have the Z800 somewhere (we are using them for science :rolleyes:). But AFAIK they support only one method - you send one full picture for the left eye and then one full picture for the right eye etc. At first I though you just had to use v-sync (presentation interval = one) to allow the glasses to decide which picture goes where (a fixed frequency with alternating eyes). But when it didn't work, I did a bit more research and found out that there was some API which you had to include in the application and then call some function telling the glasses that you want to enable the 3D mode. It was API from eMagin and wasn't related to nVidia 3D drivers. But I've never tried it (yet), sorry.


Btw, graphic drivers (nVidia) can give you stereoscopic view on games etc., including some old games like Quake III, which certainly weren't programmed with 3D in mind. The drivers simply move the camera before displaying.
I personaly made the application directly for stereoscopic display, as stereoscopic view was one of the core features of it, so I didn't need these universal drivers, I simply moved the camera myself and I was sending the image(s) to the specific 3D glasses in the proper form.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this