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

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

URP | 熱扭曲效果

2022-03-04 13:18 作者:那個人真狗  | 我要投稿

內(nèi)容偏多,下圖是目錄

目的

  • URP管線下怎么獲取屏幕信息。

  • 實現(xiàn)特效中使用的熱扭曲效果。

  • 認(rèn)識攝像機輸出的不同階段效果圖。

概述

  • URP管線環(huán)境下,GrabPass是失效的。

  • 在URP管線使用的OpaqueTexture 獲取不透明物體的繪制。

  • 在shader Graph 里對應(yīng)的節(jié)點是 ?SceneColor

注意: OpaqueTexture只能渲染不透明物體。

  • 透明物體是抓取不到的。

1.抓取不透明物體

聲明貼圖

  • 設(shè)置貼圖

片元著色器階段輸出

  • 計算出模型顯示UV坐標(biāo)

  • 全代碼


  • 效果

2.熱扭曲效果

  • 制作原理,就是我們獲取到屏幕顏色以后,對屏幕顏色UV進行偏移達到扭曲的效果。

  • 原來我們是扭曲紋理,就是對紋理坐標(biāo)UV扭曲。

  • 現(xiàn)在我們獲取一張Niose紋理對屏幕UV扭曲。

輸入變量

  • 輸入需要的變量

? ? ? ? ? ?niose紋理,遮罩紋理,niose紋理移動速度,扭曲力度
  • 計算UV信息,輸出

  • 片元著色器階段

    前計算出不同的UV移動方向,

    生成倆個扭曲的紋理,計算出不同的UV扭曲程度,

    加到屏幕UV里。

  • 計算遮罩,

    我們輸出設(shè)置成遮罩,這樣我們就可控扭曲范圍大小。

  • 效果

3.特效頂點Alpha可以控制扭曲

  • 準(zhǔn)備好特效刀光貼圖

定義頂點輸入

  • 在結(jié)構(gòu)體輸入,輸出,如果不清楚可以參考上面的文檔。

  • 頂點著色器階段輸出

片元著色器階段

  • 計算出倆個方向,使用頂點Alpha控制扭曲強度。

  • 效果

能看到扭曲越來越弱。

擴展 :法線貼圖實現(xiàn)扭曲效果

  • 準(zhǔn)備貼圖

  • 修改變量


注意:法線貼圖使用**"bump" {} ?法線標(biāo)簽**

  • 在片元著色器階段我們處理法線的方法。

這里和普通貼圖不一樣,使用一個內(nèi)置函數(shù),UnpackNormalScale 這函數(shù)是控制法線強度。

  • 效果

  • 代碼

4.半透明物體支持熱扭曲

  • 上面方法是不支持半透明物體。但是我們特效中都是半透明物體。

  • 怎么讓支持半透明物體扭曲。

思路

  • 實際上URP管線中給我提供了很多COPY的圖,我們這里使用**_AfterPostProcessTexture**這張貼圖

  • 這張圖是后處理完保存的一張圖。

    • 然后利用RendererFeatures新建一個渲染時機 ,并新建一種LightMode Tags類型.

    • 這樣所有Tags是Grab的shader都會在后期處理完成之后在渲染。

簡單理解:我們創(chuàng)建一個狀態(tài),讓這個狀態(tài)是在攝像機渲染完以后在渲染。


設(shè)置管線

  • 找到URP管線設(shè)置——設(shè)置后處理資源

  • 設(shè)置一個渲染狀態(tài)

  • 獲取屏幕渲染出的一張圖。

  • 設(shè)置疊加模式和渲染所有層,設(shè)置標(biāo)簽

設(shè)置相機

  • 我們前面設(shè)置渲染狀態(tài)了,我們現(xiàn)在還需要創(chuàng)建一個攝像機。

    這個攝像機是獲取主相機渲染的畫面。

  • 設(shè)置管線,關(guān)閉所有渲染圖層。

擴展Overlay Camera 是將其視圖呈現(xiàn)在另一個攝影機的輸出之上的攝影機.

  • 主相機里綁定 這個子相機

  • 在FrameDebug里我們可以看到倆個攝像機,第二個攝像機就是看到前面渲染效果。


設(shè)置shader

  • 定義渲染后處理圖

注意:這里是和上面不一樣的圖。

  • 標(biāo)簽里修改渲染方式。

  • 片元著色器階段,替換后處理素材。


  • 效果

    現(xiàn)在半透明物體也可以支持扭曲效果。

代碼


參考資料

1.人人有功練 Unity URP管線透明折射扭曲材質(zhì)的一系列實踐(一)兩種渲染時機的扭曲材質(zhì) - 知乎 (zhihu.com)

2. URP 系列教程 | 多相機玩法攻略 - 知乎 (zhihu.com)

5.擴展:渲染階段的輸出

CameraColorTexture 和 _CameraOpaqueTexture區(qū)別

  • 在Debug狀態(tài)下查看這倆個

  • _CameraColorTexture ? 是場景渲染后生成的紋理截圖,

  • _CameraOpaqueTexture ?是在不透明物體渲染后截圖,所以截取不到透明物體。


AfterPostProcessTexture

  • _AfterPostProcessTexture 是后處理渲染結(jié)果輸出的圖。

問題:這三個階段渲染輸出的圖前后順序是什么?

  • 第一,我們可以看到最前渲染的是CameraColorTexture

  • 第二是 _CameraOpaqueTexture ? 不透明物體渲染后截圖

  • 最后是后處理渲染出結(jié)果在輸出的圖。

總結(jié)

  • URP管線下怎么抓取渲染圖,默認(rèn)URP管線提供了設(shè)置,這里有倆個一個是獲取渲染圖,一個是渲染深度。

  • 渲染結(jié)果輸出圖的認(rèn)識,會產(chǎn)生CameraColorTexture ,_CameraOpaqueTexture ? ,AfterPostProcessTexture ,他們的前后順序,具體什么情況使用上面圖。

  • 變透明實現(xiàn)扭曲,是在管線里,增加一種狀態(tài),使用第二個攝像機渲染輸出AfterPostProcessTexture 圖。在進行扭曲處理。

    在編輯窗口是有問題的,需要運行狀態(tài)查看效果。


URP | 熱扭曲效果的評論 (共 條)

分享到微博請遵守國家法律
阜阳市| 莱西市| 改则县| 定州市| 临桂县| 深州市| 武清区| 邯郸县| 巴马| 志丹县| 通海县| 青河县| 舟曲县| 射洪县| 三门峡市| 肇源县| 蕉岭县| 广汉市| 钦州市| 东莞市| 慈利县| 望城县| 吉安县| 田林县| 淅川县| 屏南县| 天等县| 封开县| 永安市| 荔波县| 宜昌市| 嫩江县| 平潭县| 元阳县| 平阴县| 尉氏县| 大同市| 黎平县| 满城县| 鱼台县| 天全县|