亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

使用OpenGL實現3D立體顯示的程序代碼

2020-01-26 16:09:39
字體:
來源:轉載
供稿:網友
由于左眼和右眼觀看顯示器的角度不同,利用這一角度差遮住光線就可將圖像分配給右眼或者左眼,經過大腦將這兩幅由差別的圖像合成為一副具有空間深度和維度信息的圖像,從而可以看到3D圖像。
完整的實現代碼如下所示:
復制代碼 代碼如下:

#include "stdafx.h"
#include "GL/glut.h"
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
static int big = 0;
static bool isLeftEye = false;
#define PI 3.1415926
const GLfloat R = 8.0;
static GLfloat leftMatrix[16] = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0,  0.0,
0.0, 0.0, 0.0, 1.0};
static GLfloat rightMatrix[16] = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0};
static GLfloat leftPersMatrix[16] = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0};
static GLfloat rightPersMatrix[16] = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0};
void init(void)

 const GLfloat SD = 0.06;
 GLfloat n = SD*R/2.0;
 //要是轉秩
 //n=0;
 leftMatrix[12] = n;
 rightMatrix[12] = -n;
 //這里假設眼到屏幕為一米,以米為單位
 GLfloat p = SD/(2*1*tan(PI/6)*1);
 //p = 0.0;
 leftPersMatrix[12] = -p;
 rightPersMatrix[12] = p;
 GLfloat mat_specular[] = {0.8, 0.8, 0.0, 1.0};
 GLfloat mat_shininess[] = {50.0};
 GLfloat light_position[] = {1.0, 1.0, 1.0, 0.0};
 GLfloat white_light[] = {1.0, 1.0, 1.0, 1.0};
 GLfloat yellow_light[] = {1.0, 1.0, 0.0, 1.0};
 GLfloat lmodel_ambient[] = {0.0, 0.7, 0.5, 1.0};
 glClearColor(1.0, 1.0, 1.0, 0.0);
 glShadeModel(GL_SMOOTH);
 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
 glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
 glLightfv(GL_LIGHT0, GL_POSITION, light_position);
 glLightfv(GL_LIGHT0, GL_DIFFUSE, yellow_light);//主體的顏色
 glLightfv(GL_LIGHT0, GL_SPECULAR, white_light);//高光的顏色
 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
 glEnable(GL_DEPTH_TEST);
}
void display(void)
{
 glColorMask(1.0, 1.0,1.0,1.0);
 glClearColor(0.0,0.0,0.0,1.0);
 glClearDepth(1.0);
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glColor3f(1.0, 1.0, 1.0);
 // 畫左眼
 glMatrixMode(GL_PROJECTION);
 glPushMatrix();
 float mat[16];
 glGetFloatv(GL_PROJECTION_MATRIX,mat);
 glLoadIdentity();
 glMultMatrixf(leftPersMatrix);
 glMultMatrixf(mat);
 glMatrixMode(GL_MODELVIEW);
 glPushMatrix();
 glGetFloatv(GL_MODELVIEW_MATRIX,mat);
 glLoadIdentity();
 glMultMatrixf(leftMatrix);
 glMultMatrixf(mat);
 glColorMask(1.0, 0.0,0.0,1.0);
 glRotatef((GLfloat) big, 0.0, 1.0, 0.0);
 glutSolidTeapot(2.0);
 glPopMatrix();
 glMatrixMode(GL_PROJECTION);
 glPopMatrix();
 glFlush();
 //畫右眼
 glClearDepth(1.0);
 glClear(GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_PROJECTION);
 glPushMatrix();
 glGetFloatv(GL_PROJECTION_MATRIX,mat);
 glLoadIdentity();
 glMultMatrixf(rightPersMatrix);
 glMultMatrixf(mat);
 glMatrixMode(GL_MODELVIEW);
 glPushMatrix();
 glGetFloatv(GL_MODELVIEW_MATRIX,mat);
 glLoadIdentity();
 glMultMatrixf(rightMatrix);
 glMultMatrixf(mat);
 glColorMask(0.0, 1.0,1.0,1.0);
 glRotatef((GLfloat) big, 0.0, 1.0, 0.0);
 glutSolidTeapot(2.0);
 glPopMatrix();
 glMatrixMode(GL_PROJECTION);
 glPopMatrix();
 glFlush();
 //glPopMatrix();
 //if(isLeftEye)
 //{ 
 // glMatrixMode(GL_PROJECTION);
 // glMultMatrixf(leftPersMatrix);
 // glMatrixMode(GL_MODELVIEW);
 // glMultMatrixf(leftMatrix);
 // glColorMask(1.0, 0.0,0.0,1.0);
 // 
 // 
 // 
 // isLeftEye = false;
 //}else
 //{ 
 // 
 // glMatrixMode(GL_PROJECTION);
 // glMultMatrixf(rightPersMatrix);
 // glMatrixMode(GL_MODELVIEW);
 // glMultMatrixf(rightMatrix);
 // glColorMask(0.0, 1.0,1.0,1.0); 
 // isLeftEye = true;
 //}
 //glRotatef((GLfloat) big, 0.0, 1.0, 0.0);
 //glutSolidTeapot(1.0);
 //glRotatef((GLfloat) big, 0.0, 1.0, 0.0);
 //glTranslatef(3.0, 0.0, 0.0);
 //glutSolidTeapot(0.5);
 glutSwapBuffers();
}
void reshape(int w, int h)
{
 glViewport(0, 0, (GLsizei) w, (GLsizei) h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(60, (GLfloat)w/(GLfloat)h, 0.01, 20.0);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(0.0, 0.0, R, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 );
}
void keyboard(unsigned char key, int x, int y)
{
 switch (key)
 {
 case 'b':
  big = (big + 1) % 360;
  glutPostRedisplay();
  break;
 case 'B':
  big = (big - 1) % 360;
  glutPostRedisplay();
  break;
 case 27:    // 按ESC鍵時退出程序
  exit (0);
  break;
 default:
  break;
 }
}
void spinDisplay(void)
{
 big = (big + 1) % 360;
 glutPostRedisplay();
}
int main (int argc, char** argv)
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
 glutInitWindowSize(500, 500);
 glutInitWindowPosition(100, 100);
 glutCreateWindow(argv[0]);
 init();
 glutDisplayFunc(display);
 glutReshapeFunc(reshape);
 glutKeyboardFunc(keyboard);
 glutIdleFunc(spinDisplay);
 glutMainLoop();
 return 0;
}

最終效果圖如下所示:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品成人精品| 91久久久国产精品| 91香蕉嫩草影院入口| 精品视频久久久久久久| 日韩精品在线电影| 欧美国产精品va在线观看| 精品视频在线播放色网色视频| 久久视频在线观看免费| 欧美午夜激情在线| 亚洲国产精品yw在线观看| 亚洲精品不卡在线| xvideos成人免费中文版| 亚洲香蕉伊综合在人在线视看| 中文字幕精品久久久久| 亚洲性无码av在线| 91高清免费在线观看| 日韩在线欧美在线国产在线| 疯狂做受xxxx欧美肥白少妇| 91在线直播亚洲| 亚洲综合精品伊人久久| 国产精品一区二区电影| 亚洲色图日韩av| 日本久久亚洲电影| 91系列在线观看| 精品久久久久久久大神国产| 亚洲最大在线视频| 九九九久久国产免费| 在线精品国产欧美| 午夜精品久久久久久久99热| 成人中文字幕在线观看| 欧美大全免费观看电视剧大泉洋| 欧美精品日韩www.p站| 欧美一区二区色| 欧美激情性做爰免费视频| 精品中文字幕在线| 色妞一区二区三区| 岛国av一区二区| 亚洲欧美制服中文字幕| 欧美另类高清videos| 亚洲女同性videos| 日韩大片免费观看视频播放| 精品国产自在精品国产浪潮| 黑人极品videos精品欧美裸| 久久这里有精品| 欧美性一区二区三区| 久久黄色av网站| 亚洲一区二区免费| 久久视频这里只有精品| 欧美性视频精品| 97涩涩爰在线观看亚洲| 国内精品久久影院| 91国产高清在线| 九九热最新视频//这里只有精品| 久久91精品国产91久久跳| 欧美性高跟鞋xxxxhd| 欧美日韩午夜剧场| 亚洲第一区中文99精品| 这里只有精品丝袜| 伊人一区二区三区久久精品| 国产成人福利网站| 国产经典一区二区| 亚洲欧美国产一本综合首页| www.日韩免费| 91视频国产精品| 精品呦交小u女在线| 亚洲免费中文字幕| 中文精品99久久国产香蕉| 成人福利网站在线观看11| 欧美在线视频a| 久久精品一本久久99精品| 亚洲男人天堂2023| 欧美在线精品免播放器视频| 欧美性xxxx18| 国产精品视频播放| 国产精品一二三在线| 亚洲最新av在线网站| 国产一区二区三区直播精品电影| 欧美精品18videos性欧美| 黑人与娇小精品av专区| 久热精品在线视频| 91经典在线视频| 亚洲有声小说3d| 国产精品揄拍一区二区| 日韩精品在线播放| 欧美成人精品一区二区三区| 国产精品xxxxx| 欧美视频中文在线看| 国模吧一区二区三区| 亚洲黄色片网站| 国产精品入口夜色视频大尺度| 性夜试看影院91社区| 久久精品国产99国产精品澳门| 精品国产欧美成人夜夜嗨| 亚洲视频视频在线| 欧美大尺度在线观看| 国产69精品久久久久9| 激情亚洲一区二区三区四区| 国产免费观看久久黄| 最好看的2019年中文视频| 成人在线视频网| 欧美大秀在线观看| 欧美精品免费播放| 久久视频国产精品免费视频在线| 一区二区三区高清国产| 亚洲自拍中文字幕| 日韩视频欧美视频| 亚洲欧洲第一视频| 亚洲精品自在久久| 精品亚洲aⅴ在线观看| 综合激情国产一区| 欧美夫妻性视频| 欧美做受高潮1| 第一福利永久视频精品| 日韩av免费观影| 亚洲精品免费在线视频| 欧洲s码亚洲m码精品一区| 久久久久国产精品一区| 自拍偷拍免费精品| 久久999免费视频| 国产精品久久久久久亚洲影视| 日韩成人在线网站| 九九精品视频在线观看| 成人激情视频在线观看| 国产精品福利久久久| 亚洲精品资源美女情侣酒店| 国产+人+亚洲| 国产精品久久av| 国内精品免费午夜毛片| 红桃av永久久久| 尤物yw午夜国产精品视频| 91丝袜美腿美女视频网站| 欧美精品www在线观看| 国产精品wwwwww| 精品成人乱色一区二区| zzjj国产精品一区二区| 国产主播在线一区| 亚洲国产精品小视频| 国产亚洲精品久久久久久| 在线观看91久久久久久| 国产精品国产福利国产秒拍| 91精品国产综合久久香蕉最新版| 51精品国产黑色丝袜高跟鞋| 色综合导航网站| 国产脚交av在线一区二区| 国产亚洲欧洲黄色| 欧美精品在线网站| 欧美另类老女人| 亚洲天堂久久av| 久久夜色精品国产亚洲aⅴ| 久久久极品av| 91精品久久久久久久久久| 亚洲精品久久久一区二区三区| 国产精品美女999| 欧美激情aaaa| 日韩av网站在线| 日韩欧美国产视频| 成人写真视频福利网| 亚洲国产精品福利| 精品久久香蕉国产线看观看gif| 91国产精品电影| 日韩成人av在线| 中文字幕精品久久久久| 日本不卡免费高清视频| 精品久久久久久国产91|