·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
您现在的位置:天新网 > 软件开发 > 开发语言 > 汇编
Win32 OpenGL编程(8) 3D模型变换及其组合应用
http://www.21tx.com 2009年10月27日 CSDN 九天雁翎

1 2 3 4 5 6 下一页

  提要

  在前文(系列文章(7),以下简称XO7,系列其他文章类似)中的照相机比喻中提到了4种3D变换,如下:

  1.确定照相机的位置的过程对应于“视图变换”(Viewing Transformations)

  2.确定物体位置的过程对应于“模型变换”(Modeling Transformations)

  3.确定照相机放大倍数的过程对应于“投影变换”(Projection Transformations)

  4.确定照片大小的过程对应于“视口变换”(Viewport Transformations)

  XO7中我们讲的是第一种变换视图变换,即改变观察者本身的位置,视角等的变换效果,本文开始继续按顺序讲解下一个3D变换过程,模型变换。

  模型变换

  模型变换指的是以设置模型(即我们观察的物体)的位置,方向为目的的变换过程,还在2D时,XO4一文的内容就已经涉及模型变换的知识了,(我还提供了一个2D中使用glTranslate*和glRotate*的较复杂例子,见《Win32 OpenGL编程系列 2D例子 -- 七巧板图形绘制》)只不过那时候我们纯粹是在2D空间中思考这个问题,并且描述如移动,旋转等变换时提及的对象是图元,其实那就是3D的模型变换在2D世界的一个简化版而已,我们可以将以前的知识在3D空间扩展开来,各种变换的效果和意义还是类似的。glTranslate*,glRotate*的使用方式与2D是类似的,仅仅是多考虑一个Z轴的值而已,比如,glTranslate*函数就可能将模型移出原来的x-y平面(即Z=0的平面),而glRotate*的旋转也可能使模型不再在原x-y平面上,对变换角度的计算时,不要漏了就可以了。

  其实当时讲2D时还有个模型变换函数没有讲到,那就是改变模型大小的glScale*函数。

上一篇: 用win32汇编画八卦图
下一篇: JavaFX HTTP网络和XML分析

1 2 3 4 5 6 下一页

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net