【直播回顾】URP中如何写Shader?

洪流学堂,让你快人几步。你好,我是你的技术探路者郑洪智,你可以叫我大智。

每周三例行的洪流学堂Unity直播公开课这周也如期与大家见面啦!

这周一起探索的话题是:URP中如何写Shader?

下面我们一起来复习一下。

直播内容

URP中如何写Shader呢?

内容大概包含以下几个部分:

  • SRP的基本Shader结构
  • CG vs HLSL
  • 从0编写URP Shader
  • 旧管线升级URP Shader指南

URP是基于SRP的渲染管线,咱们直接讨论下SRP的Shader:

SRP的Shader和内置渲染管线的Shader一样,都是使用了Untiy的ShaderLab来编写,结构也相同。

Pass中的不同之处就是:以前如果你是用CG写Shader的话,现在最好换到HLSL啦。

URP也支持CG语言。如果你给Shader添加CGPROGRAM/ENDCGPROGRAM块,Unity会自动include内置渲染管线的代码库,此时如果你再include SRP shader代码库,可能会有一些宏或者函数和内置渲染管线的代码库冲突。此外,使用CG语言编写无法支持SRP Batcher。

在语言语法层面呢,CG 和 HLSL是没什么差别的。

那为什么Unity要切换到HLSL呢?早期的Unity中的Shader是用Cg写的,但是后面都转到了HLSL。Cg已经很久不更新了,所以使用HLSL才是正道。

如果想要Shader和SRP Batcher兼容,需要将材质的所有属性定义在一个名为UnityPerMaterial的CBUFFER块中。

CBUFFER_START(UnityPerMaterial) 
    half4 _BaseColor; 
CBUFFER_END

内置管线Shader升级到URP详细手册直达链接在这个地方:

https://edu.hongliu.cc/detail/i_5fc5f9a3e4b0231ba889e87a/1?from=p_5fbcc34de4b0231ba8887cea&type=6

扩展阅读

【扩展学习】洪流学堂公众号回复1202直播查看完整直播回放


我是大智(vx:zhz11235),你的技术探路者,下次见!

别走!点赞收藏哦!

好,你可以走了。

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大智_Unity玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值