计算机图形学OpenGL实验四.docVIP

  • 40
  • 0
  • 约 7页
  • 2017-02-01 发布于重庆
  • 举报
计算机图形学OpenGL实验四

实验报告 学院(系)名称: 姓名 学号 专业 班级 实验项目 实验四:场景漫游 课程名称 计算机图形学 课程代码 实验时间 实验地点 批改意见 成绩 教师签字: 实验环境(软、硬件环境) 实验目的 掌握透视投影与平行投影的基本原理。 掌握OpenGL投影变换的操作方法。 实验内容 构建港口场景。 交互式方式浏览港口场景各部分 设计视点运动轨迹 实验过程: #include gl/glut.h float fsunangle; //绕太阳旋转的角度 float fearthangle; //绕地球旋转的角度 void Initial() { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); GLfloat diffuse[]= { 1.0f, 1.0f, 0.0f, 1.0f }; GLfloat position[] = { 0.0f, 0.0f,-250.0f, 1.0f }; glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse); //指定漫反射光分量 glLightfv(GL_LIGHT1, GL_POSITION,position); //指定光源坐标位置 glEnable(GL_LIGHTING); //启用光照 glEnable(GL_LIGHT1); //黄色光 glEnable(GL_DEPTH_TEST); } void Display(void) { GLfloat position[] = { 0.0f, 0.0f, 1.0f, 2.0f }; glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//清除颜色和深度缓冲区 glMatrixMode(GL_MODELVIEW); //指定当前操作模型视图矩阵堆栈 glLoadIdentity(); //重置模型视图矩阵 glTranslatef(0.0f,0.0f,-250.0f); //将图形沿z轴负向移动 GLfloat mat_diffuse1[]= { 0.2f, 0.8f, 1.0f, 1.0f }; glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse1); GLfloat mat_emission1[]={0.98,0.25,0.12,1.0}; glMaterialfv(GL_FRONT,GL_EMISSION,mat_emission1);//设置太阳颜色为红色 glutSolidSphere(30.0f,40,50); //画太阳 glEnable (GL_LIGHTING); //设置材质属性 GLfloat mat_diffuse2[]={0.8,0.8,0.8,1.0}; glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse2); GLfloat mat_emission2[]={0.0,0.0,1.0,1.0}; glMaterialfv(GL_FRONT,GL_EMISSION,mat_emission2); //地球颜色设置为蓝色 glPushMatrix(); //保存当前的模型视图矩阵 glRotatef(fsunangle,0.0f,1.0f,0.0f); glTranslatef(100.f,0.0f,0.0f); //平移一段距离 glutSolidSphere(8.0f,40,50); //画地球 GLfloat mat_diffuse3[]= { 0.4f, 0.4f, 0.4f, 1.0f }; glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse3); GLfloat mat_emission3[]={0.25,0.25,0.25,1.0}; glMate

文档评论(0)

1亿VIP精品文档

相关文档