国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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 貼花效果的評論 (共 條)

分享到微博請遵守國家法律
连平县| 大连市| 刚察县| 福贡县| 岳普湖县| 车致| 都兰县| 平乐县| 涪陵区| 义乌市| 开远市| 东海县| 通城县| 扶余县| 资溪县| 姜堰市| 闵行区| 溧水县| 三都| 玉门市| 中卫市| 洛浦县| 吉木萨尔县| 阿瓦提县| 巴东县| 清徐县| 汉沽区| 武功县| 隆昌县| 蓬安县| 塔河县| 喀什市| 清流县| 综艺| 四会市| 武定县| 上饶县| 连南| 台中市| 年辖:市辖区| 巩义市|