Scriptable Render Pipeline(SRP) 是Unity 2018.1 beta版本中引入的一项新功能,允许用户通过C#脚本来自定义渲染执行方式,从而实现更为高效、高质量的图形效果。相较于内置渲染管线的通用性,SRP为开发者提供了更多的定制化空间。渲染管线是一系列技术的总称,用于将三维场景通过虚拟相机、三维物体和光源数据生成二维图像。大致可以分为四大阶段:应用阶段、几何处理阶段、光栅化阶段和像素处理阶段。在应用阶段,主要涉及CPU和内存交互,准备渲染所需的数据,如场景配置信息、模型、光源等。通过数据总线将这些数据传送到图像硬件,作为后续处理的基础。具体步骤包括场景数据准备、粗粒度剔除和设置渲染状态。几何处理阶段负责顶点坐标变换、光照、裁剪、投影以及屏幕映射,主要基于GPU进行运算。此阶段输出为变换和投影后的顶点坐标、颜色和纹理坐标。光栅化阶段则决定屏幕上像素的绘制,包括插值、逐像素处理等。此阶段的核心任务是将几何图元转换为屏幕上的像素,分为光栅化和片元着色两个部分。像素处理阶段进行逐片元操作,包括模板测试、深度测试、混合等,最终将像素颜色写入帧缓存。可编程渲染管线(SRP)是Unity提供的一个功能,允许开发者通过C#脚本全面控制Unity渲染流程。SRP内置了两个框架,开发者可以基于这些预构建的SRP框架进行修改和适应,而非从头开始开发自己的SRP。SRP核心是一个API集合,向开发者公开渲染核心和配置,允许精确配置渲染方式。SRP API为熟悉的Unity结构体提供了新的接口,如Cameras、Lightings、Materials、Command Buffers等,改变与Unity交互的方式,以实现性能优化。编写自定义SRP时,通常会使用一组渲染程序,而不是单独一项,以提高效率。