体积光的光源可以是平行光、探照灯、点光源等,我们今天先来看看平行光如何制作体积光。 体积光的原理网上已经有很多了,这里就不赘述了。着重快速实现: 代码如上,可以看到体积光的基础实现非常简单,在片元着色器步进采样shadowmap,看当前步进的位置是否处于阴影区域,如果不处于阴影 ...
之前一位小伙伴问过我URP没有Projector,要实现decal功能,我后来确实注意到这一点,URP下的Projector有相关的插件实现,各位可自行百度,这里说Decal的另一种实现思路,屏幕空间Decal。 屏幕空间的decal思路就是在屏幕空间采样深度图,然后通过屏幕空间坐标和深度值重建世界坐标,再转换到decal的local坐标,算出uv即可。 先上代码和效果图: 直接使用此代码需要将渲 ...
2020-09-10 20:02 1 1042 推荐指数:
体积光的光源可以是平行光、探照灯、点光源等,我们今天先来看看平行光如何制作体积光。 体积光的原理网上已经有很多了,这里就不赘述了。着重快速实现: 代码如上,可以看到体积光的基础实现非常简单,在片元着色器步进采样shadowmap,看当前步进的位置是否处于阴影区域,如果不处于阴影 ...
上一节我们知道了SRP的作用和基本用法,现在来看一下我们的主角--URP是个怎样的管线把! Unity2019.3及之后的版本才能看到URP这个package,前身是LWRP,可以创建默认管线项目然后手动导入,或者直接创建URP项目。导入之后我们开始分析URP的代码: 回到我们最开始学习SRP ...
高度雾的实现思路非常简单,通过深度图还原出来的世界坐标的y值来做fog的lerp参数。 代码使用之前的体积光代码的基础上做了个加法,方便快速使用。 代码如下: 使用方法还是像之前一样在摄像机前面放一个片,快速的查看效果。 效果如下: 我们能看到天空已经曝 ...
上节我们学习了LitShader大致是怎样的起作用的,留下了PBR相关的疑问,这节我们来解答一下URP下的PBR究竟做了什么优化。 要知道做了什么优化,就必须知道原来的PBR是什么样子。 Unity原来的Standard是这样写的: 我们直接看最后color的计算 ...
Unity的URP给了我们扩展渲染Pass的接口--RenderFeature,我们之前在讲URP-ForwardRenderer的时候提到过RenderFeature,这个东西是可以用来扩展Pass的。RenderFeature是依附于ForwardRenderer的,如下图所示 ...
关于URP的Postprocess我们需要有个了解,以前在内置管线,对于后处理我们一般自己写或者用PostprocessStack,现在URP已经将postprocess集成到URP中,我们一起来学习下吧~ 首先需要创建一个Volume,然后创建VolumeProfile,点击 ...
学习URP之前首先要知道SRP是什么。 SRP(Scriptable Render Pipeline)是Unity向开发者提供的用来组织渲染数据和自定义提交渲染方案的接口,用户可以灵活的根据需求选择自己的渲染信息组织和提交方案。 而URP就是Unity官方在SRP的基础上实现好的一套方案 ...
上一章讲到了URP的RenderSingleCamera函数的Renderer之前,这次我们继续,开始了解Unity封装的ForwardRenderer是个什么神秘物体。 为了方便,先把上次讲到的方法贴在这里: 我们从line 14开始学习: 我们可以看到Renderer ...