OpenGl构建基本的房子

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Projectby20126154;20126153;20126155大作业Page1CategoryItemsMarkallocatedGradeDemo(10marks)(H)house-Ahouseshouldbecreatedanddisplayed.2(T)tree-Atleastonetreeshouldbecreatedanddisplayed2(S)Sun–thesunisamustobject.2(E)extraenvironmentobject(s)-youcancreateanyotherextraobjectonthepieceoflandyouhave.2(V)viewpoints-yourprogramshouldenableviewertoviewyourhomewithdifferentangles.2Sub-total:10FinalReport(20marks)(C)clarity-Doesyourreportexplaineverythingthatyoudid?2(D)design-Didyoudesignyourimplementationwell?DidyouuseanyCGtechnique(s)whereappropriate?2(E)English-Arethereanyspellingorgrammaticalerrors?Isyourwritingclearandsuccinct?2(N)neatness-Arethetext,codeandfigureslaidoutwell?Isyourwriting/printinglegible?2(T)thoroughness-Isthereportcomplete?Didyouleaveimportantthingsout?Didyouforgettodescribeimportantcases,rules,orprogrambehaviour?Didyoumakeerrorsinyourprojectthataren'tlistedintheshortcomings?2Sub-total:10Total:outof20GeneralComments:IntroductionandMotivation:我们的实验包括房子、栅栏、小狗住的房子、树木、机器人、太阳、草地等几个简单的事物,保证了能够从各个角度观看到,完成了对项目的基本要求。Projectby20126154;20126153;20126155大作业Page2在实验创建中,我们首先按照要求构思出整体的框架,需要做哪些事物,以及每个事物的大体位置,接着计算各个点的坐标,之后分工进行,每个人做一到两个事物,最后将所有事物整合在一起。还遇到的一个问题是,保证所有物体能够合理的展现出来,不出现掩盖或不能显示效果的现象,这首先是对物体的创建和坐标的把握,然后是对基本变换功能的掌握,对于这方面的设计,不仅需要严谨计算还要学习功能的设计。DesignandImplementations:一开始大体的想法是设计一个带有烟囱的尖顶房子,后来在做房顶的时候遇到了困难,房顶的两侧无法显示,后来找到的改进方法是将房顶做成一个长方体,并将长方体上的两个点合并,并缩短X轴上的距离,加上深度测试,最终出现了想要的效果;之后用类似的方法做出了树和小狗住的房子;太阳一开始想用实验三的方法通过圆去做,后来效果不理想,我们组在网上找到了glutSolidSphere();画球的方法。由此也学会了glutSolidCube();画立方体的方法,利用这种方法做出了栅栏,然后两者综合做出了机器人Shortcomings:设计完实验作业,我们存在着很多的不足,首先,构图坐标有些繁杂冗长,导致代码的篇幅有些长。第二,因为功底是在太差,没有做出贴图和光源,导致整体不是很漂亮。第三,实验思路有些混乱,经常是想起来什么就做什么,导致效率变低。Conclusions:总体来说,能够把项目做到这样的效果,我们还是很满意的,但是还是对没有将四面的背景分别设定表达感到遗憾。Projectby20126154;20126153;20126155大作业Page3如果要重新做一遍,我会选择学习并使用纹理的表现,这个功能的优点是能够使事物表现更为逼真。这门课程让我对CG这门学科有了最基本的认识和学习,希望以后有机会可以多加接触。Appendix:#includeGL/glew.h#includeGL/glut.h#includeGL/gl.h#includeiostreamusingstd::cout;#define_USE_MATH_DEFINES#includemath.hdoublerotate_y=-15;//定义键盘控制旋转X轴,默认-5度doublerotate_x=-15;//定义键盘控制旋转Y轴,默认0度GLfloatw=800;GLfloath=600;GLfloatanglePyramid=0.0f;GLfloatangleCube=0.0f;voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);glLoadIdentity();glTranslatef(0.0f,-100.0f,0.0f);//(左,上,前)glScalef(100,100,100);//放大图像(也可以更改点的数据来达到此效果)//Rotate语句:(旋转度数,X,Y,Z)//延X,Y,Z轴旋转//太阳(不能动)glColor3f(1.0,0.0,0.0);glPushMatrix();glTranslatef(-5.0,5.0,5.0);glutSolidSphere(1.5,20,20);glPopMatrix();glRotatef(rotate_x,1.0,0.0,0.0);glRotatef(rotate_y,0.0,1.0,0.0);/*//太阳(可以动)glColor3f(1.0,0.0,0.0);glPushMatrix();glTranslatef(-5.0,5.0,5.0);glutSolidSphere(1.5,20,20);glPopMatrix();Projectby20126154;20126153;20126155大作业Page4*///房子的两部分公用一个坐标系,屏幕远向近为Z轴,由下向上是Y轴,由左向右是X轴/*房顶*///顶glBegin(GL_QUADS);glColor3f(0.0f,0.0f,0.502f);glVertex3f(2.05f,3.5f,0.0f);glVertex3f(-2.05f,3.5f,0.0f);glVertex3f(-2.05f,3.5f,0.0f);glVertex3f(2.05f,3.5f,0.0f);//底glColor3f(0.0f,0.0f,0.502f);glVertex3f(3.5f,1.5f,2.5f);glVertex3f(-3.5f,1.5f,2.5f);glVertex3f(-3.5f,1.5f,-2.5f);glVertex3f(3.5f,1.5f,-2.5f);//前glColor3f(0.0f,0.0f,0.502f);glVertex3f(2.05f,3.5f,0.0f);glVertex3f(-2.05f,3.5f,0.0f);glVertex3f(-3.5f,1.5f,2.5f);glVertex3f(3.5f,1.5f,2.5f);//后glColor3f(0.0f,0.0f,0.502f);glVertex3f(3.5f,1.5f,-2.5f);glVertex3f(-3.5f,1.5f,-2.5f);glVertex3f(-2.05f,3.5f,0.0f);glVertex3f(2.05f,3.5f,0.0f);//左glColor3f(0.0f,0.0f,0.502f);glVertex3f(-2.05f,3.5f,0.0f);glVertex3f(-2.05f,3.5f,0.0f);glVertex3f(-3.5f,1.5f,-2.5f);glVertex3f(-3.5f,1.5f,2.5f);//右glColor3f(0.0f,0.0f,0.502f);glVertex3f(2.05f,3.5f,0.0f);glVertex3f(2.05f,3.5f,0.0f);glVertex3f(3.5f,1.5f,2.5f);glVertex3f(3.5f,1.5f,-2.5f);glEnd();/*烟囱*///顶glBegin(GL_QUADS);glColor3f(0.502f,0.0f,0.0f);glVertex3f(3.0f,4.0f,-1.0f);Projectby20126154;20126153;20126155大作业Page5glVertex3f(2.0f,4.0f,-1.0f);glVertex3f(2.0f,4.0f,1.0f);glVertex3f(3.0f,4.0f,1.0f);//底glColor3f(0.502f,0.0f,0.0f);glVertex3f(3.0f,2.0f,1.0f);glVertex3f(2.0f,2.0f,1.0f);glVertex3f(2.0f,2.0f,-1.0f);glVertex3f(3.0f,2.0f,-1.0f);//前glColor3f(0.502f,0.0f,0.0f);glVertex3f(3.0f,4.0f,1.0f);glVertex3f(2.0f,4.0f,1.0f);glVertex3f(2.0f,2.0f,1.0f);glVertex3f(3.0f,2.0f,1.0f);//后glColor3f(0.502f,0.0f,0.0f);glVertex3f(3.0f,2.0f,-1.0f);glVertex3f(2.0f,2.0f,-1.0f);glVertex3f(2.0f,4.0f,-1.0f);glVertex3f(3.0f,4.0f,-1.0f);//左glColor3f(0.502f,0.0f,0.0f);glVertex3f(2.0f,4.0f,1.0f);glVertex3f(2.0f,4.0f,-1.0f);glVertex3f(2.0f,2.0f,-1.0f);glVertex3f(2.0f,2.0f,1.0f);//右glColor3f(0.502f,0.0f,0.0f);glVertex3f(3.0f,4.0f,-1.0f);glVertex3f(3.0f,4.0f,1.0f);glVertex3f(3.0f,2.0f,1.0f);glVertex3f(3.0f,2.0f,-1.0f);glEnd();/*屋子*///顶glBegin(GL_QUADS);glColor3f(1.0f,0.0f,0.0f);glVertex3f(2.0f,1.5f,-1.5f);glVertex3f(-2.0f,1.5f,-1.5f);glVertex3f(-2.0f,1.5f,1.5f);glVertex3f(2.0f,1.5f,1.5f);//底glColor3f(1.0f,0.0f,0.0f);glVertex3f(2.0f,-0.5f,1.5f);glVertex3f(-2.0f,-0.5f,1.5f);glVertex3f(-2.0f,-0.5f,-1.5f);glVertex3f(2.0f,-0.5f,-1.5f);Projectby20126154;20126153;20126155大作业Page6//门glColor3f(0.0f,0.0f,1.0f);glVertex3f(0.5,1.0,-1.51);glVertex3f(-0.5,1.0,-1.51);glVertex3f(

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功