Stereo display on passive Film Layer Retarder monitor with manual HOU to Interlaced function. The Op
Bezel buttons control a menu that turns on HDMI Half Over under to Interlaced reformatting on ASUS VG23AH. I had a C++/OpenGL app to edit/display in a borderless full screen window. Hack: Identify the "draw everything" block of code between Clear(color and depth) and swapbuffers. Put a left/right loop around it. In perspective matrix mode retrieve the matrix, load a displacement and multiply it back. The displacement is -iod/2 for left and iod/2 for right. Viewport the upper half of the screen for left and the lower for right. my IOD is 2.5 inches, my monitor is 19.25 inches wide so iod/2 is 0.0324675324675325 Manual on/off of HOU via bezel buttons is a pain and only works on HDMI on the ASUS. Border functions and menues can confuse/defeat the ASUS HOU->interlace. Reformatting an openGL frame from HOU to Interlaced is a trivial video controller setup. If it was available and controllable it would be much better than the buttons and would support DVI and vga interfaced monitors. I have a DVI->HDMI cable. My hack is less than 10 lines including conditional directives.
Bezel buttons control a menu that turns on HDMI Half Over under to Interlaced reformatting on ASUS VG23AH.

I had a C++/OpenGL app to edit/display in a borderless full screen window.

Hack: Identify the "draw everything" block of code between Clear(color and depth) and swapbuffers.

Put a left/right loop around it.

In perspective matrix mode retrieve the matrix, load a displacement and multiply it back.
The displacement is -iod/2 for left and iod/2 for right.

Viewport the upper half of the screen for left and the lower for right.

my IOD is 2.5 inches, my monitor is 19.25 inches wide so iod/2 is 0.0324675324675325

Manual on/off of HOU via bezel buttons is a pain and only works on HDMI on the ASUS.


Border functions and menues can confuse/defeat the ASUS HOU->interlace.

Reformatting an openGL frame from HOU to Interlaced is a trivial video controller setup.
If it was available and controllable it would be much better than the buttons and would support DVI and vga interfaced monitors. I have a DVI->HDMI cable.

My hack is less than 10 lines including conditional directives.

#1
Posted 08/12/2014 03:14 AM   
The HOU->Interlaced function also displaces one eye by 1 line. The displacement could accommodate this.
The HOU->Interlaced function also displaces one eye by 1 line. The displacement could accommodate this.

#2
Posted 08/12/2014 03:23 AM   
Could you write this out in pseudo code so its more easily digestible? Im not certain what your end goal is here
Could you write this out in pseudo code so its more easily digestible?

Im not certain what your end goal is here

#3
Posted 08/12/2014 03:33 AM   
glClearDepth(1.); glClearColor(1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); #define HOU !0 #define STEREO HOU #if STEREO for(int eye=2;eye--;) #endif { #if STEREO glViewport(0,eye?(screenHeight/2):0,screenWidth,screenHeight/2); #endif #if STEREO gluProjection(r,l,t,b,n,f,s,xe+eye?-IOD:IOD,ye,ze); // stereo Projection matrix #else gluProjection(r,l,t,b,n,f,s,xe,ye,ze); // normal perspective #endif // draw everything (twice if stereo) .... } SwapBuffers(hDC); Actual hack. App , an interactive 3d editor in a borderless full screen window now runs in stereo on a manually envoked HOU->stereo capable monitor. No driver. It's easy. What makes 3d porn work makes this work.
glClearDepth(1.);
glClearColor(1.0, 1.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

#define HOU !0
#define STEREO HOU
#if STEREO
for(int eye=2;eye--;)
#endif
{
#if STEREO
glViewport(0,eye?(screenHeight/2):0,screenWidth,screenHeight/2);
#endif
#if STEREO
gluProjection(r,l,t,b,n,f,s,xe+eye?-IOD:IOD,ye,ze); // stereo Projection matrix
#else
gluProjection(r,l,t,b,n,f,s,xe,ye,ze); // normal perspective
#endif

// draw everything (twice if stereo)

....

}
SwapBuffers(hDC);

Actual hack. App , an interactive 3d editor in a borderless full screen window now runs in stereo on
a manually envoked HOU->stereo capable monitor. No driver. It's easy. What makes 3d porn work makes this work.

#4
Posted 08/12/2014 03:58 AM   
The monitor is capable of changing an HOU 1920x1080 frame to stereo. The hack changes a 1-eye 1920x1080 display to a 2-eye stereo 1920x540x2 HOU frame. The Hack and manual operation of the monitor add stereo to an arbitrary app.
The monitor is capable of changing an HOU 1920x1080 frame to stereo.
The hack changes a 1-eye 1920x1080 display to a 2-eye stereo 1920x540x2 HOU frame.

The Hack and manual operation of the monitor add stereo to an arbitrary app.

#5
Posted 08/12/2014 04:29 AM   
Maybe try cl_stereo set to 3 3= Row interleaved 4= Column interleaved
Maybe try

cl_stereo set to 3

3= Row interleaved

4= Column interleaved

#6
Posted 08/12/2014 09:56 AM   
Scroll To Top