Unity6 自定义渲染管线--工程初始化与管线资源

www.bilibili.com/video/BV1zS...

工程初始化与管线资源

安装

创建管线资源

  1. 在 Assets 下创建 LiteRP,并在其中创建 Editor 和 Runtime 文件夹
  2. 在 Runtime 下创建 Assembly Definition,起名 LiteRP
  1. 在 Editor 下创建 Assembly Definition,起名 LiteRP.Editor
  1. 在 Runtime 下创建 LiteRPAsset.cs 和 LiteRenderPipeline.cs
c# 复制代码
using UnityEngine;
using UnityEngine.Rendering;

namespace LiteRP
{
    public class LiteRPAsset : RenderPipelineAsset<LiteRenderPipeline>
    {
        protected override RenderPipeline CreatePipeline()
        {
            return new LiteRenderPipeline();
        }
    }
}
c# 复制代码
using UnityEngine;
using UnityEngine.Rendering;

namespace LiteRP
{
    public class LiteRenderPipeline : RenderPipeline
    {
        protected override void Render(ScriptableRenderContext context, Camera[] cameras)
        {
            throw new System.NotImplementedException();
        }
    }
}
  1. 在 Editor 下创建 Icons 目录,添加 PipelineAsset.png 文件
  1. 在编辑器下添加创建 Menu
c# 复制代码
using UnityEngine;
using UnityEngine.Rendering;

namespace LiteRP
{
    [CreateAssetMenu(menuName ="Lite Render Pipeline/Lite Render Pipeline")]
    public class LiteRPAsset : RenderPipelineAsset<LiteRenderPipeline>
    {
        protected override RenderPipeline CreatePipeline()
        {
            return new LiteRenderPipeline();
        }
    }
}
  1. 在 Assets 下创建 Settings 目录,并在其中创建 Lite Render Pipeline 资源

手动设置:

代码脚本设置:

在 Assets/Scripts 目录下创建 SetupLiteRP 脚本

c# 复制代码
using UnityEngine;
using UnityEngine.Rendering;

public class SetupLiteRP : MonoBehaviour
{
    public RenderPipelineAsset currentPipeLineAsset;

    private void OnEnable()
    {
        GraphicsSettings.defaultRenderPipeline = currentPipeLineAsset;
    }

    // 运行时修改能起到作用
    private void OnValidate()
    {
        GraphicsSettings.defaultRenderPipeline = currentPipeLineAsset;
    }
}

展示

相关推荐
SmalBox1 天前
【节点】[IsNaN节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox2 天前
【节点】[IsInfinite节点]原理解析与实际应用
unity3d·游戏开发·图形学
_zhourui_h_3 天前
Unity MyFramework 用法说明(二十二):使用 AudioManager 统一管理背景音乐与 2D/3D 音效
unity3d
SmalBox3 天前
【节点】[IsFrontFace节点]原理解析与实际应用
unity3d·游戏开发·图形学
_zhourui_h_4 天前
Unity MyFramework 用法说明(二十一):使用 UndoManager 为游戏内 UGC 编辑器实现撤销与重做
unity3d
SmalBox4 天前
【节点】[Comparison节点]原理解析与实际应用
unity3d·游戏开发·图形学
_zhourui_h_5 天前
Unity MyFramework 用法说明(二十):使用 KeyFrameManager 统一管理缓动曲线
unity3d
SmalBox5 天前
【节点】[BranchOnInputConnection节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox6 天前
【节点】[Branch节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox7 天前
【节点】[Any节点]原理解析与实际应用
unity3d·游戏开发·图形学