創作內容

24 GP

【筆記】Shaderlab - 5. Camera Depth Texture

作者:樂小呈│2020-09-12 15:11:17│巴幣:48│人氣:655
Shaderlab 筆記
5. Camera Depth Texture

使用Depth Buffer暫存的深度資訊,做出各種效果

水深: 水下地面的像素深度 - 水面像素深度 = 水深
交界判斷: 相交物體像素深度 - 表面深度 = 相交深度 (相交深度淺的部分就是交界處)

此篇筆記只有重點程式

    sampler2D _CameraDepthTexture;
    全域變量_CameraDepthTexture,可以取得當前Depth Buffer 的像素深度資料,以Texture 的
    形式儲存

    v2f vert (appdata v)
    {
        v2f o;
        o.vertex = UnityObjectToClipPos(v.vertex);

        o.screenPosition = ComputeScreenPos(o.vertex);
        把在Clip Sapce 的頂點座標,轉換成螢幕空間的座標,包括深度

        return o;
    }

    fixed4 frag (v2f i) : SV_Target
    {

        fixed4 depth = tex2Dproj
        (_CameraDepthTexture, UNITY_PROJ_COORD(i.screenPosition)).r;
        把i.screenPosition 傳換成texture UV,取出正在處理位置的暫存深度
        註: 使用tex2Dproj 是為了把i.screenPosition 的正交投影轉會為透視投影

        float depthLinear = LinearEyeDepth(depth);
        將取出的傳存深度轉換為線性
        註: 可能和人眼有關?,_CameraDepthTexture 的深度值是非線性的
        修正,和人眼無關,非線性是為了在近距離有更高的精度

        float sphereDepth = saturate(depthLinear - i.screenPosition.w);
        將暫存深度 - 當前深度,計算出相交深度

        最後再使用相交深度,做出自己需要的效果

        return sphereDepth;
    }

這部分其實理解之後就蠻簡單的了

感謝放肆大大

好久沒寫筆記ㄌ

然後主專案設計要大轉彎了,之後我改程式會超級刺激

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4914077
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Shader|筆記

留言共 10 篇留言

也龍
看起來好厲害不知道回什麼所以我要星爆氣流斬

09-12 15:12

樂小呈
沒關西,給你ㄌㄌ
https://pbs.twimg.com/media/EhjqBdnUwAE0Acq.jpg09-12 15:16
樂小呈
https://twitter.com/Nakkar7/status/130404966973183590409-12 15:16
也龍
呈 再這樣下去你會被fbi抓的

09-12 15:17

樂小呈
https://truth.bahamut.com.tw/s01/202008/1b25df58db93904a835e25c419260cc2.JPG?w=30009-12 15:24
也龍
即使如此也不後悔?

09-12 15:25

樂小呈
https://truth.bahamut.com.tw/s01/202005/c55867b95bb2ceecf12914919ba0bbf2.JPG?w=30009-12 15:25
也龍
https://truth.bahamut.com.tw/s01/202009/061a70a20c449d1afc17f75b349c29f8.JPG?w=300

09-12 15:27

也龍
結果我忘記了po== https://truth.bahamut.com.tw/s01/202009/d5be855b94d7c4b97d72d5c2ed76a26d.JPG?w=300

09-12 15:27

樂小呈
對ㄡ...現在PO阿09-12 15:28
樂小呈
還有另一隻也PO09-12 15:29
也龍
另一隻是哪一隻

09-12 15:29

樂小呈
看到會做惡夢的那隻09-12 15:30
也龍
我沒有存到 我去disco翻一下

09-12 15:30

GG
我好像學會什麼,不得了

09-12 15:35

樂小呈
學都學,這用途蠻廣的[e12]09-12 15:37
御安鴨·摸頭害鴨哭
我不理解的東西

09-12 18:00

樂小呈
沒關西的[e19]09-12 18:18
沐橙
完全看不懂!

09-13 14:28

樂小呈
沒關西,大家學東西的都不同[e12]09-13 14:32
我要留言提醒:您尚未登入,請先登入再留言

24喜歡★angus945 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【紀錄】Shader -... 後一篇:【里程碑】5000 GP...

追蹤私訊切換新版閱覽

作品資料夾

s6s8s6s詩詞與詞牌
看更多我要大聲說6小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】