电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

图形学场景设计VIP免费

图形学场景设计_第1页
1/12
图形学场景设计_第2页
2/12
图形学场景设计_第3页
3/12
计算机图形学课程设计报告题目自然场景设计院(系、部)专业班级学号姓名成绩1设计目的与要求1.1设计题目自然场景设计1.2设计目的以小组合作的方式绘制一个自然场景,给绘制的实体添加纹理光照效果,进一步巩固所学知识,提高团队合作能力1.3设计要求(1)采用真实感图形学技术设计一个自然场景(2)模拟出水、云、山体等至少三种景物(3)实现场景的漫游(4)对设计出的图像进行光照处理(5)将图片的纹理贴附到物体表面2总体设计2.1功能简介创建一个900*600的Windows窗口,在窗口中显示冰箱、电灯、茶壶三个实体,根据电灯位置在地面上绘制个实体的投影;为茶壶添加纹理;利用键盘的方向键控制冰箱旋转,实现场景漫游2.2功能模块图主函数初始化函数SetupRC()实体绘制函数RenderScene()键盘操作函数SpecialKeys()电灯绘制draw_lamp()()冰箱绘制draw_refrigerator()茶壶绘制glutSolidTeapot()2.3软件各模块功能介绍2.3.1冰箱和茶壶的绘制由四边形拼接出冰箱,通过平移旋转函数放置到指定位置,同时实现茶壶的绘制,在茶壶上添加纹理效果,通过平移旋转变换放置到冰箱上面2.3.2顶灯的绘制绘制出一个带灯罩的电灯,并且将光源放置在灯泡的位置2.3.3设置光照设置光照的各种参数,为场景添加光照效果,让实体具有立体效果2.3.4纹理图片生成用数组存储一幅自己设计的纹理图片,方便实体添加纹理效果时的调用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.0f};GLfloatdiffuseLight[]={0.7f,0.7f,0.7f,1.0f};GLfloatspecular[]={1.0f,1.0f,1.0f,1.0f};GLfloatlightPos[]={346.0f,400.0f,-20.0f,0.0f};GLfloatspecref[]={1.0f,1.0f,1.0f,1.0f};voidlight(void)//光照函数{GLfloatpoints[3][3]={{-30.0f,-149.0f,-400.0f},{-30.0f,-149.0f,-420.0f},{40.0f,-149.0f,-420.0f}};glEnable(GL_DEPTH_TEST);glMatrixMode(GL_PROJECTION);glFrontFace(GL_CCW);//Counterclock-wisepolygonsfaceoutglEnable(GL_CULL_FACE);glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,ambientLight);glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,diffuseLight);glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,specular);glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,75);glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);glLightfv(GL_LIGHT0,GL_SPECULAR,specular);glLightfv(GL_LIGHT0,GL_POSITION,lightPos);glEnable(GL_LIGHT0);glEnable(GL_COLOR_MATERIAL);glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);glMaterialfv(GL_FRONT,GL_SPECULAR,specref);glMateriali(GL_FRONT,GL_SHININESS,128);glClearColor(0.4f,0.3f,0.6f,1.0f);glDepthFunc(GL_LESS);glEnable(GL_AUTO_NORMAL);glEnable(GL_NORMALIZE);glFrontFace(GL_CW);}3.1.4光照设置限制条件光源位置设置必须在预先设置好的空间中3.2纹理模块设置3.2.1纹理设置模块功能用数组存储一幅自己设计的纹理图片,通过设置对应坐标在指定的实体上添加纹理效果3.2.2纹理添加模块设计1>.利用三维数组存储纹理图片中每个点的颜色值,在给实体添加纹理时调用纹理图片生成函数,将三维数组中存储的纹理图案添加到实体上2>.从文件中读取一张图片,按照需要将纹理图片添加到对应的实体上3.2.3纹理添加模块数据结构描述1>.所用数据结构为一个三维数组,用于存储纹理图片的每点颜色值2>.文件存储纹理图片3.2.4纹理添加模块具体实现代码1>.纹理图片自己绘制voidGet_Mandeldrot_image(void)//生成纹理图片{doublemin_a,max_a,min_b,max_b,step_a,step_b,a,b;intn=64,x,y,k,t;//n=180foraJuliasetfloatscale=...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

图形学场景设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部