《Real-Time Rendering》第四版学习笔记——Chapter 2 The Graphics Rendering Pipeline

本文详细介绍了实时渲染管线的四个主要阶段:应用阶段、几何处理、光栅化和像素处理。在几何处理中,涵盖了顶点着色、可选顶点处理(如细分着色、几何着色、流输出)以及裁剪和屏幕映射。光栅化阶段包括图元装配和三角形遍历,最终像素处理涉及像素着色和合成,完成颜色的计算与合成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

渲染管线的主要功能是在给定一个虚拟相机、三维物体、光源以及其他条件的基础上,生成一个二维的图像。

物体在图像中的位置和形状取决于它们的几何特征、环境特征和相机在环境的位置,而物体的外表则取决于材质属性、光源、纹理和着色方程。

一、渲染管线整体结构

实时渲染管线在大体上可以分为四个主要步骤:

  1. 应用阶段
  2. 几何处理阶段
  3. 光栅化
  4. 像素处理

每个步骤都包含了若干个子步骤。这里的步骤是功能逻辑上的分割,在实际的实现结构中,有可能会将其中部分步骤合在一起执行。

渲染管线基础构成

  • 应用步骤是由应用本身来驱动的,因此会在CPU上运行的软件来实现。应用步骤里通常会包括碰撞检测、全局加速算法、动画、物理仿真等等;
  • 几何处理阶段用于处理变换、投影,以及其他的几何处理。这个步骤会计算绘制什么、怎样绘制和绘制在哪的问题。该步骤通常运行在GPU上;
  • 光栅化用于寻找那些像素在三角形内,并将其作为结果传递到下一步骤;
  • 最后是像素处理步骤。该步骤会对每一个像素执行,决定该像素的颜色,同时可能会进行深度测试来决定该像素是否可见,以及颜色混合。

二、 应用阶段

该阶段通常在CPU上运行,所以开发者可以完全控制该阶段。

应用阶段最重要的任务是,在该阶段的末尾,将需要渲染的几何信息被传递给几何处理阶段。

因为是基于软件实现,所以该阶段不会分成各个子阶段,不过可以利用CPU的多核特性来提升性能。

碰撞检测通常在该阶段实现;该阶段也负责接收来自其他来源的输入,如键盘鼠标等;还有加速算法可以在该阶段实现。

三、几何处理

几何处理阶段运行在GPU上,主要负责大部分单三角形和单顶点的操作。

该阶段可以分为四个子阶段:顶点着色、投影、裁剪和屏幕映射。
几何处理阶段的子步骤

3.1 顶点着色

顶点着色主要有两个任务:

  • 计算顶点位置;
  • 评估顶点输出哪些数据,如法线、纹理坐标等。

顶点着色器(vertex shader):通常情况下,对物体的着色操作会对每个顶点的位置和法线应用光照;仅存储顶点的颜色结果。通常用于顶点相关的数据装配,一般不会执行渲染方程。

模型变换(model transform):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董小虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值