最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用 Unity URP ShaderGraph 平替 SurfaceShader

2023-08-16 13:47 作者:Dreamtowards  | 我要投稿

最近我在用 Unity URP 做體素系統(tǒng)渲染,我想寫一個shader,提供gbuffer幾何數(shù)據(jù),而不接管后續(xù)的高級效果渲染。對于這種需求,Unity之前Built-in?RP的SurfaceShader則可以完美解決 - 他只需要你提供片段的幾何數(shù)據(jù)。然而,URP相比于Built-in?RP有著很多難以忽視的優(yōu)處,[根據(jù)權(quán)威來源描述 待補(bǔ)充 尚不清楚] 包括更先進(jìn)的架構(gòu)設(shè)計 性能,和可自定義管線的靈活性。

然而,URP只支持?

  1. ?自己寫整個管線的著色器(如果要做BPR 光照陰影等 自己做很繁瑣又不如unity做的靠譜)?

  2. 或用?ShaderGraph?(只需提供gbuffer數(shù)據(jù) 接下來交由URP BPR管線,但是對于這種復(fù)雜的shader,用節(jié)點(diǎn)簡直是噩夢 會堆成一堆亂麻 難以看懂和編輯)

所以這就很迷惑。不過幸運(yùn)的是,ShaderGraph里有一個 Custom Function 節(jié)點(diǎn),允許你指向一個?HLSL?文件 里面可以自由編寫函數(shù)和hlsl代碼,節(jié)點(diǎn)給你的主函數(shù)一系列輸入和輸出。

自此,功能上基本可以替代 SurfaceShader,同時 增加了更多簡潔性(只需要一個hlsl文件 一個“入口”函數(shù),而不需要考慮shaderlab等繁瑣事務(wù))。和靈活性 (與節(jié)點(diǎn)搭配)


附:Eldaria Unity 的體素表面截圖,每個區(qū)塊支持100+種材質(zhì)。圖:根據(jù)表面高度的材質(zhì)混合。ShaderGraph + HLSL 的 URP BPR渲染。

不過,可能會有這個疑問:你為何不用ShaderGraph做這套shader?因?yàn)檫@個shader相對較為復(fù)雜,如果用節(jié)點(diǎn) 將可能是一個噩夢 巨多節(jié)點(diǎn)堆成亂麻?難以閱讀和修改。

我更習(xí)慣用glsl、hlsl代碼,在復(fù)雜的同時 那些表達(dá)式和處理過程 又可以簡潔直觀的呈現(xiàn)。而且很通用,可以到處移植。如果是節(jié)點(diǎn) 幾個表達(dá)式就要一堆節(jié)點(diǎn) 想改一下又要點(diǎn)來點(diǎn)去。而且移植性可能不太可靠 特別是對于這種核心shader。

用 Unity URP ShaderGraph 平替 SurfaceShader的評論 (共 條)

分享到微博請遵守國家法律
米泉市| 通江县| 开封市| 翁源县| 当雄县| 盐边县| 林周县| 罗江县| 长宁县| 鄂温| 兖州市| 滦平县| 蕲春县| 喜德县| 汝城县| 六安市| 肃北| 敦化市| 平谷区| 甘肃省| 瓦房店市| 财经| 同德县| 乐清市| 蒙自县| 霍邱县| 横峰县| 泰来县| 临沧市| 海宁市| 夏邑县| 郴州市| 恩施市| 崇文区| 新津县| 崇州市| 宜昌市| 安多县| 杂多县| 临沧市| 唐海县|