简介
1. 核心概念:什么是实时渲染?
实时渲染的本质是速度与交互。它不仅仅是快速地画出一张图,而是要在一个极短的时间内完成“渲染-反馈”的闭环,让用户感觉自己是在与一个动态的虚拟世界进行实时互动。
- 
核心定义: 实时渲染是一个交互式过程,它以极高的速率,通常指每秒30次以上,将三维场景的数据转化为二维图像。 
- 
关键要素: - 交互性 (Interactivity): 用户的输入能够几乎瞬时地影响下一帧画面的生成。这是实时渲染与离线渲染(如电影特效)最根本的区别。
- 三维场景 (3D Scenes): 渲染的对象是虚拟的三维空间中的模型、光照等元素。
- 图形加速硬件 (Graphics Acceleration Hardware): 现代实时渲染严重依赖于图形处理器 (GPU) 的强大并行计算能力,它是一切高性能表现的基础。
 
- 
关键术语: - 帧率 (Frames Per Second, FPS): 衡量渲染速度的核心指标,指渲染器每秒能生成多少张新图像。游戏通常追求 30 FPS 或 60 FPS 以上,VR等对延迟敏感的应用则需要 90 FPS 或更高。
- 刷新率 (Refresh Rate, Hz): 显示设备每秒刷新屏幕画面的次数。它与帧率是两个独立概念。高刷新率可以减少画面的闪烁感。
- 延迟 (Latency): 从用户输入到屏幕上显示出相应画面的总时间。低延迟是实现流畅交互感的关键,通常认为大于15毫秒的延迟会开始影响体验。
 
2. 本书内容速览 (Roadmap)
这本书系统性地覆盖了实时渲染的方方面面,从底层硬件到顶层应用,可以看作一个完整的知识体系地图。
- 
基础核心 (Ch 2-6): - Ch2: 图形渲染管线: 学习将3D数据一步步变成2D像素的经典流程。
- Ch3: GPU: 了解现代GPU是如何通过可编程和固定硬件单元实现渲染管线的。
- Ch4: 变换: 掌握控制物体与相机位置、姿态和投影的核心数学工具。
- Ch5: 着色基础: 学习光、材质、抗锯齿、透明度等基本视觉表现概念。
- Ch6: 纹理: 了解如何将2D图像贴到3D模型表面,这是提升真实感和细节的最强大技术之一。
 
- 
视觉效果与真实感 (Ch 7-15): - Ch7: 阴影: 学习各种实时阴影生成算法。
- Ch8-9: 光、颜色与基于物理的着色(PBR): 深入理解光照的物理原理,并学习如何构建模拟真实世界光照反应的PBR模型。
- Ch10-11: 局部光照与全局光照(GI): 从简单的直接光照扩展到模拟光线在场景中多次反弹的复杂效果。
- Ch12: 图像空间特效: 学习在渲染完成后对最终图像进行处理,以实现动态模糊、景深等效果。
- Ch13-15: 高级渲染主题: 探索超越传统多边形的渲染技术(如体素、点云),以及卡通渲染等非真实感风格。
 
- 
性能优化与数据处理 (Ch 16-20): - Ch16-17: 几何处理: 学习如何表示、压缩和处理多边形、曲线和曲面数据。
- Ch18-20: 管线优化: 深入探讨如何定位性能瓶颈,并使用剔除、LOD、多线程以及高效着色等技术来提升渲染速度。
 
- 
应用与底层 (Ch 21-24): - Ch21: VR/AR: 了解虚拟现实与增强现实领域的特殊渲染挑战和技术。
- Ch22-23: 相交测试与图形硬件: 深入研究碰撞检测等算法,并进一步了解GPU的硬件架构。
- Ch24: 未来展望: 探讨实时渲染技术的发展趋势。
 
3. 核心符号与定义
掌握这些基础约定是阅读后续章节、理解公式和算法的前提。
3.1 数学符号
- 
基本原则: - 标量 (scalar): 小写斜体,如 。
- 向量 (vector) / 点 (point): 小写粗体,如 。通常写为列向量:
- 矩阵 (matrix): 大写粗体,如 。
- 平面 (plane): 使用公式定义,如 。
 
- 
重要运算符与函数: - 点乘 (Dot Product):
- 叉乘 (Cross Product):
- 范数 (Norm) / 长度:
- Clamp to Zero (限制到0): 一个在着色中非常常见的操作,将负数截断为0。
- Saturate (限制在0-1之间): 同样是着色中的常用操作,将数值限制在 区间内。
- atan2(y, x): 双参数的反正切函数,比常规 atan(y/x)更健壮,能处理 的情况并返回 范围内的正确角度。
- log(n): 在本书中,特指自然对数 。
 
3.2 几何定义
- 图元 (Primitive): GPU能够直接绘制的基本形状。现代硬件几乎只支持点、线、三角形。
- 模型 (Model) / 物体 (Object): 由一系列图元或其他几何体构成的集合,是场景中的独立单元(如一辆车、一棵树)。
- 场景 (Scene): 待渲染的整个环境,包含所有模型、材质、光照和相机信息。
3.3 “着色 (Shading)” 的双重含义
这是一个新手非常容易混淆的概念,务必厘清:
- 指代视觉外观 (Appearance): 描述物体表面最终呈现出的样子。例如:着色模型 (shading model)、卡通着色 (toon shading)。
- 指代可编程单元 (Programmability): 指在GPU上运行的、用于计算最终颜色的程序。例如:顶点着色器 (vertex shader)、像素着色器 (pixel/fragment shader)。
4. 拓展学习资源
- 官方网站: realtimerendering.com
- 这是本书最重要的配套资源,没有之一。它包含了书中内容的更新、勘误、补充章节(如实时光线追踪)、以及大量外部链接。由于技术发展迅速,网站是获取最新信息的最佳渠道。