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.
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.
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.
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.
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.
Im not certain what your end goal is here
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.
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.
cl_stereo set to 3
3= Row interleaved
4= Column interleaved