OpenGL学习脚印: 模型变换(model transformation)

写在前面
前面为本节内容准备了向量和矩阵、线性变换等内容,本节开始学习OpenGL中的坐标处理。OpenGL中的坐标处理进程包括模型变换、视变换、投影变换、视口变换等内容,这个主题的内容有些多,因此分节学习,主题将分为5节内容来学习。本节主要学习模型变换。本节示例代码都可在我的github处下载。

通过本节可以了解到

  • 模型变换的作用
  • 模型变换的类型和计算方法

坐标处理的全局进程(了解,另文详述)

OpenGL中的坐标处理包括模型变换、视变换、投影变换、视口变换等内容,具体进程以下图1所示:

坐标变换
每个进程处理都有其缘由,这些内容计划将会在不同节里分别介绍,最后再整体掌控1遍。
今天我们学习第1个阶段——模型变换。


为何需要模型变换

我们在OpenGL中通过定义1组顶点来定义1个模型,或通过其他3D建模软件事前建好模型然后导入到OpenGL中。顶点属性定义了模型。如果我们要在1个场景中不同位置显示同1个模型怎样办? 如果我们要以不同的比例、不同角度显示同1个模型又怎样办 ?
如果继续以类似的顶点属性数据定义同1个模型,调剂它满足上述需求的话,不但浪费显卡内存,而且这个调剂的工作量也很大,因此效力很低。更好地解决方法是,我们定义的模型根据需要可以履行放大、缩小等操作来不同比例显示,可以通过平移来放在不同位置,可以通过旋转来按不同角度显示。这类方式就是履行模型变换。
模型变换通过对模型履行平移(translation)、缩放(scale)、旋转(rotation)、镜像(reflection)、错切(shear)等操作,来调剂模型的进程。通过模型变换,我们可以依照公道方式指定场景中物体的位置等信息。


平移变换

平移就是将物体从1个位置p=(x,y,z),移动到另外一个位置p=(x,y,z)的进程,记为p=p+d,其中d=(xx,yy,zz)=(tx,ty,tz)。使用齐次坐标系表示为:

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » OpenGL学习脚印: 模型变换(model transformation)

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡