《维图形程序设计》PPT课件.ppt

上传人:sh****n 文档编号:8677442 上传时间:2020-03-30 格式:PPT 页数:29 大小:2MB
返回 下载 相关 举报
《维图形程序设计》PPT课件.ppt_第1页
第1页 / 共29页
《维图形程序设计》PPT课件.ppt_第2页
第2页 / 共29页
《维图形程序设计》PPT课件.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
三维图形程序设计 1 三维图形程序设计3 Face 三维图形程序设计 2 Chap3学习如何帮助OpenGL观察 Chap2 三维图形程序设计 3 Simple1 c2 三维图形绘制的最终目标在于将人们在三维空间中思考并创建的三维模型转换为二维图形 在OpenGL中 有三种操作将模型的三维坐标转换为屏幕上的像素位置 变换 模型变换视点变换投影变换 裁剪 裁剪掉位于裁剪面另一面的模型 或模型的局部 视口变换 不可否认的是 帮助OpenGL来观察场景的工作与相机工作有类似之处 所以我们应学习将用相机照相和操作OpenGL对应起来 三维图形程序设计 4 Temp 三维图形程序设计 5 Temp 在理解顶点变换过程时 让我们回顾一下在线性代数课中所学到的矩阵运算v Mv 三维图形程序设计 6 Temp 引例 看看如何绘制一个不那么规整的立方体三维模型 三维图形程序设计 7 Temp 认识几个对日后工作有帮助的函数 voidglMatrixMode mode mode GL MODELVIEW GL PROJECTION GL TEXTURE voidglLoadIdentity viod 在矩阵的乘法中 有一种矩阵起着特殊的作用 如同数的乘法中的1 我们称这种矩阵为单位矩阵 它是个方阵 除左上角到右下角的对角线 称为主对角线 上的元素均为1以外全都为0 对于单位矩阵 有AE EA A 三维图形程序设计 8 Temp 认识几个对日后工作有帮助的函数 voidglLoadMatrix fd m C M voidglMultMatrix fd m C CM 提醒 其默认处理模式数组m 4 4 中的m i j 位于OpenGL变换矩阵的第i列 第j行 这样的思考方式估计会让人沮丧 但没关系 我们可以用m 16 或下面2个函数来替代 voidglLoadTransposeMatrix fd m C M voidglMultTransposeMatrix fd m C CM 三维图形程序设计 9 Temp 进入视点和模型变换的话题 从这个图引出的有趣问题 看教材上的一个模型变换的例子 IININMINMLINMLvNMLvN M Lv 三维图形程序设计 10 Temp 从不同的角度来思考同一个问题 立方体要停留在x轴上的问题 1 从全局固定坐标的角度 2 从移动局部坐标的角度 结论 第1步 平移第2步 旋转以移动局部坐标系的方式来理解与常规思路一致 三维图形程序设计 11 Temp 模型变换函数集 voidglTranslate fd x y z voidglRotate fd angle x y z 三维图形程序设计 12 Temp 模型变换函数集 voidglScale fd 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 数量62 平面有Ax By Cz D 03 相关函数 glClipPlane plane equation 三维图形程序设计 29 Temp 谢谢
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!