Unity3D培训
美国上市Unity3D培训机构

400-111-8989

VR培训

Unity可编程渲染管道(Scriptable Render Pipeline)

  • 发布:Unity3D培训
  • 来源:Unity3D教程
  • 时间:2018-04-25 15:55

去年参加Unite2017 Tokyo的时候,Unity可编程渲染管道(Scriptable Render Pipeline,下面简称SRP)其实已经出来了(资料在这里)。那时候对Unity不太熟所以没有特别关注,现在Unity2018已经可以用SRP了,所以简单介绍一下来龙去脉,以及入门级的用法,抛砖引玉。

为什么需要SRP

Unity内置的渲染管道只有Forward和Deferred两种,如下图。

Unity可编程渲染管道

Unity内置的渲染管道

这两种内置的管道各有优缺点 ,而你都看不到源代码,如果为了表现某种特殊的视觉效果修改起来非常不便,所以就有了SRP的诞生。另外,根据项目的需求写合适的SRP,也可以降低DC,提高运行效率。

怎么使用SRP

安装

从这里下载Unity2018之后,就自带了SRP,无需另外安装。

使用

接下来我会一步一步地做一个只是把屏幕涂成绿色的SRP,可能你不太懂每一步的意义,但是请耐心地跟着做完,再回头看看每一步就懂了。

第一步:继承RenderPipeline,编写实际的渲染代码类。

public class BasicPipeInstance : RenderPipeline

{ //要涂的颜色

private Color m_ClearColor = Color.black; public BasicPipeInstance(Color clearColor)

{

m_ClearColor = clearColor;

} //渲染函数,其中ScriptableRenderContext是渲染的上下文,

//用来执行CommandBuffer,而CommandBuffer就是渲染管线每一步的处理

//CommandBuffer是Unity之前的就有的东西,想详细了解请自行百度谷歌

public override void Render(ScriptableRenderContext context, Camera[] cameras)

{ // does not so much yet :()

base.Render(context, cameras); // clear buffers to the configured color

var cmd = new CommandBuffer();

cmd.ClearRenderTarget(true, true, m_ClearColor);

context.ExecuteCommandBuffer(cmd);

cmd.Release();

context.Submit();

}

}

第二步:继承RenderPipelineAsset,编写生成SRP数据文件的类。

public class BasicAssetPipe : RenderPipelineAsset

{ public Color clearColor = Color.green;#if UNITY_EDITOR

[UnityEditor.MenuItem("SRP-Demo/01 - Create Basic Asset Pipeline")] static void CreateBasicAssetPipeline()

{ //生成ScriptableObject

var instance = ScriptableObject.CreateInstance(); //将ScriptableObject保存为文件

UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/BasicAssetPipe.asset");

}#endif

protected override IRenderPipeline InternalCreatePipeline()

{ //应该是运行时被调用生成SRP

return new BasicPipeInstance(clearColor);

}

}

第三步:创建SRP asset,如下图。

Unity可编程渲染管道

创建SRP asset

这时候Assets文件夹里会生成一个BasicAssetPipe.asset文件。

第四步:将BasicAssetPipe.asset设置为当前使用的SRP。

打开Editor->Project Settings->Graphics,然后将刚才的BasicAssetPipe.asset文件拖到Scriptable Render Pipeline Settings,如下图。

Unity可编程渲染管道

SRP设置

然后你就可以看到游戏变成一片绿了。

Unity可编程渲染管道

渲染结果

代码在官方的例子里有,路径和使用的包请自行修改添加。作为不错的入门学习,也可以看看这位日本大哥的代码。

感谢大家阅读由Unity3D教程分享的“Unity可编程渲染管道”希望对大家有所帮助,更多精彩内容请关注Unity3D培训官网

免责声明:本文由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Unity脚本与编辑器工具,开发省时必备利器
下一篇:Unity全新的版本发布计划
Unity|超级兔子

Unity|超级兔子

Unity超级角色控制器物理API分析与功能实现

Unity超级角色控制器物理API分析与功能实现

教程:让Unity中物理效果更加逼真

教程:让Unity中物理效果更加逼真

Unity3D 软件下载

Unity3D 软件下载

选择城市和中心
贵州省

广西省

海南省