《虚拟现实与系统仿真》实验指导书- 修订(3)

2019-01-27 21:22

glLightfv(GL_LIGHT0,GL_POSITION,light_position); glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); //设置材质参数

GLfloat material_ambient[]={0.2f,0.2f,0.2f,0.2f}; GLfloat material_diffuse[]={0.2f,0.8f,0.4f,0.8f}; GLfloat material_specular[]={0.2f,0.8f,0.4f,0.8f}; GLfloat material_emission[]={0.2f,0.2f,0.2f,1.0f}; GLfloat material_shiness[]={10.0f};

glMaterialfv(GL_BACK,GL_DIFFUSE,material_diffuse); glMaterialfv(GL_BACK,GL_SPECULAR,material_specular); glMaterialfv(GL_BACK,GL_EMISSION,material_emission); glMaterialfv(GL_BACK,GL_SHININESS,material_shiness); glColor3f(1.0f,0.0f,0.0f);//红色 glRotated(60.0,1.0,1.0,1.0); auxSolidTeapot(2.0);

SwapBuffers(pDC->m_hDC); //双缓冲 wglMakeCurrent(NULL,NULL);

glMaterialfv(GL_BACK,GL_AMBIENT,material_ambient);//FRONT_AND_BACK

实验结果:

实验四 纹理映射

一:实验目的

1. 掌握二维纹理映射方法。

2. 掌握利用OpenGL编写绘制具有真实感效果的图形方法。

二:实验内容

掌握二维纹理映射方法。

三:实验要求

通过本实验,掌握掌握二维纹理映射方法。

四:实验程序

实验步骤1~4与上述实验1相同

5在OpenGLPlatView.cpp中OnDraw函数中添加以下代码:

wglMakeCurrent(pDC->m_hDC,m_hRC);

glClearColor(1.0f,1.0f,1.0f,1.0f);

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glEnable(GL_COLOR_MATERIAL); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_NORMALIZE); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glLoadIdentity();

GLfloat light_position[]={1.0f,1.0f,1.0f,0.0f}; GLfloat light_ambient[]={0.2f,0.2f,0.2f,0.2f}; GLfloat light_diffuse[]={0.5f,0.5f,0.2f,0.2f}; GLfloat light_specular[]={0.5f,0.5f,0.5f,0.2f}; glLightfv(GL_LIGHT0,GL_POSITION,light_position); glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); //设置材质参数

GLfloat material_ambient[]={0.2f,0.2f,0.2f,0.2f}; GLfloat material_diffuse[]={0.2f,0.8f,0.4f,0.8f};

glEnable(GL_AUTO_NORMAL);

glMatrixMode(GL_MODELVIEW); //设置光源参数

GLfloat material_specular[]={0.2f,0.8f,0.4f,0.8f}; GLfloat material_emission[]={0.2f,0.2f,0.2f,1.0f}; GLfloat material_shiness[]={10.0f};

glMaterialfv(GL_BACK,GL_DIFFUSE,material_diffuse); glMaterialfv(GL_BACK,GL_SPECULAR,material_specular); glMaterialfv(GL_BACK,GL_EMISSION,material_emission); glMaterialfv(GL_BACK,GL_SHININESS,material_shiness); glRotated(80.0,1.0,1.0,1.0);

AUX_RGBImageRec *picture=auxDIBImageLoad(_T(\));//(此处图片路径为C盘根目if(picture!=NULL) { }

glBegin(GL_QUADS); glColor3f(0.0,1.0,0.0);

glTexCoord2d(-2.0,-2.0);glVertex3d(-2.5,-2.5,3); glTexCoord2d(-2.0,2.0);glVertex3d(2.5,-2.5,3); glTexCoord2d(2.0,2.0);glVertex3d(2.5,2.5,3); glTexCoord2d(2.0,-2.0);glVertex3d(-2.5,2.5,3); glColor3f(1.0,1.0,0.0);

glTexCoord2d(0.0,0.0);glVertex3d(-2.5,2.5,0); glTexCoord2d(0.0,1.0);glVertex3d(2.5,2.5,0); glTexCoord2d(1.0,1.0);glVertex3d(2.5,2.5,3); glTexCoord2d(1.0,0.0);glVertex3d(-2.5,2.5,3); glColor3f(1.0,0.0,1.0);

glEnable(GL_TEXTURE_2D);

glPixelStorei(GL_UNPACK_ALIGNMENT,1); glTexImage2D(GL_TEXTURE_2D,//二维纹理

0,//纹理层次 3,//颜色分量个数

picture->sizeX,//纹理宽度 picture->sizeY,//纹理高度 0,//纹理边框宽度(或) GL_RGB,//像素数据格式

GL_UNSIGNED_BYTE,//像素数据类型 picture->data);//存储图象数据

glMaterialfv(GL_BACK,GL_AMBIENT,material_ambient);//FRONT_AND_BACK

录下)

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);//循环 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);

glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);//GL_DECAL,GL_

glTexCoord2d(0.4,0.4);glVertex3d(-2.5,-2.5,0); glTexCoord2d(0.4,0.6);glVertex3d(-2.5,-2.5,3); glTexCoord2d(0.6,0.6);glVertex3d(-2.5,2.5,3); glTexCoord2d(0.4,0.4);glVertex3d(-2.5,2.5,0); glEnd();

SwapBuffers(pDC->m_hDC); //双缓冲 wglMakeCurrent(NULL,NULL); if (picture!=NULL) {

delete picture->data; delete picture; } // if结构结束 // 添加新的代码结束。

// //////////////////////////////////////////////////////////


《虚拟现实与系统仿真》实验指导书- 修订(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新苏教版四年级上册数学知识点复习

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

马上注册会员

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