Hello all,
1-
I have written a OpenGL stereo renderer (using directshow) that must work
using dualview (or
similar in other GC).
The problem is that when I turn dualview on and setup OpenGL stereo mode on
both monitors, only the primary works, the second returns an openGL error
that it does not support stereo.
It actually should work, is there anybody there who has experience with
NVIDIA development ? I’m using the current Forceware drivers.
Does ATI supports it in their 256p Graphic card ?
I need dualview because one of the monitors must be in portrait mode due to
it’s vertical interlaced properties. It’s an auto stereo monitor that uses
lenticular lenses.
2-
The renderer receives a media sample from directshow. This sample is stored
in a texture and then it’s rendered using the back ight and left buffers.
I would like to optimize it, for example which glHint values would make
sense ? I disabled depth test also, what else can I disable ?
Currently I’m receiving side-by-side images. At the end I’ve pasted some
code showing how I’m rendering.
Does anybody could point me to a place where I can find info on OpenGL
optimizations (i.e. for NVIDIA).
Any help welcome.
TIA.
wpr.
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_captureWidth,
m_captureHeight, m_colorFormat, m_colorBitFormat, (void*)m_pImage);
glDrawBuffer(GL_BACK_LEFT);
glClear(GL_COLOR_BUFFER_BIT);// Clear Screen
glMatrixMode(GL_MODELVIEW);// Select The Modelview Matrix
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glBindTexture(GL_TEXTURE_2D, m_videoTexture);
glBegin(GL_QUADS);
// video backplate
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f);
glTexCoord2f(m_widthRelation, 0.0f); glVertex3f( 1.0f, -1.0f, 0.0f);
glTexCoord2f(m_widthRelation, m_heightRelation);
glVertex3f( 1.0f, 1.0f, 0.0f);
glTexCoord2f(0.0f, m_heightRelation);
glVertex3f(-1.0f, 1.0f, 0.0f);
glEnd();
glDrawBuffer(GL_BACK_RIGHT);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);// Select The Modelview Matrix
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glBindTexture(GL_TEXTURE_2D, m_videoTexture);
glBegin(GL_QUADS);
// video backplate
glTexCoord2f(m_widthRelation, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f);
glTexCoord2f(2m_widthRelation, 0.0f); glVertex3f( 1.0f, -1.0f,
0.0f);
glTexCoord2f(2m_widthRelation, m_heightRelation);
glVertex3f( 1.0f, 1.0f, 0.0f);
glTexCoord2f(m_widthRelation, m_heightRelation);
glVertex3f(-1.0f, 1.0f, 0.0f);
glEnd();
SwapBuffers(m_hdc);