【渲染流水线】主线索引-从数据到图像以UnityURP为例

前情提要

【开篇导览】探索游戏渲染从UnityURP开始-优快云博客

有了开篇的渲染管线和渲染流水线的基本概念,接下来先从原理上看看渲染流水线是怎么运作的,然后再看看UnityURP是对应是怎么实现的,最后再看UnityURP是怎么构建渲染管线,逐层探索剖析。本篇作为渲染流水线的主线文章,将列举渲染流水线中的各个阶段,将数据到图像的每一步处理步骤都列出,每个阶段的具体的详细讨论在后续相应的文章链接中展开详解。

对渲染的探索是个持续不断完善的过程,记录这个过程将零散的内容整理起来,其中肯定会有理解偏差和问题,如果哪里有问题,欢迎在评论区探讨和指出)

基于URP默认的渲染路径:前向渲染Forward 来讲解基本的渲染流水线

渲染路径 概念在最后会讲解,默认的前向渲染路径就是最通用的复合常规的渲染流水线中的流程,其他路径都是优化特定情况而出现的,先用前向的学习后再看其他的渲染路径。

渲染流水线(Rendering Pipeline)中可编程或可配置阶段,按顺序执行:

应用阶段 -〉几何阶段 -〉 光栅化阶段 -〉逐片元阶段 -〉输出

应用阶段(CPU)包括(包围盒裁剪、遮挡剔除、其他裁剪算法等)

几何阶段(GPU)包括(顶点着色器(可编程)、细分着色器(可选)、几何着色器(可选)、图元装配(固定)、裁剪(固定)、归一化设备坐标(透视除法;固定)、屏幕映射(固定))

光栅化阶段(GPU)包括(光栅化(三角形设置、三角形遍历;固定)、片元着色器(可编程))

逐片元阶段(GPU)包括((可见性测试Scissor、多重采样测试)透明度测试、模版测试、深度测试、深度写入、混合)(全可配置)


接下来详细列出渲染流水线的阶段索引

应用阶段

几何阶段

  • 关键顺序‌:

  1. 顶点着色器输出齐次裁剪坐标(如 UnityObjectToClipPos 返回值)‌。
  2. GPU执行裁剪(依赖 w 分量的动态范围)‌。
  3. 透视除法触发归一化‌,生成NDC坐标供屏幕映射‌

模型空间 →(Model矩阵)→ 世界空间 →(View矩阵)→ 观察空间 →(Projection矩阵)→ ‌裁剪空间‌→(透视除法)→ ‌NDC空间‌ →(视口变换)→ 屏幕空间

  • 其中模型空间到裁剪空间是在顶点着色阶段运算的。(在顶点着色器中手动用MVP矩阵进行左乘计算)
  • NDC空间是归一化时做的 (GPU自动计算)
  • 屏幕空间是屏幕映射阶段做的 (GPU自动计算)

  • 顶点着色器(Vertex Shader)‌

  • 可选阶段:曲面细分着色器(Tessellation Shader)‌

  • 可选阶段:几何着色器(Geometry Shader)‌

  • ‌图元装配

  • 裁切

  • 归一化设备坐标(Normalized Device Coordinates, NDC)

  • 屏幕映射

光栅化阶段

  • 光栅化‌

  • 片元着色器(Fragment Shader)‌

逐片元阶段

  • 逐片元操作(Per-Fragment Operations)‌

  • 深度偏移(Slope Scale Depth Bias)‌

  • 渲染顺序与层级


Unity中基于SRP的URP渲染管线

  • SRP提供的核心功能与架构‌

  • URP在SRP上的具体实现‌

  • URP对SRP的扩展与简化‌

  • 对URP的扩展

  • URP中的渲染路径选择‌


其他

  • URP中实时阴影计算流程

  • 计算着色器(Compute Shader)‌:GPU 通用计算,可并行处理非图形任务(需单独编写)。

  • 后处理(Post-Processing)‌:屏幕空间特效(如 Bloom),通过 URP Renderer Feature 添加。  

  • 投影Projector。

  • 平面阴影


(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淡海水

感谢支持 共同进步 好运++

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

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

打赏作者

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

抵扣说明:

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

余额充值