欢迎光临散文网 会员登陆 & 注册

unity urp管线 手把手教你实现可交互沙漠【刻俄柏表示已经学会了】(2)

2023-07-26 16:31 作者:今天摸鱼就好了  | 我要投稿


    这篇文章来主要实现沙砾的闪光,unity其实已经有EmissionMap但其效果与我们想要的还是有些区别所以,本文来简单的改改Unity的Emission。

    首先我们先准备一张白噪声作为Emission的贴图。我们可以直接从SD里面扒一张下来,或者直接程序生成就是将每个像素随机0-1的值就行,方法很多这里就不一一演示了。

弄好贴图后我们回到LitShader把它的GUI给注释掉

我们再在Emission的属性中加两个参数用来调整闪光的数量和尺寸

打开LitInput.hlsl文件,将上面的参数声明一下,再声明EmissionMap的缩放和位移

看到这篇代码的最下面,他用了个SampleEmission的方法我们去把这个方法修改一下

我们在Packages中找到SurfaceInput把它复制过来

在LitInput.hlsl文件中更改SurfaceInput的路径如下

现在打开SurfaceInput文件

看到最下面

这就是我们要修改的方法

首先我们用step限制一下发光区域

复制上面的代码再替换过去,然后我们回到LitInput中去

用上面的替换掉原来的。

现在我们打开文件LitForwardPass.hlsl。

我们看到它的片元函数

添加如下代码去限制一下显示光点的区域

如果我还不希望在阴影中显示光点还可以进行如下操作


unity urp管线 手把手教你实现可交互沙漠【刻俄柏表示已经学会了】(2)的评论 (共 条)

分享到微博请遵守国家法律