URP | PBR材質(zhì)(三)-優(yōu)化整理PBR

整合代碼
定義函數(shù)庫
目前代碼很多,我們定義函數(shù)庫,把函數(shù)放入函數(shù)庫里。
定義一個函數(shù)庫,創(chuàng)建一個文件,命名PbrData
Shader內(nèi)引入我們自定義的函數(shù)庫+

把自定義函數(shù)導(dǎo)入
我們把自定義2個函數(shù) 一個整體PBR ?一個是直接光部分這個部分是給多光源計算做準備。
把PBR計算合并到一個函數(shù)里,
我們回到Shader里調(diào)用這個定義的函數(shù)
輸出結(jié)果就可以
其他擴展
法線翻轉(zhuǎn)
我們有時候使用的法線貼圖,有2種格式

URP | Normal法線貼圖 - 嗶哩嗶哩 (bilibili.com)
定義需要的屬性
修改法線
這貼圖這里增加一個開關(guān),反向 Y軸
粗糙度也有時候需要翻轉(zhuǎn)
增加AO效果
準備增加 AO效果
定義一個變量控制 貼圖的強度
函數(shù)庫里PBR函數(shù)
在直接光高光反射加入 AO計算
間接光漫反射 和反射加入AO效果
第一個是間接光漫反射,第二個是間接光高光反射
效果

可以明顯看到接縫處更暗
增加自發(fā)光
自發(fā)光貼圖,我們需要 3個變量 ?, 一個自發(fā)光貼圖,自發(fā)光顏色,自發(fā)光強度
在直接光部分增加 自發(fā)光顏色
直接光漫反射
效果

陰影效果
增加關(guān)鍵字
獲取主光源,
計算陰影
燈光計算陰影,計算燈光距離衰減和陰影衰減
在漫反射階段,計算陰影衰減
注意:這里是計算陰影,所以我們就給直接光增加就可以
新建一個Pass ?具體細節(jié)查看
支持多光源
增加關(guān)鍵字
定義一個變量控制是否開啟多光源
在下面計算多光源效果。
多光源我們只需要考慮直接光照就可以。
全代碼
函數(shù)

標簽: