写在前面
要在屏幕上绘制图像,我们得知道几个要素:绘制什么东西(What),何时绘制(When),在屏幕上哪个位置绘制(Where),用什么设置绘制(How)。另外还要把灯光、阴影、透明效果、后处理效果等等都要正确的绘制出来,才能得到最后的一张图像,这也是渲染管线所要做的。
以前Unity只开放了很小部分供我们对绘制进行设置,Unity2018开始,Unity支持自定义渲染管线(Scriptable Render Pipeline),虽然还是要依赖Unity的一些基础方法,比如调用绘制天空盒,剔除等,但这样我们可以自己对绘制进行更多的设置。Unity 2018提供了两个实验性的自定义渲染管线:轻量级渲染管线和高清渲染管线。在Unity 2019中轻量级渲染管线成为正式功能,并且在2019.3中改名为通用渲染管线。

通用渲染管线的目的是替换现在用的旧的默认管线,顾名思义,就是希望这个渲染管线能够满足大部分的需求,并且呢,也容易去自己修改一部分内容。
我们这里主要是从0开始自己定义渲染管线,并不是使用Unity提供的管线。
软件环境
我使用的Unity版本:Unity2020.3.10f1
自定义渲染管线
工程设置
因为我们是自定义渲染管线,所以不要选Unity的渲染管线,选择3D

打开设置,将色彩空间切换为线性空间

然后我们像下面随便创建一些物体,使用不同的材质,Unlit/Color,Standard(Mode设置Transparent),Unlit/Transparent

创建渲染管线
新建脚本(因为直接上的都是最终代码,有些地方直接贴上去可能会报错,一步一步做的话,可以先注掉报错的部分)

using UnityEngine;
using UnityEngine.Rendering;
public class CustomRenderPipeline : RenderPipeline
{
CameraRenderer cameraRenderer = new CameraRenderer();
//每一帧渲染调用
protected override void Render(ScriptableRenderContext context, Camera[] cameras)
{
foreach(var camera in cameras)
{

本文介绍了如何在Unity中从零开始构建自定义渲染管线,包括设置工程、创建渲染管线脚本、绘制天空盒、处理相机属性、清除缓存和剔除操作。通过这些步骤,你可以理解Unity渲染管线的工作原理并实现自己的渲染逻辑。
最低0.47元/天 解锁文章
667

被折叠的 条评论
为什么被折叠?



