1. 光栅化 (Rasterization) - 主流实时渲染技术
原理:
核心思想: 将 3D 物体投影到 2D 屏幕空间。
过程:
- 几何处理: 处理顶点数据(应用变换、着色器计算)。
- 投影: 将 3D 顶点坐标转换为屏幕上的 2D 坐标。
- 图元装配: 将顶点连接成三角形(或其他基本图元)。
- 光栅化 (关键步骤): 确定屏幕上哪些像素被三角形覆盖。这一步不关心物体之间的关系(遮挡、反射),只关心每个三角形覆盖了哪些像素。
- 像素着色: 对覆盖的像素计算颜色(应用材质、纹理、光照模型等)。光照计算通常发生在单个图元或像素级别,难以自然处理全局光照效果(如物体在另一物体上的反射)。
- 输出合并: 处理深度测试(Z-Buffer)、Alpha 混合、模板测试等,决定最终写入屏幕的像素颜色。
特点:
速度: 极快,高度优化后可在现代 GPU 上实现每秒数十到数百帧的渲染。这是实时渲染(游戏、交互式应用)的基础。
效果: 实现基本的着色、纹理、直接光照效果很高效。自然模拟复杂全局光照效果(软阴影、精确反射/折射、焦散)非常困难且性能开销大。需要借助各种技巧(如环境贴图、屏幕空间反射、预计算光照贴图)。
硬件支持: 现代 GPU 主要就是为加速光栅化管线而设计的,硬件原生支持。
复杂度: 相对较低(核心算法成熟高效)。
2. 光线追踪 (Ray Tracing) - 追求物理真实感的技术
原理:
核心思想: 反向模拟光线在真实世界中的传播路径。
过程:
- 发射光线: 从摄像机(视点)为屏幕上的
- 求交: 计算光线与场景中所有物体的交点。
- 着色: 在交点处,根据物体的材质、光源位置以及可能从该交点重新发射多条新的光线(二次光线)来计算该点的颜色:
阴影光线 (Shadow Ray): 从交点射向光源,检查是否被遮挡(产生阴影)。
反射光线 (Reflection Ray): 根据材质反射率发射。
折射光线 (Refraction Ray): 根据材质透明度(如玻璃)发射。
漫反射光线 (Diffuse Ray): 模拟物体表面向各个方向散射光(用于间接光照/全局光照)。 - 递归/迭代: 追踪二次光线,重复步骤2-3,直到光线满足终止条件(超出最大弹跳次数、射空、能量衰减过小)。
- 累积计算: 将所有击中该像素的光线路径的贡献(亮度、颜色)组合起来,得到该像素的最终颜色。
每个像素发射一条初始光线(主光线)进入场景。
特点:
速度: 非常慢。为每个像素发出的主光线可能产生大量需要追踪的二次光线。需要大量计算。虽然专用硬件(如 NVIDIA RT Core)和优化算法(DLSS)极大提升了实时性能,但相比光栅化仍然慢得多。
效果: 能自然、物理准确地模拟几乎所有的光学现象:完美的反射/折射、复杂的光线弹跳路径(间接照明/全局光照)、真实的软阴影、逼真的焦散效果。效果极其逼真。
硬件支持: 高度依赖强大的计算能力(CPU 或 GPU)。现代 RTX GPU 内置专用光线追踪核心(RT Core)加速求交计算。
复杂度: 算法原理相对直观(模拟物理),但高效实现和优化(如加速结构 BVH)非常复杂。
3. 其他重要渲染技术
路径追踪 (Path Tracing):
光线追踪的变种 / 扩展: 更严格遵循物理法则。
关键区别: 在交点处,随机选择一个方向发射一条新的反射光线(而不是像经典光线追踪那样发射确定性的反射和折射光线)。根据材质属性和光源分布进行随机采样。
作用: 解决全局光照、软阴影、间接照明的“金标准”。通过大量采样(像素发射大量路径)来逼近物理正确的光照方程(渲染方程)。
应用: 几乎是所有电影级 CGI 和追求极致真实的离线渲染器的核心(如 V-Ray, Arnold, Renderman)。计算极其昂贵。
光线投射 (Ray Casting):
简化版光线追踪:
- 为每个像素发射一条视线(主光线)。
- 检测这条视线与场景中最近的物体交点。
- 仅依据该交点的基本信息(距离、法线、简单光照模型)着色。
特点: 极快但不真实。完全不处理反射、折射、阴影等全局效果。
应用: 早期游戏(如 Wolfenstein 3D)的核心技术,体绘制(Volume Rendering)的基础(常用于医学成像CT/MRI)。
光线步进 (Ray Marching / Sphere Tracing):
主要用途: 渲染隐式曲面和距离场 (SDF)。
过程:
- 从摄像机发射光线。
- 沿光线方向一步一步移动(“步进”)。
- 每步查询当前位置到场景中最近表面的距离(距离函数SDF)。
- 将该距离作为安全步进长度,以此不断前进。
- 当距离非常小时视为击中表面,进行着色。
特点:
- 非常高效地渲染复杂的、可程序化定义的形状(如分形、流体、特殊材质)。
- 能产生独特而强大的视觉效果(常用于 Shadertoy 等实时着色器艺术)。
- 相对于多边形光栅化,实现复杂形状的抗锯齿相对容易。
应用: 程序化生成内容、艺术化渲染、某些特殊效果的实现基础、体绘制。
混合渲染 (Hybrid Rendering):
核心思想: 结合光栅化和光线追踪的优势。
常见模式:
- 主渲染管线使用高度优化的光栅化。
- 将少量、影响视觉体验最关键、光栅化难以模拟的特定效果用光线追踪来实现(通常是反射、阴影、环境光遮蔽AO)。
- 使用降噪技术大幅减少所需的光线追踪样本数(DLSS, XeSS 等)。
特点: 在硬件能力、渲染速度和画面质量之间寻找最佳平衡。是目前现代高端游戏(如启用 RTX/DLSS 的游戏)采用的方案。目标是在接近传统光栅化帧率的前提下,提供显著超越纯光栅化的画面真实感。
扫描线渲染 (Scanline Rendering):
早期光栅化技术:
- 按水平扫描线从上到下处理屏幕。
- 对于每条扫描线,找出与其相交的三角边,计算交点的属性(颜色、深度等),在水平线上填充像素。
特点: 内存访问模式高效(适合早期硬件),基本被现代基于图元(三角形)的光栅化管线取代。
应用: 早期软光栅器、部分简单嵌入式系统。
辐射度 (Radiosity):
特定全局光照方法:
- 将场景表面离散成小“面片”。
- 计算面片之间直接和间接的漫反射光能传递(模拟光线在漫反射表面间的弹跳)。
- 通常仅处理纯漫反射材质的场景。
- 结果通常是预计算好的。
特点: 能产生非常柔和的、无噪点的全局光照和颜色溢出(color bleeding)效果,但计算复杂、存储开销大、对镜面反射无效。在电影前期制作或特定场景(如建筑漫游)有用。
应用: 建筑可视化、早期静态场景全局光照解决方案。较少用于实时。
(正在兴起的) 神经渲染 (Neural Rendering):
核心思想: 利用深度学习模型(通常是神经网络)生成或增强图像。
技术:
- 视图合成: 从少数输入图像生成新视角的图像。常用 NeRF (Neural Radiance Fields)。
- 降噪: 使用 AI 从极少数量的光线追踪样本合成干净图像(如 NVIDIA OptiX 的 AI 降噪)。
- 超分辨率: 如 DLSS, FSR, XeSS 利用 AI 将低分辨率渲染图像升频到高分辨率。
- 材质/光照编辑: 训练模型表示场景后,可编辑其属性。
特点: 能产生惊人的视觉效果,解决传统方法难点(如高质量上采样、快速重建新视角),但通常需要训练数据或前置计算。
应用: 快速发展中,应用于影视特效、VR/AR、高端游戏(通过 DLSS/FSR/XeSS 提升帧率)、新视角生成(如元宇宙内容制作)。
技术选择总结:
- 实时应用 (游戏/VR/交互式):
首选:高度优化的光栅化。
追求更高画质 (高端硬件):混合渲染(光栅化 + 有限的光线追踪效果 + AI降噪/升频)。
- 高质量离线渲染 (电影/动画/产品渲染):
首选:路径追踪。 提供最物理真实的结果。
补充:光栅化用于特定元素(粒子、运动模糊)、辐射度用于特定预计算场景。
- 程序化生成/特殊效果:
首选:光线步进 (Ray Marching)。
- 数据可视化 (医学/科学):
常用:光线投射 / 光线步进 (体绘制)。
- 前沿探索 / 特定应用:
神经渲染 (视图合成、降噪、升频、内容生成)。
版权声明:本文为CSDN博主「心瞳几何」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43689451/article/details/150211814





