实时渲染
1. 概述
实时渲染是指在计算机上快速渲染图像。它是计算机图形中交互性最高的领域。图像出现在屏幕上,观看者做出动作或反应,这种反馈会影响接下来生成的内容。这种反应和渲染的循环以足够快的速度发生,以至于观看者不会看到单个图像,而是沉浸在一个动态的过程中。
图像的显示速率以每秒帧数 (FPS) 或赫兹 (Hz) 为单位。FPS为1时,几乎没有交互感;用户痛苦地意识到每个新图像的到来。在大约6FPS 时,交互感开始增强。视频游戏的目标是30、60、72或更高的FPS;只有到达如上的速度,用户才好专注于行动和反应。
电影放映机以24FPS的速度显示帧,但使用快门系统将每帧显示两到四次以避免闪烁。此刷新率与显示率分开,以赫兹 (Hz)表示。照亮框架三次的快门具有72Hz的刷新率。LCD显示器也会将刷新率与显示率分开。
以24FPS的速度观看屏幕上显示的图像可能是可以接受的,但更高的速率对于最大限度地缩短响应时间很重要。仅15毫秒的时间延迟就会减慢并干扰交互[1849]。例如,用于虚拟现实的头戴式显示器通常需要90FPS以最大限度地减少延迟。
实时渲染不仅仅是交互性。如果速度是唯一的标准,那么任何快速响应用户命令并在屏幕上绘制任何内容的应用程序都符合条件。实时渲染通常意味着生成3D图像。
交互性和对三维空间的某种连接感是实时渲染的充分条件,但第三个元素已成为其定义的一部分:图形加速硬件。许多人认为1996年推出的3Dfx Voodoo 1卡是消费级3D图形的真正开始 [408]。随着这个市场的飞速发展,现在每台计算机、平板电脑和手机都内置了图形处理器。图 1.1 和 1.2 显示了一些通过硬件加速实现实时渲染结果的优秀示例。


图形硬件的进步推动了交互式计算机图形领域研究的爆炸式增长。我们将专注于提供提高速度和改善图像质量的方法,同时描述加速算法和图形API的特性和局限性。我们无法深入涵盖每个主题,因此我们的目标是展示关键概念和术语,解释该领域最强大和实用的算法,并提供指向获取更多信息的最佳位置的地址。我们希望我们为您提供理解该领域的工具的尝试被证明是值得您在本书上花费的时间和精力。
1.1 内容概览
以下是对本书章节的简要概述。
第2章,图形渲染管线。实时渲染的核心是获取场景的描述,并将其转换为我们可以看到的内容的一系列步骤。
第3章,图形处理单元。现代GPU使用固定功能和可编程单元的组合来实现渲染管线的各个阶段。
第4章,图形变换。图形变换是操纵对象的位置、方向、大小和形状以及相机的位置和视图的基本工具。
第5章,着色基础。首先讨论了材质和灯光的定义,及其在表面外观(无论是逼真的还是风格化的)的实现中的使用。介绍了其他与外观相关的主题,例如通过使用抗锯齿、透明度和伽马校正提供更高的图像质量。
第6章,纹理。实时渲染最强大的工具之一是能够在表面上快速访问和显示图像。此过程称为纹理化,并且有多种应用方法。
第7章,阴影。为场景添加阴影可以增加真实感和理解力。介绍了用于快速计算阴影的更流行的算法。
第8章,光照与颜色。在我们执行基于物理的渲染之前,我们首先需要了解如何量化光线和颜色。在我们的物理渲染过程完成后,我们需要将结果数量转换为显示值,考虑屏幕和观看环境的属性。本章涵盖了这两个主题。
第9章,基于物理的着色。我们从头开始了解基于物理的着色模型。本章从潜在的物理现象开始,涵盖各种渲染材质的模型,并以将材质混合在一起并对其进行过滤以避免混叠和保持表面外观的方法结束。
第10章,局部照明。探索了描绘更精细光源的算法。表面着色考虑到光是由具有特征形状的物理对象发出的。
第11章,全局光照。模拟光与场景之间多次交互的算法进一步增加了图像的真实感。我们讨论了环境和方向遮挡以及在漫反射和镜面反射表面上渲染全局照明效果的方法,以及一些有希望的统一方法。
第12章,图像空间效果。图形硬件擅长以快速的速度执行图像处理。首先讨论图像滤波和重投影技术,然后我们调查了几种流行的后期处理效果:镜头光晕、运动模糊和景深。
第13章,超越多边形。三角形并不总是描述物体的最快或最现实的方式。基于使用图像、点云、体素和其他样本集的替代表示各有其优点。
第14章,体积和半透明渲染。这里的重点是体积材料表示及其与光源的相互作用的理论和实践。大到大气效应,小到头发纤维内的光散射,都是该仿真的现象范围。
第15章,非真实感渲染。尝试使场景看起来逼真只是渲染场景的一种方式。其他风格,例如卡通阴影和水彩效果,也是值得被讨论的。还讨论了行和文本生成技术。
第16章,多边形技术。几何数据来自广泛的来源,有时需要修改才能快速良好地呈现。介绍了多边形数据表示和压缩的许多方面。
第17章,曲线和曲面。更复杂的表面表示提供了一些优势,例如能够在质量和渲染速度之间进行权衡、更紧凑的表示和平滑的表面生成。
第18章,管线优化。一旦应用程序运行并使用高效算法,就可以使用各种优化技术使其更快。找到瓶颈并决定如何解决它是这里的主题。还讨论了多进程处理。
第19章,加速算法。更快的让渲染完成。涵盖了各种形式的剔除和细节渲染级别。
第20章,高效着色。场景中的大量灯光会显着降低性能。在知道表面片元可见之前,进行完全着色,是浪费性能的另一个来源。我们探索了多种方法来解决这些和其他形式的着色效率低下问题。
第21章,虚拟现实和增强现实。这些领域具有以快速和一致的速度有效地生成逼真图像的特殊挑战和技术。
第22章,交叉测试方法。相交测试对于渲染、用户交互和碰撞检测很重要。此处提供了针对常见几何相交测试的各种最有效算法的深入介绍。
第23章,图形硬件。这里的重点是颜色深度、帧缓冲区和基本架构类型等组件。提供了代表性GPU的案例研究。
第24章,展望未来的一些图形技术。
由于篇幅限制,我们在realtimerendering.com上制作了一个关于碰撞检测的免费章节,以及关于线性代数和三角学的附录。