在Direct3D程序设计中,除了基本的数学基础知识之外,还需要一定的计算机图形学基础知识,特别是图形的三维变换过程,照明处理和图形光栅化操作等。在这一节重点回顾计算机图形学的基础知识。下图是一本计算机图形学基础知识的知识结构图。
1、计算机图形学基础研究的内容
1.1 图形的生成和表示技术
包括与图形有关的各种基本算法:各种图形基元,如线段、表面、圆弧、多边形的生成算法:区域填充模式和算法;规则和不规则曲线、曲面的生成算法;基本几何体的表示、截交、拟合、和展开的算法;物体的投影,隐藏线、面的隐藏、浓淡处理以及图形显示的灰度与色彩的表示和处理技术。
1.2 图形操作和处理方法
包括图形的几何变换,如平移,放大,缩小、旋转等操作;图形的创建,删除移动,复制等操作,图形的开窗口,剪接、取景、分割、压缩、图段处理等操作的方法;图形的拓扑布局以及各种方法的软、硬件实现方法。
1.3 图形的输出设备和输出技术
包括各种图形的显示体系结构的研究,对图形硬件备份技术的实现。
1.4 图形的输入设备和输入技术
其重点是硬件输入设备、交互技术、以及接口技术的研究。包括各种可能的输入方式及输入设备、图形定位设备、选择设备、各类图形构成命令、命令技术、选择方式,以及对输入功能,请求模式,用户模型,命令、樊哙方法等接口技术的研究。
1.5 图形系统与支持部件
研究诸如图形加速版、图形缓冲板、浮点加速板高分辨率图形转换板等图形部件。
1.6 图形信息的描述和表示
重点是研究图形信息的数据结构、存储方式、检索技术。包括图形信息的各种表示方法,图形信息的编码、压缩、传输、交换以及组织形式、存储技术的研究。
1.7 几何模型的构造技术
重点是研究各种不同类型的几何模型的构造方法及其性能分析,同时根据应用的要求,研究专用或通用的模型构造系统。
1.8 动画技术
包括对实现高速动画的软件和硬件技术、处理技术、和动画图形的开发工具、动画语言以及动态图形仿真技术等的研究。
1.9 图形的实时性和真实感
包括计算机图形的实时生成,变换。分析,综合和显示。图形的真实感即所生成的图形反映客观世界的真是程度。此外,还研究生成自然景象的各种算法,数学模型,随即模型以及分形几何等的应用、图形文法结构和粒子系统的应用。
1.10 图形标准和图形软件包
2、图形变换
输入用户坐标-----》投影-------------》对窗口裁剪---------》窗口到视区的变换--------------》显示或绘图
2.1 图形的几何变化
2.1.1 二维图形的几何变换
2.1.2 三维图形的几何变换
|
2.1.3 形体的投影变换
由于显示器和绘图机只能用二维来表示图形,要显示三维图形就要用投影方法来降低其维数。把三维物体变为二维图形的表示过程称为投影变换。要对三维队形做透视投影,先要在三维空间给定一个投影平面和视点。从视点除法的所有同乡对象的射线和投影平面的焦点就形成了对象的透视投影。若把视点移到无穷远,这时从视点发出所有通向对象的射线会称为平行线,这是的投影为正交投影。投影变换的分为:
1、透视投影
透视投影的视线(投影线)是从视点(观察点)出发,视线是平行的。不平行于投影平面的视线汇聚的一点称为灭点,在坐标轴上的灭点叫做主灭点。主灭点和投影平面切割坐标轴的数量相对应。按照主灭点的个数,透视投影可分为一点透视、二点透视和三点透视。
2、 正交投影
设给定投影方向为(Xd,Yd,Zd),正交投影可以看作是投影中心移向无穷远处的情况,现在根据这个道理来求正交投影的变换公式。要在投影的对象附件任取一点(Xs,Ys,Zs),以该点为起点作为一条射线,其方向指向投影方向的反方向,此射线的参数方程为:
X1=Xs-X td ,y1=yS-ytd, z1=zs-ztd
现在让视点沿着这条射线移动到无穷远处,所得到的极限情况便是一个投影方向为(xd,yd,zd)的正交投影。
xz-xcz xz-z(xs-xtd)
xp=x+ -----------=x+--------------------
Zc-z (Zs-Ztd)-z
再令t趋近与无穷大
xd
xp=x- -------z
Zd
同样可以得到
yd
yp=y- ------z
Zd
这就是正交投影的计算公式。把空间任意一点(x,y,z)的坐标带入上式,便可以求得平面z=0上的投影点(xp,yp)。
2.1.4 裁剪
二维窗口是投影平面上的一个矩形。一般来说,这个矩形的边和投影平面上的坐标轴平行。图形在窗口内的部分被显示出来,窗口外的部分被裁剪。平面上的图形被该该平面上的矩形窗裁剪,称为二维裁窗。
2.1.5 窗口到视口的变换
1、窗口区到视口的变换
在用户坐标系下,窗口区用其左下角(Xwl,Ywb)的坐标,右上角(Xwr,Ywt)来定义,视图区用其左下角(Xvl,Yvb),右上角(Xvr,Yvt)的坐标来定义。则在用户坐标系中的点(Xw,Yw)对应屏幕上视图去中(Xv,Yv),其变换公式为:
Xvr-Xrl
Xv=-------------*(Xw-Xwl)+Xrl
Xwr-Xwl
Yvr-Yrl
Yv=-------------*(Yw-Ywl)+Yrl
Ywr-Ywl