VC++ MFC 图像编程技巧
三维图形及动画软件开发流程
三维图形及动画场景的显示,就是把所建立的三维空间模型,经过计算机的 复杂处理,最终在计算机二维屏幕上显示的过程。一般,设计三维图形软件要经 过以下步骤:
A.图元建立三维模型。(以OpenGL(Open Graphics Library)为例,OpenGL 是一个开放的图形程序库,它可在UNIX、Windows 95、Windows NT等环境下运行)
B.设置观看物体的窗口和观看点(视点)。
C.设定各物体的属性(如色彩、光照、纹理映射等)
D.如果要物体动起来,还要进行图形变换(如几何变换、视窗变换和投影变换等)。
E.三维图形的二维化。
流程如下:
利用OpernGL的库函数, 我们能较容易按步骤实现三维图形处理软件的设计。
1. 建立三维模型
建立三维模型,就是在三维坐标系中画三维场景。利用画点(Point)、画线(Line)
、画多边形(Polygon)等函数可以建立复杂的空间模型。在表示三维空间时,一般用齐次
坐标(Homogeneous Coordinate)。在实际应用时一般把一系列顶点(Vertex )组织起
来以构成物体或图元。
2.置窗口和视口
图形显示的区域称为显示窗口。流程顺序为:
VC++ MFC 图像编程技巧
定义一个窗口一般由以下步骤完成:设置窗口模式,设置窗口位置、大小,初始化窗
口,窗口颜色设置。
清理窗口是指把窗口清成某种颜色。
要观看场景,也需要一个窗口,即视口。通俗地讲,视口变大,场景被放大;视口变
小,场景被缩小。
3.设置光照
要使物体具有真实感,就要对物体进行光照处理。在计算机图形学中,物体的真实
感应考虑两种因素:光源和物体材质。
光源:对人眼而言,光线照射物体可以看见两种光:反射光和透射光,其中反射光
有三个成分:环境反射、漫反射和镜面反射。
光源的实现过程为:
常用的有: 环境光、漫反射光、镜面反射光、光源位置、点光源聚光指数、点
光源聚光指数、点光源发散角。
材质:材料的颜色是由物体对R、G、B光的反射率来定义的,它也分为环境光、
漫反射光和镜面反射光。
4. 动画
三维动画,就是把三维物体通过各种三维图形变换,把它投影到视口中。OpenGL
提供双缓存来制作动画。计算机在显示前台缓存中的画面同时,在后台缓存中绘制下
一帧画面,需要显示后台缓存中的画面时,只要用函数把前后台缓存交换即可:图形
变换常用的函数,有:平移、旋转、放缩。
VC++ MFC 图像编程技巧
三维图形是通过二维视口(屏幕)来观看的,因此,对三维图形要进行投影变换
和透视变换。