基于OPENGL的三维屏幕保护程序的开发毕业论文
2021-06-25 00:22:32
摘 要
阴极管显示器的显示原理是阴极管发射电子来击打屏幕产生图像。如果长期固定在一个画面不动,会对显示器造成损害。屏幕保护程序是一些动态图像,用于保证电脑不会一直显示静止画面导致屏幕荧光物质老化。本次设计就是利用VC 6.0开发平台结合OpenGL技术开发屏幕保护程序。
本次设计利用OpenGL图形库,通过纹理映射粒子系统等方式实现动态图像的绘制。通过设计,完成的程序可以做到屏幕保护的基本功能,实现响应电脑自动开启屏幕保护程序,同时在移动鼠标或敲击键盘会自动退出。
本次主要详细介绍了蝴蝶屏幕保护程序的开发,简单叙述了粒子系统屏幕保护程序的设计过程。
关键词:屏幕保护 VC 6.0 OpenGL CRT显示器
Abstract
Display principle of the cathode tube monitor is a cathode tube to emit electrons strike the screen to produce an image. If long-term fixed at a screen does not move, so may cause damage.Screen savers are some of the dynamic image, used to ensure that the computer does not always display the screen still picture cause fluorescent substance aging. This design is the use of VC 6.0 development platform combining OpenGL screen saver technology development.
This design uses the OpenGL graphics library, to achieve dynamic image rendering through texture mapping particle systems and other means. By design, the finished program can do the basic functions of a screen saver, the computer automatically turns on in response to realize the screen saver, and it will automatically quit moving the mouse or typing on the keyboard.
The main details of the development of the butterfly screen saver, and a brief description of the particle system screen saver design process.
Keywords: Screensaver VC 6.0 OpenGL CRT display
目录
摘要 I
Abstract I
第1章 绪论 1
1.1 目的及意义 1
1.2 国内外相关研究现状 1
1.3 本文主要内容 2
第2章 系统总体分析及设计 3
2.1 开发平台选择 3
2.1.1 选用VC 6.0作为开发平台 3
2.1.2 选择OpenGL编写屏幕保护程序 4
2.1.3 SDK编程 5
2.2 静态链接库SCRNSAVE.LIB 5
2.3 系统功能分析 6
2.3.1 蝴蝶屏幕保护程序功能设计 6
2.3.2 粒子系统屏幕保护程序功能设计 7
第3章 屏幕保护程序的实现 9
3.1 系统框架搭建 9
3.2 OpenGL三维变换技术 11
3.2.1 几何变换 11
3.2.2 透视投影变换 11
3.2.3 视区变换 12
3.3 OpenGL原理在屏幕保护中的应用 12
3.4 蝴蝶屏幕保护 13
3.4.1蝴蝶的绘制与显示 13
3.4.2屏幕保护程序响应函数的设置 16
3.4.3屏幕保护设置函数 18
3.5 粒子系统屏幕保护 19
3.5.1粒子系统的生成 19
3.5.2粒子系统的显示 20
3.5.3屏幕保护系统的响应 21
3.5.4绘制函数的设计 21
第4章 系统实现与测试 24
4.1 效果展示 24
4.1.1 蝴蝶屏幕保护 24
4.1.2 粒子系统屏幕保护 24
4.2 测试及分析 25
4.2.1 图形配置文件的导入 25
4.2.2 编译添加库模块 26
4.2.3 设置屏幕保护 26
4.3 结论 27
第5章 总结 28
5.1 收获 28
5.2 展望与不足 28
参考文献 30
致谢 31
第1章 绪论
1.1 目的及意义
近几年来,科学可视化、计算机动画和虚拟现实逐渐出现在大众面前,它们也成为计算机图形学领域内的三大热门研究方向,而它们所涉及到的技术都是三维真实感图形。可视化成为一种技术与方法应用于有关科学和工程技术的各个领域,开始于利用计算机图形来加强信息的传递和理解。[1]
OpenGL是已经发展壮大的一个性能卓越的三维图形标准,作为一款具有优越性能的API,具有广泛的可移植性,它独立于硬件系统和操作系统,可以适用于大部分的计算机环境。而且它是独立于编程语言的,可以在各种语言下进行开发通过OpenGL函数绘制精美图形。无论使用什么类型的计算机,使用者都可以利用 OpenGL绘制漂亮生动形象的三维立体图形。OpenGL已经成为专门从事三维图形开发的工作人员所必须熟练掌握和利用的开发工具。
计算机在运行阶段,如果用户有事需要暂时离开电脑,并且时间不是很长所以不需要将电脑关闭,又不想让别人看到自己电脑当前的运行界面,这时候就通过设置启动屏幕保护程序,将屏幕上的工作状况画面隐藏起来,同时在屏幕保护程序结束时添加密码校验,可以更好地保护电脑上的重要信息。一开始,屏幕保护程序是为了保护台式电脑的CRT显示器而开发的,CRT显示器是靠电子束激发屏幕内表面的荧光粉来显示图像的,由于荧光粉被点亮后很快会熄灭,所以电子枪必须持续不断地激发这些点。当用户停止对电脑进行操作时,屏幕就会定格在一个静态画面上,然后电子束会长期射击荧光层的同一片区域,如果长时间这样,会因为荧光物质的疲劳老化导致显示器寿命缩短,甚至是显像管被击穿。屏幕保护程序就是为了不让屏幕一直长时间保持在静态画面,造成一个点的荧光物质老化而缩短屏幕寿命,所以令这个点上的颜色不断变化,达到保护屏幕的作用。屏幕保护程序一直是保护CRT显示器的最佳帮手。
1.2 国内外相关研究现状
1992年,OpenGL 1.0诞生,此后历经二十年发展,功能日渐强大,普及范围也是越来越广,在专业图形绘制、三维仿真模拟等领域成为众多工作人员的首选。OpenGL仍然是唯一能够取代微软对3D图形技术的完全控制的API。由于Direct3D目前还不能支持高端的图形设备和专业应用,OpenGL在这些领域仍然占据着统治地位。与一般的图形系统软件接口相比,OpenGL具有以下几个突出特点:(1)应用广泛;(2)跨平台性;(3)可扩展性;(4)绘制专一性;(5)网络透明性。[2]
屏幕保护程序可以在使用时有效保护CRT显示器,延长显示器寿命。随着科技的进步,CRT屏幕逐渐被LCD液晶屏幕替换,而且LCD显示器并不需要时刻处于动态画面来保护屏幕,所以屏幕保护的作用的不断减少。但是CRT屏幕仍然有自己的优点,尤其是在图像的色彩还原度的准确性要高于液晶屏幕,这也使许多频繁使用图像处理功能并且对色彩要求较高的专业人员仍然使用CRT显示器。除此之外,由于技术的成熟和社会需求的发展,我们也逐渐赋予屏幕保护程序保护显示器之外更多的功能,从最初的保护屏幕开始变得具有娱乐性,同时可以添加广告信息,用于宣传工作。除了注重其实用价值外,也更注重其的外观的美观,新颖。
本文主要内容
本文主要讲述了在VC 6.0开发平台下基于OpenGL的三维屏幕保护程序的开发,主要包括两个屏幕保护程序:蝴蝶屏幕保护以及粒子系统屏幕保护。
第一部分为绪论。主要介绍了本次毕业设计课题的研究目的和意义,国内外相关研究现状以及本文主要的研究内容。
第二部分是系统总体分析与设计。主要讲了开发平台的选择,介绍了C 和OpenGL的优势以及OpenGL的功能,还介绍了使用SDK编程的优势,相关的静态链接库,最后是系统功能分析,提到了系统主要的一些功能模块。
第三部分是屏幕保护程序的实现。主要为主要讲了框架搭建及项目建立过程。提了OpenGL的三维变换技术,以及OpenGL原理的应用,也就是函数库的范围。然后就是两个屏幕保护具体实现的主要功能模块设计,主要内容包括结构体的定义,绘制函数、响应函数、设置函数的设计实现。
第四部分为系统实现与测试。包括屏幕保护运行后的效果展示,测试及分析过程中出现的问题以及本次设计的结论。
第五部分为总结。在这一部分总结了此次毕业设计过程中的收获以及结束后对程序的未实现功能以及未来的展望。
第2章 系统总体分析及设计
屏幕保护程序是Windows系统中一种特殊的以.scr为扩展名的应用程序。如果用户打开了Windows系统的屏幕保护功能,并且在一定的时间段内没有输入信息(包括键盘操作和鼠标操作等),系统将会自动启动设定的屏幕保护程序。屏幕保护程序主要有如下两个作用:
- 防止CRT屏幕较长时间显示静止的图像而减少荧光介质的使用时间。
- 防止用户离开计算机的时候屏幕上的重要信息被不相关的人看到。
所以,屏幕保护系统至少应该实现以下两个功能:
- 动态图像:显示动态图像,延长显示器寿命。
- 密码校验:退出程序时屏蔽系统热键及启动屏幕保护前的画面,要求输入用户密码,保护重要信息。
我在各种资料中找到许多介绍Windows屏幕保护程序的内容,也了解了许多可以用于制作屏幕保护的工具。在本次设计中,主要是通过建立动态图像来学习OpenGL的图形绘制以及了解计算机图形学。
2.1 开发平台选择
2.1.1 选用VC 6.0作为开发平台
C 作为当前主流的面向对象的编程语言,程序员可以体会到一种不同于传统结构的思维方法和编程理念,是现在优秀的程序设计者需要充分了解并使用的编程语言。
VC 是一个由微软公司开发的IDE(集成开发环境),也就是说,它是一个可以使用C 的开发平台。VC 6.0是一款非常优秀的开发平台,虽然学习它需要了解许多Windows平台的特性,并且要掌握关于MFC、COM等的特性等内容,学习起来比较困难,但是作为一款主流的开发平台深受开发者的喜爱。很多人想了解,虽然感觉入门非常困难,但是使用的体验非常好。Java等语言,比较C 就显得比较简单容易理解,比较容易吸引用户,但是在进行Windows基础开发,也就是所谓的底层代码开发方面,C 有一定优势。而且众所周知,Java很费资源,对电脑的硬件要求较高。而且与Java相比,C 的执行效率要高不少。
同时VC 6.0的相比于其他平台的优点是操作界面简洁,使用的计算机资源较少,操作更加方便,反应快速,对于我们这种没有高端机器的初级简单程序的开发有一定加速作用。
2.1.2 选择OpenGL编写屏幕保护程序
OpenGL是一个由SGI公司开发的图形标准,是一个具有工业标准的、与图形硬件以及操作系统无关的应用程序开发接口,换一种说法,它是一个3D图形的模型库。因为其独立于操作系统与编程语言,所以具有可移植,速度高的特点,而且在图形开发中也有明显的优点,可以做到高质量,高可靠性。在当前主流的开发平台是Visual C 6.0的时候,微软公司利用了集成的方式将OpenGL集成到了Windows操作系统中,微软已经向我们提供了三个OpenGL的函数库(glu32.lib,glau.lib,OpenGL32.lib),可以使我们更加方便地进行程序编写,简单快捷地生成形象、准确的图形。而编程者通过学习OpenGL图形库的应用,可以使程序图像的编写更为迅速、简单,也使工作更加有效率,大大降低操作难度。微软想打破OpenGL的统治阶段,所以大力推广Direct3D,它是一种基于OLE COM原理的应用程序接口,它的设计目的主要是为了实现设备的独立传输以及高度优化,基于软件实时的实现3D再现,并使得3D硬件能够快速透明地进行存取操作。对于那些要求更多控制3D目标和情景以及要求直接存取3D加速器卡的开发者来说,这种API的优点是使开发者很容易将现行的3D应用移至Windows 系统上。而OpenGL则是一种高性能高精确的3D技术,它大多数用于制作CAD/CAM模型、动态图像制作、可视化模拟以及科学显像应用当中。