资源描述:
《图形学场景设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机图形学课程设计报告题目自然场景设计院(系、部)—专业班级学号姓名成绩1设计目的与要求1.1设计题目自然场景设计1.2设计目的以小组合作的方式绘制一个自然场景,给绘制的实体添加纹理光照效果,进一步巩固所学知识,提高团队合作能力1•3设计要求(1)采用真实感图形学技术设计一个自然场景(2)模拟出水、云、山体等至少三种景物(3)实现场景的漫游(4)对设计出的图像进行光照处理(5)将图片的纹理贴附到物体表面2总体设计2.1功能简介创建一个900*600的Windows窗口,在窗口中显示冰箱、电灯、茶壶三个实
2、体,根据电灯位置在地面上绘制个实体的投影;为茶壶添加纹理;利用键盘的方向键控制冰箱旋转,实现场景漫游2.2功能模块图2.3软件各模块功能介绍2.3.1冰箱和茶壶的绘制由四边形拼接出冰箱,通过平移旋转函数放置到指定位置,同时实现茶壶的绘制,在茶壶上添加纹理效果,通过平移旋转变换放置到冰箱上面2.3.2顶灯的绘制绘制出一个带灯罩的电灯,并且将光源放置在灯泡的位置2.3.3设置光照设置光照的各种参数,为场景添加光照效果,让实体具有立体效果2.3.4纹理图片生成用数组存储一幅自己设计的纹理图片,方便实体添加纹理效
3、果时的调用2.3.5影子生成根据需求为场景中的实体添加阴影效果,使得场景效果更加逼真2.3.6法向量设置为场景设置法向量,确保实体在不同的角度都能被看到3详细设计及关键代码3.1光照模块详细设计3.1.1光照设置功能设置光照的各种参数,为场景添加光照效果,让实体具有立体效果3.1.2光照设置设计1>设置光照的初值包括:环境光照强度、漫反射光照强度、镜面反射光照强度、光源位置2>在实体绘制函数中开启光照效果3.1.3具体代码实现GLfloatambientLight[]={0.3f,0.3f,1.3f,1.
4、Of};GLfloatdiffuseLight[]={0.7f,0.7f,0.7f,1.Of};GLfloatspecular[]={1.Of,1.Of,1.Of,1.Of};GLfloatlightPos[]={346.Of,400.Of,-20.Of,0.Of};GLfloatspecref[]={1.Of,1.Of,1.Of,1.Of};voidlight(void)//光照函数{GLfloatpoints[3][3]={{-30.Of,-149.Of,-400.Of},{-30.Of,-149.O
5、f,-420.Of},{40.Of,-149.Of,-420.Of}};glEnable(GLDEPTHTEST);glMatrixMode(GLPROJECTION);glFrontFace(GL_CCW);//Counterclock-wisepolygonsfaceoutglEnable(GLCULLFACE);g1Materia1fv(GL_FRONT_AXD_BACK,GL_AMBIENT,ambientLight);glMaterialfv(GL_FRONT_AXD_BACK,GL_DTFFU
6、SE,diffuseLight);glMaterialfv(GLEKONTAND.BACK,GLSPECULAR,specular):glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,75);glLightfv(GLLIGHTO,GLAMBIENT,ambientLight);glLightfv(GL_LIGHT0,GL_DIFFUSE,MffuseLight);glLightfv(GL_LTGHTO,GL_SPECULAR,specular);glLightfv(GL
7、丄IGHTO,GLPOSITION,lightPos);glEnable(GL_LIGHTO);glEnable(GLCOLORMATERIAL);glColorMaterial(GL_FROXT,GL_AMBIENT_AXD_DIFFUSE);glMaterialfv(GL_FRONT,GL_SPECULAR,specref);glMateriali(GLFRONT,GLSHININESS,128):glClearColor(0.4f,0.3f,0.6f,1.Of);glDepthFunc(GLLESS
8、);glEnable(GL_AUTO_NORMAL);glEnable(GL_NORMALTZE);glFrontFace(GL_CW);3.1.4光照设置限制条件光源位置设置必须在预先设置好的空间中3.2纹理模块设置3.2.1纹理设置模块功能用数组存储一幅自己设计的纹理图片,通过设置对应坐标在指定的实体上添加纹理效果3.2.2纹理添加模块设计1>.利用三维数组存储纹理图片中每个点的颜色值,在给实体添加纹理时调用纹理图片生成函