




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PPTglMatrixMode(GL_PROJECTION);,33,CurrentTransformationMatrix(CTM),Conceptuallythereisa4x4homogeneouscoordinatematrix,thecurrenttransformationmatrix(CTM)thatispartofthestateandisappliedtoallverticesthatpassdownthepipelineTheCTMisdefinedintheuserprogramandloadedintoatransformationunit,CTM,vertices,vertices,p,p=Cp,C,34,CTMoperations,TheCTMcanbealteredeitherbyloadinganewCTMorbypostmutiplication,Loadanidentitymatrix:CILoadanarbitrarymatrix:CMLoadatranslationmatrix:CTLoadarotationmatrix:CRLoadascalingmatrix:CSPostmultiplybyanarbitrarymatrix:CCMPostmultiplybyatranslationmatrix:CCTPostmultiplybyarotationmatrix:CCRPostmultiplybyascalingmatrix:CCS,35,RotationaboutaFixedPoint,Startwithidentitymatrix:CIMovefixedpointtoorigin:CCTRotate:CCRMovefixedpointback:CCT-1Result:C=TRT1whichisbackwards.Thisresultisaconsequenceofdoingpostmultiplications.Letstryagain.,36,ReversingtheOrder,WewantC=T1RTsowemustdotheoperationsinthefollowingorderCICCT-1CCRCCTEachoperationcorrespondstoonefunctioncallintheprogram.Notethatthelastoperationspecifiedisthefirstexecutedintheprogram,37,CTMinOpenGL,OpenGLhasamodel-viewandaprojectionmatrixinthepipelinewhichareconcatenatedtogethertoformtheCTMCanmanipulateeachbyfirstsettingthecorrectmatrixmode,38,Rotation,Translation,Scaling,glRotatef(theta,vx,vy,vz),glTranslatef(dx,dy,dz),glScalef(sx,sy,sz),glLoadIdentity(),Loadanidentitymatrix:,Multiplyonright:,thetaindegrees,(vx,vy,vz)defineaxisofrotation,Eachhasafloat(f)anddouble(d)format(glScaled),39,Example,Rotationaboutzaxisby30degreeswithafixedpointof(1.0,2.0,3.0)RememberthatlastmatrixspecifiedintheprogramisthefirstappliedDemo,glMatrixMode(GL_MODELVIEW);glLoadIdentity();glTranslatef(1.0,2.0,3.0);glRotatef(30.0,0.0,0.0,1.0);glTranslatef(-1.0,-2.0,-3.0);,40,ArbitraryMatrices,CanloadandmultiplybymatricesdefinedintheapplicationprogramThematrixmisaonedimensionarrayof16elementswhicharethecomponentsofthedesired4x4matrixstoredbycolumnsInglMultMatrixf,mmultipliestheexistingmatrixontheright,glLoadMatrixf(m)glMultMatrixf(m),Matrixmultiply,/沿Y轴向上平移10个单位glTranslatef(0,10,0);/画第一个球体DrawSphere(5);/沿X轴向左平移10个单位glTranslatef(10,0,0);/画第二个球体DrawSphere(5);,41,procedureRenderScene();beginglMatrixMode(GL_MODELVIEW);/沿Y轴向上平移10个单位glTranslatef(0,10,0);/画第一个球体DrawSphere(5);/加载单位矩阵glLoadIdentity();/沿X轴向上平移10个单位glTranslatef(10,0,0);/画第二个球体DrawSphere(5);end;,42,MatrixStacks,InmanysituationswewanttosavetransformationmatricesforuselaterTraversinghierarchicaldatastructuresAvoidingstatechangeswhenexecutingdisplaylistsOpenGLmaintainsstacksforeachtypeofmatrixAccesspresenttype(assetbyglMatrixMode)by,glPushMatrix()glPopMatrix(),GL_PROJECTION,GL_MODEVIEW,MatrixStacks,procedureRenderScene();beginglMatrixMode(GL_MODELVIEW);/pushmatrixstackglPushMatrix;/translate10alongYaxisglTranslatef(0,10,0);/drawthefirstsphereDrawSphere(5);/comebacktothelastsavedstateglPopMatrix;/translate10alongXaxisglTranslatef(10,0,0);/drawthesecondsphereDrawSphere(5);end;,43,44,ReadingBackMatrices,Canalsoaccessmatrices(andotherpartsofthestate)byqueryfunctionsFormatrices,weuseas,glGetIntegervglGetFloatvglGetBooleanvglGetDoublevglIsEnabled,floatm16;glGetFloatv(GL_MODELVIEW,m);,45,UsingTransformations,Example:useidlefunctiontorotateacubeandmousefunctiontochangedirectionofrotationStartwithaprogramthatdrawsacube(colorcube.c)inastandardwayCenteredatoriginSidesalignedwithaxesWilldiscussmodelinginnextlecture,46,main.c,voidmain(intargc,char*argv)glutInit(,47,IdleandMousecallbacks,voidspinCube()thetaaxis+=2.0;if(thetaaxis360.0)thetaaxis-=360.0;glutPostRedisplay();,voidmouse(intbtn,intstate,intx,inty)char*sAxis=X-axis,Y-axis,Z-axis;/*mousecallback,selectsanaxisaboutwhichtorotate*/if(btn=GLUT_LEFT_BUTTON,48,Displaycallback,voiddisplay()glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glLoadIdentity();glRotatef(theta0,1.0,0.0,0.0);glRotatef(theta1,0.0,1.0,0.0);glRotatef(theta2,0.0,0.0,1.0);colorcube();glutSwapBuffers();,Notethatbecauseoffixedfromofcallbacks,variablessuchasthetaandaxismustbedefinedasglobalsDemo,PolygonalMesh,49,Polygonalmesh,50,Object,Pointcloud,Surfacereconstruction,Polygonalmesh,PhDthesisofHuguesHoppe1994,Meshsmoothing,Polygonalmesh,Non-iterative,featurepreservingmeshsmoothingACMTransactionsonGraphics,2003,Meshsimplification,Polygonalmesh,CGAL,manual,Parameterization,Polygonalmesh,Polygonalmesh,Meshmorphing,Polygonalmesh,MeanValueCoordinatesforC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 活动16 探究深圳荔枝说课稿-2023-2024学年小学劳动一年级北师大·深圳报业版《劳动实践指导手册》(主编:韩震)
- 网络传输协议书有哪些
- 职业发展咨询方案价格
- 2025-2030中国高端啤酒市场竞争格局与品牌定位策略对比研究报告
- 2025-2030中国餐饮标准化食材供应体系构建研究报告
- 9 运动的形式教学设计小学科学四年级上册青岛版(五四制2024)
- 玩一玩 动物小合唱说课稿-2025-2026学年小学音乐沪教版二年级下册-沪教版
- 年终会活动方案策划书
- 临济营销方案
- 疫情期间木地板施工方案
- 南海特产与美食课件
- 《三国演义》中的心理描写:以司马懿为例
- 迪尔凯姆社会学主义的巨擎汇总课件
- 家庭经济困难学生认定申请表
- 血栓性血小板减少性紫癜ttp汇编课件
- 阀门安装及阀门安装施工方案
- 大学数学《实变函数》电子教案
- YY/T 0640-2008无源外科植入物通用要求
- GB/T 2637-2016安瓿
- 数轴上的动点问题课件
- 省级公开课(一等奖)雨巷-戴望舒课件
评论
0/150
提交评论