openGL构造教室(8)

2020-02-22 10:51

虚拟现实与数据可视化课程作业董元 22011207

caseGLUT_KEY_PAGE_DOWN: Eye.z -= 0.5;

break;

caseGLUT_KEY_PAGE_UP: Eye.z += 0.5;

break;

caseGLUT_KEY_F1: glEnable(GL_LIGHT6);

break;

caseGLUT_KEY_F2: glDisable(GL_LIGHT6);

break;

caseGLUT_KEY_F3: glutIdleFunc(projector_dispaly2);

break;

caseGLUT_KEY_F4: glutIdleFunc(projector_dispaly1); break;

caseGLUT_KEY_F5: if(blackboard1_y>=-16) blackboard1_y-=0.5; break;

caseGLUT_KEY_F6:

if(blackboard1_y<0) blackboard1_y+=0.5;

break;

caseGLUT_KEY_F7: if(blackboard2_y>=-16) blackboard2_y-=0.5; break;

caseGLUT_KEY_F8:

if(blackboard2_y<0) blackboard2_y+=0.5;

break;

caseGLUT_KEY_F9:

if(blackboard3_y>=-16)

36 / 40

虚拟现实与数据可视化课程作业董元 22011207

}

}

blackboard3_y-=0.5; break;

if(blackboard3_y<0) blackboard3_y+=0.5; break; InitFMOD(); break;

FSOUND_Sample_Free (handle1); FSOUND_Close(); break;

caseGLUT_KEY_F10:

caseGLUT_KEY_F11:

caseGLUT_KEY_F12:

reshape(WinWidth, WinHeight); glutPostRedisplay();

GLvoid OnIdle() { }

/***************函数名称:

InitFMOD************************************************************** ****************函数作用:载入并播放音乐

********************************************************/ GLvoid InitFMOD(void) { }

/***************函数名称:

PrintInformation*******************************************************

37 / 40

glutPostRedisplay();

// 载入音频文件

if (FSOUND_Init(44100, 32, 0)) { }

// 载入文件bgmusic.mp3

handle1=FSOUND_Sample_Load (0,\春晖曲.mp3\,0, 0); FSOUND_PlaySound (0,handle1);

// 把声音初始化为44khz

虚拟现实与数据可视化课程作业董元 22011207

****************函数作用:在窗口中显示提示信息

***************************************************/ GLvoid PrintInformation() { }

------------------main.cpp结束--------------------------------------- printf(\); printf(\虚拟现实与数据可视化课程作业************** \\n\); printf(\东南大学仪器科学与工程学院董元22011207****** \\n\); printf(\);

printf(\相关操作按键信息: \\n\); printf(\键关闭窗口 \\n\);

printf(\上下左右及PgUp PgDn键控制变化视角和前进后退 \\n\); printf(\、F2键分别控制开灯、关灯 \\n\); printf(\、F4键分别控制投影仪放下和收起 \\n\); printf(\、F6键控制左边黑板上下 \\n\); printf(\、F8键控制中间黑板上下 \\n\); printf(\、F10键控制右边黑板上下 \\n\);

printf(\、F12键控制播放以及停止播放春晖曲 \\n\); printf(\如对本源码有意见与建议望请分享. QQ529693812\\n\); printf(\);

printf(\); printf(\最后,我知道……***************** \\n\); printf(\这个教室画风有点奇怪***************** \\n\); printf(\看起来也不是那么漂亮******************* \\n\); printf(\但最终版就是这样了**************** \\n\); printf(\虽然花了很多时间但是是个很有趣的过程********* \\n\); printf(\谢谢观赏……********************** \\n\);

printf(\);

printf(\);

2、头文件

//--------------------定义视点结构

----------------------------------------------- typedefstructEyePoint {

//-------------------纹理相关的一些定义----------------------------------------- #define

WIDTH

64

//位图宽度

38 / 40

GLfloat x; GLfloat y; GLfloat z;

}EYEPOINT;

虚拟现实与数据可视化课程作业董元 22011207

#define GLubyte GLfloat GLint

HEIGHT 64 //位图高度

#definePI 3.14159

Image[WIDTH][HEIGHT][4]; xRot = 0.0f;

Image1;

iWidth, iHeight, iMode; pImage;

//位图数据

AUX_RGBImageRec * GLubyte *

//------------------------光照相关的一些参数---------------------------------------- GLfloat mat_specular[]={0.8,1.0,1.0,1.0}; GLfloat mat_shininess[]={5.0};

GLfloat mat_ambient[]={0.1,0.1,0.1,1}; GLfloat light_position[]={40,19,-70,1.0}; GLfloat light_position0[]={40,19.9,-60,1.0}; GLfloat light_position1[]={40,19.9,-0,1.0}; GLfloat light_position2[]={20,19.9,-60,1.0}; GLfloat light_position3[]={20,19.9,0,1.0}; GLfloat light_position4[]={-20,19.9,-60,1.0}; GLfloat light_position5[]={-20,19.9,0,1.0}; GLfloat light_position6[]={-40,19.9,-60,1.0}; GLfloat light_position7[]={-40,19.9,0,1.0}; GLfloat white_light[]={1.0,1.0,1.0,1.0}; //------------------------材质相关的一些参数---------------------------------------- GLfloat mat_amb_diff1[]={1,1,0.45,1.0}; GLfloat mat_spec1[]={1.0f,1.0f,1.0f,1.0f}; GLfloat mat_shine1[]={10.0f};

GLfloat mat_amb_diff2[]={0.3f,0.35f,0.3f,1.0}; GLfloat mat_amb_diff3[]={0.0664,0.2578,0.1211,1.0}; GLfloat mat_amb_diff4[]={1.0f,1.0f,1.0f,1.0}; GLfloat mat_amb_diff5[]={0.0f,0.0f,0.0f,1.0}; GLfloat mat_amb_diff6[]={0.0f,0.0f,0.0f,1.0}; GLfloat model_ambient[]={0.05f,0.05f,0.05f,1.0f}; GLfloat mat_emiss[]={0.65f,0.65f,0.4f,0.0f}; GLfloat no_mat[]

= {0.0f, 0.0f, 0.0f, 1.0f};

//无材质色

//彩色环境色 //漫反射 //无反光 //低反光 //自发光

GLfloat mat_ambient_color[] = {0.8f, 0.8f, 0.2f, 1.0f}; GLfloat mat_diffuse1[] GLfloat no_shininess[] GLfloat low_shininess[] GLfloat mat_emission[] GLfloat projectory=28.0;

GLfloat blackboard1_y=0,blackboard2_y=0,blackboard3_y=0; EYEPOINT Eye;

39 / 40

= {0.1f, 0.5f, 0.8f, 1.0f}; = {0.0f}; = {5.0f};

GLfloat high_shininess[] = {100.0f}; //高反光

= {0.3f, 0.2f, 0.2f, 0.0f};

虚拟现实与数据可视化课程作业董元 22011207

GLint WinWidth; GLint

WinHeight;

GLuint texture[5];

//--------------------------函数声明

-------------------------------------------------- AUX_RGBImageRec *LoadBitmap(char *Filename); int LoadTexture1(); int LoadTexture2(); int LoadTexture3(); int LoadTexture4(); void initlight(void); void init(void); void DrawRoom(void); void DrawDesk(void); void DrawOtherThings(void); void DrawBlackboard(void); void display(void);

void projector_dispaly1(void); void projector_dispaly2(void); void reshape(int w,int h);

GLvoid OnKeyboard(unsignedchar key, int x, int y); GLvoid OnSpecial(int key, int x, int y); GLvoid OnIdle();

GLvoid PrintInformation();

GLvoid InitFMOD(void);

40 / 40


openGL构造教室(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:品管基础知识测试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: