step2

以下のプログラムをVS2010等でビルドして実行します。
やっていることは描画毎に左右の視点を指定しているだけです。
glut32.libとglew32.libをリンクしてください。

//**************************************************************
// OpenGLでアクティブ方式の3D立体視 by g.koutaki
// ただ、wglSwapIntervalEXT(1) で垂直同期オン にして
// 偶数奇数フレームで視点位置を変えて描画しているだけです。
//
// ・モニターの設定で120Hzにして(アクティブ形式の3Dモニタ・プロジェクタはできるかと)、
//  実行時はそのモニター以外は切りました。
// ・左右の判定はしていないので、左右逆になる可能性があります。
// ・処理落ちすると左右の画像が入れ替わる可能性があります。
//
// 参考URL: http://www21.atwiki.jp/opengl/pages/80.html
//**************************************************************


#include <stdlib.h>
#include <string>
#include <GL/glew.h>
#include <GL/wglew.h>
#include <GL/glut.h>

#define WIDTH  1280
#define HEIGHT 720


//回転用
float anglex = 0.0f;
//ライトの位置
GLfloat lightpos[] = { 200.0, 150.0, -500.0, 1.0 };
//描画フレーム数
int count = 0;


char buf[255],buf2[255];
/* 描画のコールバック関数 */
void display(void)
{
	static GLfloat diffuse[3] = {1.0f, 0.0f, 0.0f};
	static GLfloat ambient[3] = {0.25f, 0.25f, 0.25f};
	static GLfloat specular[3] = {1.0f, 1.0f, 1.0f};
	static GLfloat shininess[1] = {32.0f};

	anglex+=0.2f;
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glViewport(0, 0, WIDTH, HEIGHT);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	//視野角,アスペクト比(ウィンドウの幅/高さ),描画する範囲(最も近い距離,最も遠い距離)
	gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	//***********************************************
	// 視点の設定
	// フレームの奇数/偶数で視点位置を変える
	//***********************************************
	gluLookAt(
		30 * (count++ % 2) - 15,
		10.0,-200.0, //カメラの座標
		0.0,0.0,0.0, // 注視点の座標
		0.0,1.0,0.0); // 画面の上方向を指すベクトル
	//ライトの設定
	glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
	//マテリアルの設定
	glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
	glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
	glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
	glMaterialfv(GL_FRONT, GL_SHININESS, shininess);
	//回転
	glRotatef(anglex,0.8f,0.5f,0.3f);//X軸を回転
	// Teapot描画
	glutSolidTeapot(30.0);

	glutSwapBuffers();

}
void idle(void)
{
	glutPostRedisplay();
}


void Init(){
	glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);

	//***********************************************
	wglSwapIntervalEXT(1);//垂直同期オン 
	//***********************************************
}

int main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
	glutInitWindowSize(WIDTH, HEIGHT);
	glutCreateWindow(argv[0]);
	glewInit();
	glutDisplayFunc(display);
	Init();
	glutIdleFunc(idle);
	glutMainLoop();

	return 0;
}