使用MFC实现真实感图形绘制.doc

使用MFC实现真实感图形绘制.doc

ID:62061394

大小:1.39 MB

页数:71页

时间:2021-04-16

使用MFC实现真实感图形绘制.doc_第1页
使用MFC实现真实感图形绘制.doc_第2页
使用MFC实现真实感图形绘制.doc_第3页
使用MFC实现真实感图形绘制.doc_第4页
使用MFC实现真实感图形绘制.doc_第5页
资源描述:

《使用MFC实现真实感图形绘制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途第一章第二章第三章第四章第五章第六章第七章第八章第九章使用MFC实现真实感图形绘制真实感图形绘制是计算机图形学的一个重要组成部分.它综合利用数学、物理学、计算机科学和其他学科知识在计算机图形设备上生成象彩色照片那样的真实感图形。要用计算机图形设备绘制场景的真实感图形,就必须首先在计算机中建立该场景的模型,用这个模型来反映场景的特点和属性。这一模型通常是由一批几何数据及数据之间的拓扑关系来表示的,这就是造型技术,它是真实感图形绘制技术的重要组成部分.有了三维场景的模型,并给定了观察点和观察方向以后,就可以通过几

2、何变换和投影变换在屏幕上显示该三维场景的二维图像.为了使二维图像具有立体感,并尽可能逼真地显示出该物体在现实世界中被观察到的形象,就需要运用适当的光照模型,来模拟场景在现实世界中受到各种光源照射时的效果,这就是真实感图形的画面绘制技术,也就是真实感图形的生成技术。用计算机在图形设备上生成连续色调的真实感图形大致可以分为以下四步:第一步,用数学方法建立所需三维场景的几何描述,并将它们输入至计算机。这部分工作可由三维立体造型或曲面造型系统来完成。场景的几何描述直接影响了图形的复杂性和图形绘制的计算耗费,因此选择合理的、有效的数据表示和输

3、入手段是非常重要的。第二步,将三维几何描述转换为二维投影图。这可以通过对场景的投影变换来完成。第三步,确定场景中的所有可见面,这需要使用隐藏面消除算法将被其他物体遮挡的不可见面消去。第四步,计算场景中可见面的颜色,严格地说,就是根据基于光学物理的光照明模型计算可见面投射到观察者眼中的光亮度大小和色彩分量,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形.前三步的相关知识在前面已经进行了介绍,本章将重点介绍如何通过MFC编程的方式,利用光照模型计算场景中可见面的光亮度和颜色,并绘制最终的真实感图形.实际

4、上,现在OpenGL和DirectX等图形函数库提供了很多支持真实感图形绘制的函数,使用它们可以更轻松的完成真实感图形绘制。本章仍采用最基本的MFC编程方式来实现真实感图形绘制,是为了让读者可以更好的体会和理解真实感图形绘制中用到的光照模型等相关知识的原理。1234567899.1演示程序使用的场景造型场景造型又叫几何造型,它是在计算机中建立的用于描述现实场景的几何模型,它是真实感图形生成的一个重要部分。在真实感图形中,一个景物的场景造型体现了该景物的几何特征和景物属性。场景造型的复杂程度直接决定了最终绘制的真实感图形的效果。本章的

5、重点在于光照模型的实现,所以本章中的演示程序没有创建复杂场景,只使用了一种景物—-球体.演示程序根据球体的函数方程,计算球体表面的参数点坐标,然后按这些参数点对球体表面作三角剖分,最后利用光照模型对剖分得到的三角面片计算光照并进行绘制。个人收集整理勿做商业用途1.1.1球体造型球体表面的函数方程式如下:其中,坐标为球心坐标,而坐标为球面上的参数点坐标,为半径,、分别为纬度和经度参数变量。我们创建一个MFC项目RealityDemo,该应用程序作为本章中的演示程序.在该应用程序中添加一个类CObject3D,其基类为CObject。该

6、类的实例对应场景中的一个景物.为了定义景物,需要定义如下结构体://三维空间中点structPoint3D{doublex;doubley;doublez;};//三角面structTriSurface{intno;//所属景物序号Point3Dp1,p2,p3;//三角面的顶点doublexn,yn,zn;//三角面的法向量};//景物光照参数structParam{doublekrd;//景物表面红色光漫反射率doublekgd;//景物表面绿色光漫反射率doublekbd;//景物表面蓝色光漫反射率doublekra;//景物

7、表面红色光泛光反射率doublekga;//景物表面绿色光泛光反射率doublekba;//景物表面蓝色光泛光反射率doublekrs;//景物表面红色光镜面反射率doublekgs;//景物表面绿色光镜面反射率doublekbs;//景物表面蓝光镜面反射率intn;//景物表面镜面高光指数};Point3D定义了三维空间中的一点。而TriSurface则定义了一个三角面片。结构体Param中的各成员变量指定了景物的光照参数,其具体含义将会在介绍光照模型时说明。我们在CObject3D类中添加如下的成员变量和成员函数:个人收集整理勿

8、做商业用途public://球体表面三角剖分后得到的三角面列表CArray〈TriSurface,TriSurface>m_SurfaceList;Paramm_Param;//球体表面光照参数Point3Dp3d[101][101]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。