基于MFC下真实感图形实现.doc

基于MFC下真实感图形实现.doc

ID:26411842

大小:58.50 KB

页数:4页

时间:2018-11-26

基于MFC下真实感图形实现.doc_第1页
基于MFC下真实感图形实现.doc_第2页
基于MFC下真实感图形实现.doc_第3页
基于MFC下真实感图形实现.doc_第4页
资源描述:

《基于MFC下真实感图形实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于MFC下真实感图形实现摘要:计算机图形图像领域中,真实感只是计算机辅助人们表达场景的一种表达方式,能满足人的某一方面的需求(产生照片般真实的图像),真实感渲染追求的是逼真的模拟现实场景。本文用VisualC++的MFC框架实现通过建立“真实感图形学”程序,包括消隐绘制几何球体类、颜色模型类、光照模型类、材质类、基于颜色缓冲区和深度缓冲区的直线基元和三角形基元类、基于z-buffer算法的场景深度消隐类等。实现泛光灯和聚光灯下的光照线框球体、光照刻球体、光滑光照球体。1、前言自二十世纪六十年代计算机图形学出现开始,对仿真真实世界的追求一直是图形学界不懈努力的目标。经典的真实感图形学致力于产生

2、仿真图像和视频,其对真实世界的再现达到照片的水平,并使人们无从分辨。真实感图形学已经成为计算机图形学中的一个重要组成部分,在日常工作、学习和生活中已经有了非常广泛的应用。它的基本要求就是在计算机中生成三维场景的真实感图形图像。迄今为止,真实感图形学一般采用物理建模的方法,从物理模型出发,对场景的颜色、材质等属性进行模拟,并仿真光线和对象的交互,来产生真实的结果。这和人们观察世界、摄影、摄像的过程是完全一致的。在众多工作中,光线跟踪和辐射度算法已经成为真实感图形学的经典方法。由于真实世界的丰富多样,并且自然界的种种过程极其复杂,并且难以预测,因此通过模拟真实世界来实现真实感渲染是一项极端复杂的工

3、作。。在传统的基于物理模型的方法中,研究人员在定义场景时,对对象的材质种类和场景光照进行精挑细选,并由此产生令人信服的结果图像。为了避免极端的计算复杂性,很多研究致力于采用特殊方法实现特定类别的对象的模拟,比如微观世界或者化学过程的仿真。但是我们仍然无法给真实世界定义一个通用的模型。本文的应用程序中对场景中的物体进行透视投影,并作隐藏面的消隐,然后计算可见面的光照明暗效果,得到场景的真实感图形显示。2、绘制直线直线是最基本的图形元素,是构成复杂图形的基础,直线绘制算法的优劣对整个图形系统的效率和质量有着直接而重要的影响。由于目前人们所采用的显示器多为光栅扫描显示器,所以对直线绘制算法的研究也主

4、要集中在选择距离实际直线最近的光栅点的整数算法上。通过对这类直线绘制算法的比较和分析,将其分为2大类:1)每一次有效的特征判断生成固定数目的像素点。最著名的直线绘制算法是20世纪60年代中期出现的Bresenham算法,它在绘制线段的过程中只涉及整数的加法和符号的判断,绘制一个点的计算量是1次整数加法和1次符号判断,该算法非常适合于硬件实现。1975年,Gardner基于直线的对称性提出了新的算法,从直线的两端同时生成2个点,以提高绘制速度。在20世纪80年代和90年代初期,很多研究者提出了多步算法:二步法,一次判断生成2个点,其基本思想是每生成2个像素点更新一次决策参数;四步法,将直线中可能

5、出现的所有四步行进码(18种形式)事先存储在一个矩阵中,通过判断所绘制直线的形式来确定四步行进码,因此该算法是以增加代码的复杂性和存储容量来提高速度的;多步法,提出了更加一般的8,16,…,2n步算法(N-Step),但是该算法的代码复杂性和存储容量更高。2)一次有效的特征判断自适应地确定生成的像素数目。这类算法一次判断可生成相应像素行上的所有像素点,其效率明显取决于像素行上像素点的数目。对于斜率在12,1之间的直线,在大部分像素行上只有一个像素,由于算法代码的复杂性,其绘制速度反而比Bresenham算法慢。本程序采用的是用Bresenham算法来实现直线的绘制,具体思想为:只要给定两个端点

6、和对应的颜色,就可绘制一条直线。基于颜色深度缓冲器和深度缓冲器的直线基元不再将绘制直线的工作直接与设备描述表和内存位图相连接,而是通过颜色缓冲区来记录扫描转换后的像素颜色。源程序的CBLine类和CBTriangle类为基于光栅系统的直线和三角形基元。在扫描转换三角形时,需要单独处理边界和内点。用Bresenham算法来扫描转换边界,并使用算法获取扫描点的颜色和深度。对三角形内点,则通过边界点的颜色和深度利用增量法来进行计算,程序中采用双线性插值法同时对颜色和深度的计算。1、绘制球体应用几何拓扑绘制球体,程序中采用经纬度的地理划分法将一个球体分为若干个小区域,这些小区域常称为经纬区域,两极区域

7、用三角形小面来逼近,其他区域用四边形小面来逼近,地理划分法从北向南递增,北极点的纬度为0度,南极点的纬度为180度,将球细化来描述求得几何拓扑。定义定点:北极点的序号为0,然后从Y轴正向开始,按逆时针方向计算序号递增的顶点,最后的定点为南极点。定义边:从北极、Y轴正方向开始,逆时针方向逐个定义每条经边。定义小面:从北极、Y轴正方向开始,逆时针方向逐个定义每条纬度带上的小面,小面定点排列顺序以小面的

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

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

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