unity urp管線 手把手教你實現(xiàn)可交互沙漠【刻俄柏表示已經(jīng)學(xué)會了】(2)

????這篇文章來主要實現(xiàn)沙礫的閃光,unity其實已經(jīng)有EmissionMap但其效果與我們想要的還是有些區(qū)別所以,本文來簡單的改改Unity的Emission。
????首先我們先準備一張白噪聲作為Emission的貼圖。我們可以直接從SD里面扒一張下來,或者直接程序生成就是將每個像素隨機0-1的值就行,方法很多這里就不一一演示了。

弄好貼圖后我們回到LitShader把它的GUI給注釋掉

我們再在Emission的屬性中加兩個參數(shù)用來調(diào)整閃光的數(shù)量和尺寸

打開LitInput.hlsl文件,將上面的參數(shù)聲明一下,再聲明EmissionMap的縮放和位移

看到這篇代碼的最下面,他用了個SampleEmission的方法我們?nèi)グ堰@個方法修改一下

我們在Packages中找到SurfaceInput把它復(fù)制過來

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

現(xiàn)在打開SurfaceInput文件
看到最下面

這就是我們要修改的方法
首先我們用step限制一下發(fā)光區(qū)域

復(fù)制上面的代碼再替換過去,然后我們回到LitInput中去

用上面的替換掉原來的。
現(xiàn)在我們打開文件LitForwardPass.hlsl。
我們看到它的片元函數(shù)

添加如下代碼去限制一下顯示光點的區(qū)域

如果我還不希望在陰影中顯示光點還可以進行如下操作

標簽: