图形编程指南chapter1new

图形编程指南chapter1new

ID:1237096

大小:1.38 MB

页数:14页

时间:2017-11-09

图形编程指南chapter1new_第1页
图形编程指南chapter1new_第2页
图形编程指南chapter1new_第3页
图形编程指南chapter1new_第4页
图形编程指南chapter1new_第5页
资源描述:

《图形编程指南chapter1new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、14第一章硬件接口目录1.13D应用程序与硬件的交互作用1.1.1在计算机屏幕上显示图像1.1.2事件反应1.2使用不同的体系结构1.2.1MS-DOS.1.2.2MS-Windows.1.2.3X11.1.2.4NeXTStep.1.2.5MacOS.引言3D计算机图形能够作为一个领域存在,这要归功于目前的计算机硬件。为计算机人工合成场景可视化而开发的模式、算法和技术因此也基于并受限于当前可获得的硬件能够实现的能力。在这一章,我们将要讨论交互式3D应用程序的基本原理,特别是它们的结构如何能被典型的计算机系统所支持。正如“交互式3D图形”这个词

2、所指出的,有两个组件要考虑:“图形”—代表计算机屏幕上的图像,以及“交互”—在应用程序执行期间对用户的输入起反应。其它的3D图形应用程序的组件(在后面的章节中讨论)包括虚拟世界、图元渲染、隐面消除、光线等等,并不直接依赖于计算机设备的细节(除了某些基本算法,例如光栅,直接在硬件中实现)。然而显示或输入设备接口的细节通常依赖于硬件的特性。我们在这一章的第一部分将要讨论基本的3D应用程序同硬件的交互作用。管理应用程序执行的已有的计算机平台和操作系统,也介绍它们的细节和特性。在最后一部分我们要调查一下涉及到几种流行平台和操作系统的一些细节1.13D应

3、用程序与硬件的交互作用图形应用程序的主要目标是在计算机屏幕上合成再现创建的图像。我们要讨论现今主要的技术—光栅图形技术。这种思想是把图像细分为规则的小块,最普通的是矩形小块,每一块都有它自己个别的颜色(参见图1.1)。只要图像的像素空间足够小,人的眼睛就会把它们看成是光滑和连续的。根据计算机硬件,这种技术需要使用一些内存来存储颜色值数组,这些值被显示设备专用电路认为是屏幕像素的颜色。改变这些值将触发屏幕的改变。早期的技术,比如说矢量图形学,把图像作为一系列图元来描述:通常是线段片段。光栅图像技术的极大灵活性使得矢量图形在今天几乎绝迹了。14图1

4、.1:光栅图像.由于计算机图形应用程序的多样性,与用户能够保持持续交互所必需的一点是特别的兴趣。一些交互式的计算机绘图程序必须经常在合成屏幕上描述运动,或者是观察者沿着场景移动,或者是场景本身移动,或者两者兼而有之。这由显示带有一定次序的称之为帧(frame)的图像来实现。每一帧描述了场景的些微状态改变。只要在一个短时间内足够数量的帧被显示,对观察者来说,就得到了平滑运动的印象。在显示的时候,帧必须被完全绘制。在大多数场合,我们不想看到多边形或线段一个接一个地显示在屏幕上构建单帧的过程。而且,如果帧要被拍在电影胶片上,所有的像素必须在同样长的时

5、间中可见。否则,胶片曝光会不均匀。通常的做法是在离屏(off-screen)缓冲中绘制新帧,同时前一个绘制完的帧就储存在主显示设备的缓冲区中,从而它被显示出来。一旦新的帧绘制完毕,离屏缓冲的内容就传递(也许是blit,位块传输)到显示设备的存储器内,对下一帧重复这个过程。不同的系统处理访问显存方式的确是不同的,对此不要惊讶。在早期的操作系统,比如说MS-DOS,显示设备的存储器可以被直接访问到。另一方面,当对MS-Windows、X-Windows、NeXTStep、MacOS或者甚至是使用某些DOS扩展器的应用程序编程时,直接写显存一般是不可

6、能的。内存保护模式阻止我们这么做。因此,要调用不同的操作系统资源和使用某些低级的工作处理涉及硬件的接口。一个交互式的3D应用程序,除了能够在屏幕上渲染帧之外,还要必须对外部事件做出反应,比如说键盘敲击或鼠标移动,还要运用当前事件信息在未来的帧中导入改变。举个例子来说,按下箭头键改变场景被观察的角度,等等。处理外部事件通常依赖于执行流程(executionflow)——被特定操作系统执行的组成计算机程序代码的片段的次序。执行流程和应用程序结构依赖于操作系统。基于系统的“事件”通常假定代码必须依照发生事件的函数执行。换句话说,如果键被按下,同这个键

7、关联的代码被执行。这种方法在NeXTStep中被用到了极处。MS-Windows则在较小的范围使用它,X-Windows也是这样。在另一方面,MS-DOS和UNIX不使用事件机制,除非我们自己操作。代码从入口处被执行,除非我们退出(或者操作系统不能承受下去)。因此,依赖于平台,处理外部事件应该充分地以不同方式实现。我们或者使用特定操作系统的各种各样的规定,或者可能的话,如果允许,直接访问硬件。14让我们确定一下图形应用程序的哪些方面要必须面对硬件,以及有关交互作用的本质。后面,我们将要简要地讨论这些交互作用对目前的平台和操作系统来说如何被实现1

8、.1.1在计算机屏幕上显示图像我们已经提到,显示在光栅显示设备内的图像存储在计算机存储器中。提供图形用户界面(GUI)的操作系统会为应用程序分配一些物

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

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

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