Unity SRP学习笔记(一)
主要参考:
https://catlikecoding.com/unity/tutorials/custom-srp/
https://docs.unity.cn/cn/2022.3/ScriptReference/index.html
中文教程部分参考(可选):
https://tuncle.blog/custom_render_pipeline/index.html
https://edu.uwa4d.com/lesson-detail/282/1308/0(依照Unity 2019版的内容翻译,不太适用于Unity 2022)
本文主要是,在参考以上内容学习的过程中,对一些基于已有内容但还是不太能理解的部分进行了一些额外的补充。
Custom Render Pipeline
涉及的C#代码如下,对我自己不太理解的部分做了尽量详细的注释。对于无法在代码中简单说明的部分,在代码部分之后尝试进行了较为详细的解释。
/*CustomRenderPipelineAsset.cs*/
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
[CreateAssetMenu(menuName = "Rendering/CustomRenderPipeline")]
public class CustomRenderPipelineAsset : RenderPipelineAsset
{
protected override RenderPipeline CreatePipeline()
{
return new CustomRenderPipeline();
}
}
/*CustomRenderPipeline*/
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
public class CustomRenderPipeline : RenderPipeline {
CameraRenderer renderer = new CameraRenderer();
protected override void Render(ScriptableRenderContext context, Camera[] cameras){
}
protected override void Render(ScriptableRenderContext context, List<Camera> cameras)
{
for (int i = 0; i < cameras.Count; i++)
{
renderer.Render(context, cameras[i]);
}
}
}
/*CameraRender.cs*/
using System;
using UnityEngine;
<