RealTime-Rendering 第一章 自我学习和翻译

实时渲染是指在计算机上快速的显示出图像,是计算机图形学中最具有交互式的领域。在屏幕上显示出图像,观察者的行为和反应,以及会做出什么样的反馈会影响接下来生成的内容。由于这种反应和渲染的循环的变换的频率足够快,所以观察者看到的不是一张张图像而是沉浸在一系列动态的变化中。

图像的变换的频率是通过每秒的帧数或者每赫兹的帧数来测量的。每秒一帧的速率,几乎没有互动性的感觉,用户痛苦的意识到每一张新图像的更新,每秒6帧的速率的时候,互动性的感觉就开始慢慢增加。视频游戏的目标一般是每秒30帧,60帧,72帧或者更高的FPS,这些速率下,用户专注行为和反应。

电影放映机以每秒24帧的速率显示动画,但是用一个快门系统将每个画面展示二到四次,去避免画面闪烁。这种刷新速率和展示速率不同,用赫兹来表示。 一个快门将一个画面显示三次,代表刷新频率为每赫兹72帧。液晶显示器的刷新速率也和展示频率分开。在屏幕上以每秒24帧的速率看图像可以被接收,但是更高的速率对于缩小反应时间是很重要的。只要15毫秒短暂的延迟就会减慢并影响交互。例如,虚拟现实头戴显示设备经常需要每秒90帧的速率来使得延迟最小化。

实时渲染不仅仅是交互性。如果速率是唯一的指标,任何可以快速响应用户指令并且在屏幕上渲染图像的应用都是合格的。实时渲染意味着产生三维图像。

交互性和三维空间的某种连接感对于实时渲染来说是很重要的条件,但是还有三分之一的元素是成为他定义的一部分:图像加速硬件。许多人认为1996年推出的3Dfx Voodoo 1卡是消费者级三维图形的真正开始。随着市场的快速发展,每台电脑,平板,手机都内置了图像处理器。如图1.1,1.2是在硬件加速的支持下实时渲染可以达到的优秀的结果。

RealTime-Rendering 第一章 自我学习和翻译RealTime-Rendering 第一章 自我学习和翻译
图像硬件的发展推动了计算机图形交互领域的爆发性发展。我们将会把重点放在提高速率和图像质量的方法上,同时还会描述加速算法和图形API的特点和局限性。我们无法深入探讨每一个主题,所以我们的目标是呈现关键概念和术语,解释该领域的最可靠和实用的算法,并且提供能获得更多信息的地方的指引。我们希望我们能够向您证明这本书是值得花时间和精力去阅读的,能够理解图形学这一领域。

1.1 内容概览

1.2 符号和定义

首先,我们将解释本书用到的数学符号。在本章节中对用到的术语进行详细彻底的解释。可以在realtinereadering.com获得本书的线性代数附录。

1.2.1 数学符号

表1.1概括了我们用到的大多数数学符号。一些概念会在这里进行详细的解释。
注意到表中的规则有一些例外,主要是在文献中已经用来表示着色方程,例如,L代表辐射,E代表辐照度, σs代表散射系数。

RealTime-Rendering 第一章 自我学习和翻译 角度和标量取自R,即它们是实数。矢量和点用粗体小写字母表示, 组件以这个形式表示,
RealTime-Rendering 第一章 自我学习和翻译
即列向量形式表示,在文章中的某些地方我们用 (vx,vy,vz) 表示而不是 (vx,vy,vz) ^T,因为前者这种形式更容易阅读。
齐次坐标系中,使用四个值表示坐标, v = (vx,vy,vz,vw)T,一个向量可以表示成v = (vx,vy,vz,0)T或者v = (vx,vy,vz,1)T。有时候我们只用三个值来表示点或者向量,但我们要避免使用这种三元素表示坐标的形式,因为会带来歧义。对于矩阵操作,向量和点使用相同的符号是很有优势的,更多信息参见第四章坐标变换。在某些算法中,使用数字索引代替x、y和z会很方便,例如v=(v0,v1,v2)T。我们只需忽略三元素向量的最后一个分量,所有这些向量和点的规则也就适用于两个元素向量。