欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    维图形程序设计.ppt

    • 资源ID:6333327       资源大小:1.20MB        全文页数:29页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    维图形程序设计.ppt

    三维图形程序设计,1,三维图形程序设计3,Face,三维图形程序设计,2,Chap3 学习如何帮助OpenGL观察,Chap2,三维图形程序设计,3,Simple1.c2,三维图形绘制的最终目标在于将人们在三维空间中思考并创建的三维模型转换为二维图形。在OpenGL中,有三种操作将模型的三维坐标转换为屏幕上的像素位置。,变换:模型变换 视点变换 投影变换,裁剪:裁剪掉位于裁剪面另一面的模型(或模型的局部),视口变换,不可否认的是,帮助OpenGL来观察场景的工作与相机工作有类似之处,所以我们应学习将用相机照相和操作OpenGL对应起来。,三维图形程序设计,4,Temp,三维图形程序设计,5,Temp,在理解顶点变换过程时,让我们回顾一下在线性代数课中所学到的矩阵运算 v=Mv,三维图形程序设计,6,Temp,引例:看看如何绘制一个不那么规整的立方体三维模型,三维图形程序设计,7,Temp,认识几个对日后工作有帮助的函数,void glMatrixMode(mode),mode,GL_MODELVIEW,GL_PROJECTION,GL_TEXTURE,void glLoadIdentity(viod),在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,我们称这种矩阵为单位矩阵它是个方阵,除左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0。对于单位矩阵,有AE=EA=A,三维图形程序设计,8,Temp,认识几个对日后工作有帮助的函数,void glLoadMatrixfd(*m)C=M,void glMultMatrixfd(*m)C=CM,提醒:其默认处理模式数组m44中的mij位于OpenGL变换矩阵的第i列,第j行,这样的思考方式估计会让人沮丧,但没关系,我们可以用m16或下面2个函数来替代,void glLoadTransposeMatrix fd(*m)C=M,void glMultTransposeMatrix fd(*m)C=CM,三维图形程序设计,9,Temp,进入视点和模型变换的话题,从这个图引出的有趣问题,看教材上的一个模型变换的例子,I IN INM INML INMLv NMLv N(M(Lv),三维图形程序设计,10,Temp,从不同的角度来思考同一个问题立方体要停留在x轴上的问题,1、从全局固定坐标的角度,2、从移动局部坐标的角度,结论:第1步:平移第2步:旋转以移动局部坐标系的方式来理解与常规思路一致,三维图形程序设计,11,Temp,模型变换函数集,void glTranslate f d(x,y,z),void glRotate f d(angle,x,y,z),三维图形程序设计,12,Temp,模型变换函数集,void glScale f d(x,y,z),三维图形程序设计,13,Temp,来测试一下函数的效力,思考如何实现下图的变换,三维图形程序设计,14,Temp,学习视点变换,方法:1、使用模型变换函数集来进行视点变换,这需要反向思考即可2、使用实用库函数gluLookAt()gluLookAt(eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz)3、在某些情形下,会要求用户去自定义视点的变换函数,这种情形很少见,因为gluLookAt函数确实很有用,三维图形程序设计,15,Temp,学习投影变换,投影变换意味着:1、投影体决定了物体将被如何投影到屏幕上(2种不同的投影方式)2、决定哪些模型或模型的哪些部分将被裁剪掉,三维图形程序设计,16,Temp,透视投影的函数1、glFrustum(letf,right,bottom,top,near,far)该函数创建一个透视投影矩阵,并将其与当前的矩阵相乘,其中参数定义了视景体:(left,bottom,-near)和(right,top,-near)定义了近裁剪面的左下角和右上角坐标,near和far分别是近裁剪面和远裁剪面距离视点的距离,必须大于0。,透视投影,三维图形程序设计,17,Temp,透视投影的函数1、gluPrespective(fovy,aspect,near,far),三维图形程序设计,18,Temp,正交投影的函数1、glOrtho(left,right,bottom,top,near,far),正交投影,特殊2D格式:glOrtho2D(letf,right,bottom,top),三维图形程序设计,19,Temp,视口是什么?,讨论视口,视口函数:glViewport(x,y,width,height),三维图形程序设计,20,Temp,为什么辛苦创建的窗口里什么也没有?,三维图形程序设计,21,Temp,纠正不那么合适的视角大小角度的一半的正切等于物体大小的一半除以物体距离视点的距离,三维图形程序设计,22,Temp,关于矩阵堆栈的话题1、为什么有矩阵堆栈的概念 为层次模型服务,center,模型视点矩阵,投影矩阵,三维图形程序设计,23,Temp,与矩阵堆栈相关的函数glPushMatrix(void)glPopMatrix(void),三维图形程序设计,24,Temp,返回之前所提到的小车绘制这里假设是已经编写好了绘制车、车轮和螺钉的函数,三维图形程序设计,25,Temp,请思考:目标:绘制一个简单的太阳系模型,只含太阳和一颗行星,行星每天自传一周,每年绕太阳公转一周;太阳就假定静止不同。,提示:行星有2个旋转要处理,一个是公转角度,另一个是自转角度,请思考代码如何编写,三维图形程序设计,26,Temp,来看看答案:核心代码部分,三维图形程序设计,27,Temp,关于附件裁剪面:1、为什么要引入附加裁剪面的概念 你会遇到用户要你显示出物体剖视图的可能吗 2、附加裁剪面的基础内容:1)数量 6 2)平面有Ax+By+Cz+D=0 3、相关函数:glClipPlane(plane,equation),三维图形程序设计,29,Temp,谢谢!,

    注意事项

    本文(维图形程序设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开