URP | 簡(jiǎn)單水效果

深度
使用上面定義好的函數(shù)計(jì)算,

不同深度使用不同顏色

頂點(diǎn)動(dòng)畫(huà)
因?yàn)槲覀冃枰褂觅N圖制作頂點(diǎn)動(dòng)畫(huà),在頂點(diǎn)階段計(jì)算
注意: SAMPLE_TEXTURE2D_LOD ?因?yàn)槭琼旤c(diǎn)著色器階段使用這個(gè)。
輸出到頂點(diǎn)坐標(biāo)效果

下一步增加深度控制。
頂點(diǎn)著色器階段,計(jì)算出世界空間頂點(diǎn)位置。
定義一個(gè)變量控制深度大小。
注意:注意這里使用了Get DepthFade函數(shù),這個(gè)函數(shù)調(diào)用UV值了。
因?yàn)槲覀兪窃陧旤c(diǎn)著色器階段,貼圖使用 LOD的效果。
所以我們上面調(diào)用的UV函數(shù)需要改一下貼圖方式。
使用世界空間頂點(diǎn)和控制深度值, ? 控制大小值
這個(gè)數(shù)值乘到 noise貼圖上
這樣就可以使用深度控制頂點(diǎn)在淺的地方產(chǎn)生動(dòng)畫(huà)
效果

代碼

扭曲
引入函數(shù)庫(kù)
對(duì)模型的UV進(jìn)行噪波扭曲,
我們通過(guò)屏幕空間采樣,得到物體背后的屏幕樣式
UV函數(shù)控制紋理的移動(dòng)
頂點(diǎn)著色器階段,采樣貼圖的UV
通過(guò)采樣我們的噪波貼圖,對(duì)UV進(jìn)行扭曲,以及提取出我們的深度,來(lái)根據(jù)深度大小來(lái)進(jìn)行相對(duì)應(yīng)的扭曲效果:
效果

代碼塊
注意:這里使用的方法和熱扭曲類(lèi)似

邊緣水花
使用前面計(jì)算的邊緣深度
參數(shù)

效果

計(jì)算向量
我們準(zhǔn)備計(jì)算光照,反射效果,
前加light庫(kù)
需要在頂點(diǎn)著色器階段計(jì)算出需要的向量。
片元著色器階段
使用法線貼圖,把噪波貼圖增加倆個(gè)屬性轉(zhuǎn)換成法線貼圖。
獲取頂點(diǎn)著色器階段數(shù)據(jù),和環(huán)境光。
增加場(chǎng)景反射探針
場(chǎng)景中增加反射探針

場(chǎng)景打開(kāi)Window—Lighting

采樣環(huán)境反射探針得到反射顏色,輸出
效果

Dot 系列數(shù)值
PBR公式 DGF 分別求出來(lái),這里unity里提供我們3個(gè)函數(shù)
需要 DistributionGGX函數(shù), ?
GeometrySmith
函數(shù) ?FresnelSchlick
函數(shù)GeometrySchlickGGX 函數(shù) 是G 需要的小函數(shù)
我們計(jì)算DGF需要F0,這里求出F0
計(jì)算出DGF
直接光高光
開(kāi)始計(jì)算直接光高光部分
效果

直接光漫反射
漫反射
效果

有環(huán)境的顏色,
合并水的基礎(chǔ)效果
合并水的顏色和水花的效果
定義新變量_FoamColor 水花的顏色
效果

輸出
輸出
調(diào)整參數(shù)效果



全代碼