zoukankan      html  css  js  c++  java
  • Unity SRP 环境搭建

    工程配置

    1. 创建一个3d project
    2. 安装 Core RPLibrary(com.unity.render-pipelines.core)
    1. Windows->Package Manager
    2. 点击左上角加号选择 add package from git url
    1. 输入com.unity.render-pipelines.core 回车
    2. 设置颜色空间为Linear 线性空间(Project Setting->Player->Color Space)

    创建管线

    1. 创建RenderPipeline 子类 MyPipLine 实现 Render 方法
    public class MyPipLine : RenderPipeline
    {
        protected override void Render(ScriptableRenderContext context, Camera[] cameras)
        {
            
        }
    }
    
    1. 创建RenderPipelineAsset的子类 实现RenderPipeline方法
    [CreateAssetMenu(menuName = "Tools/CreateMyPipeline")]
    public class MyPipLineAsset : RenderPipelineAsset
    {
        protected override RenderPipeline CreatePipeline()
        {
            return new MyPipLine();
        }
    }
    
    1. 在unity中使用右键菜单Tools->CreateMyPipline创建pipline资源
    2. 打开Edit->Project Settings->Graphics 将创建出的资源拖拽至Scriptable Render Pipeline Settings

    这样管线就创建完成了。接下来只要实现MyPiplineRender方法了

    渲染物体

    1. 在场景中创建一个立方体
    2. 添加一个材质赋予立方体,材质的shader 选择为Unlit/Color
    3. 实现MyPipLine类的Render方法
    protected override void Render(ScriptableRenderContext context, Camera[] cameras)
        {
            foreach (var camera in cameras)
            {
                //设置相机参数
                context.SetupCameraProperties(camera);
                //获取相机裁剪参数
                camera.TryGetCullingParameters(out var cullingParameters);
                //根据裁剪参数获取裁剪结果
                var results = context.Cull(ref cullingParameters);
                //设置渲染Pass
                var ds = new DrawingSettings();
                ds.SetShaderPassName(1, new ShaderTagId("SRPDefaultUnlit"));
                //渲染过滤器设置为全部渲染
                var fs = new FilteringSettings(RenderQueueRange.all);
                //绘制渲染结果
                context.DrawRenderers(results,ref ds,ref fs);
                //绘制天空盒子
                context.DrawSkybox(camera);
            }
            //提交
            context.Submit();
        }
    

    在场景中就可以看到物体了

  • 相关阅读:
    《敏捷开发修炼之道》学习笔记3:交付用户想要的软件
    Photoshop快捷键大集合
    如何制作已编译的HTML帮助文件(即CHM帮助文件)
    根本不存在 DIV + CSS 布局这回事
    可将视频转换成Gif动画的相关软件
    SEO是什么?与spam有什么区别呢?
    视频六大编辑软件大比拼
    陈彤:一个网络编辑的11年
    最近出现的p2psvr.exe恶意程序的解决办法
    使用火狐浏览器Firefox的一些小技巧
  • 原文地址:https://www.cnblogs.com/zitonglove/p/14998474.html
Copyright © 2011-2022 走看看