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

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

URP | Deacl 貼花效果

2022-04-26 14:10 作者:那個人真狗  | 我要投稿



效果

  • 貼花效果

實現(xiàn)原理

  • 前計算出裁剪空間位置信息,轉(zhuǎn)換到世界空間

  • 計算世界空間的位置信息。 做一個透視除法,轉(zhuǎn)換到物體空間。

  • 在物體空間內(nèi)部,計算出場景物體相交的物體。

  • 在物體空間內(nèi)部,輸入紋理平鋪到世界空間什么方向(Z)。

Shader Graphs實現(xiàn)

  • 使用深度計算出相交

  • 計算出顯示,顯示范圍有多大

  • 計算紋理UV

代碼實現(xiàn)

  • 準備基礎(chǔ)Shader

頂點著色器

  • 片元結(jié)構(gòu)體 增加我們需要的屬性

輸出

sstexcoord ? ? ? ? ? ? ? ? ?屏幕UV

cam2vertexRayOS ? ? ?相機空間的射線

cameraPosOS ? ? ? ? ? ? 相機空間下模型頂點位置


  • 獲取深度圖

  • 頂點著色器階段

計算出屏幕UV[0-1]

  • 計算相機空間下的模型頂點坐標

注意:相機空間轉(zhuǎn)換到模型空間下,使用了V的逆矩陣和M的逆矩陣進行計算,但是它是向量,所以得忽略掉平移矩陣,故float4(posVS.xyz,0)后面得取0,而不是1。



擴展 空間轉(zhuǎn)換方式

我們?nèi)〉降哪P涂臻g下的射線,它是模型的頂點從模型坐標系轉(zhuǎn)到相機坐標系下,然后忽略了平移矩陣后,又從相機坐標系轉(zhuǎn)回模型坐標系。那有沒有這種可能,只計算模型坐標系轉(zhuǎn)到相機坐標系的平移矩陣,不用費力繞了一大圈又計算回來?我們可以自行推導該想法的正確性。

  • 先說明下這里需要使用的矩陣。

  • 然后我們的射線Ray和模型頂點坐標POS的計算式如下

  • 這里看似可以直接把對應的矩陣直接消掉


片元著色器

  • 前獲取屏幕深度

  • cam2vertexRayOS 檢測射線,需要透視除法。

在計算出 貼花空間的坐標= 模型空間的相機坐標+模型空間的射線 * 屏幕深度

  • 效果

  • 移動物體,我們可以看到UV在變化。

? ? 本質(zhì)是和模型坐標系一致,不過它是沿著屏幕深度進行貼合采樣。

  • 我們在看一下,發(fā)現(xiàn)這個uv和我們貼圖UV是不一致的,那怎么解決這個問題。

  • 效果

  • 我們目前看到,UV平鋪出去了,所以,我們需要裁減一下。

  • 創(chuàng)建一個Mask 裁減掉不需要的

  • 效果

  • 然后放到立體的側(cè)面的時候,會出現(xiàn)拉伸這不是我們想要的。

  • 那我們在做一個限制


  • 效果

整理

  • 我們是在alpha處理調(diào)整

整理到alpha

我們現(xiàn)在看效果是錯誤的,又回到

  • 我們需要給alpha做一個剔除

  • 完成


  • 因為我們是加到場景需要增加 一個是場景霧效,一個是漫反射顏色。


  • 全代碼



總結(jié)

  • 主要難點在空間空間轉(zhuǎn)換階段,容易出現(xiàn)錯誤,

  • 第二部分,采樣UV不是 xy ? 是xz

  • 第三部分,計算遮罩

資料參考

URP下屏幕空間貼花(ScreenSpaceDecal)學習筆記 | 煙雨迷離半世殤的成長之路 (lfzxb.top)

URP | Deacl 貼花效果的評論 (共 條)

分享到微博請遵守國家法律
孟州市| 交城县| 金门县| 盐亭县| 保山市| 澳门| 万山特区| 拉孜县| 延川县| 宜春市| 深泽县| 巴塘县| 启东市| 上思县| 马尔康县| 柘荣县| 本溪市| 扬中市| 长白| 闽清县| 保定市| 金山区| 防城港市| 增城市| 南开区| 余姚市| 县级市| 湖州市| 商城县| 惠东县| 平果县| 成都市| 汉源县| 皋兰县| 祁门县| 安丘市| 赤壁市| 恩施市| 潜江市| 洛浦县| 哈尔滨市|