當前位置:首頁 >教程首頁 > 遊戲程序 > Unity3D遊戲開發工程師班 >Unity Shader視差遮蔽映射與局部差異導數函數

Unity Shader視差遮蔽映射與局部差異導數函數

發布時間:2020-05-06 10:35:20

Hello . 大家好!今天帶來的是美術向的Unity Shader視差遮蔽映射與局部差異導數函數小教學,我是麥田。

一、視差映射

什麼是視差映射?即視差貼圖。遊戲/影視中使用的一種改進法線貼圖技術。也可以理解為高度圖。

舉個不恰當的例子,一隻鴿子以為自己是一隻老鷹在天上飛的很高。往下看,下麵群山溝壑。受製於我們手機性能的影響,我們就要想辦法去解決這種問題。又或者我需要表達高度的地方,通過曲麵細分或者置換出麵的話,實在太貴了。

這時我們就可以根據實際情況來選擇這方麵的優化方式。視差,其實就是通過切線空間中的視角(相對於法線的角度)和該點處的高度圖的值的函數,來渲染多邊形上某個點的紋理坐標來實現的。

在較陡的視角下,紋理坐標的位移更大,由於視線變化而產生的視差效應給人眼造成了深度錯覺。

二、”上才藝“

1、打開Unity,我用的版本是2019.3.6,安裝好Amplify Shader Editor;

2、版本選擇1.8,最新版本的確實舒服,最重要的是老版本在視差映射方麵MAC上有BUG;

3、然後我們在場景內創建一個平麵 ;

4、Ctrl+Shift+F,選中Cramea,快速切換攝像機角度朝地45度;

5、創建一個Shader文件;

6、準備好一套圖,Base,Normal,AO,Height等等。

OK,正文開始,可以看一下這裏的設置,前向渲染,層級2000。

1.png

首先,我們創建一個Texture Object和UV,注意一下,是Object,不是Sample Texture,然後將Height貼圖給它,UV需要指認為獲取Height。(下圖)

2-1.png2-2.png2-3.png

獲取一個View Dir(視口方向),設置到切線空間。

這裏補充一下,圖表封裝的還是非常好的,View Dir在代碼裏都是要手擼的。View Dir的原理圖長這樣。

3-1.png

View Dir原理圖

3-2.png

創建一個核心節點視差遮擋映射,圖表已經給你封裝好了,就是這個,讓你免去計算的痛苦。

4.png

其基本原理即為獲取到Height貼圖的數據(0-1),進行V方向偏移,記錄獲取到的數據進行步進采樣。

具體算法請參見網易大佬的知乎兩篇譯文,裏麵有詳細的計算方式和實現原理。

創建以下內容,將獲取到的高度UV給到視差遮擋映射。並且創建一個Range,最大值給1,暴露到材質麵板。

7.png

三、”上才藝x2“

創建DDX與DDY這兩個函數

8.png

DDX&DDY節點輸出相對於屏幕空間xy坐標的指定輸入值的偏導數。

這又是什麼玩意?

簡單的說就是三角麵上一個像素的位置上對屏幕坐標x和y方向的導數,也就是該點位置的表麵相對於屏幕平麵的傾斜程度的度量。

具體解釋鏈接:http://www.aclockworkberry.com/shader-derivative-functions/

鏈接中解釋的是GLSL中的用法,兩者其實是一樣的,這裏的dFdX即為DDX,同理dFdy即為DDY。

看到下圖我們能理解,DDX與DDY的計算方式了,GPU光柵的時候,會將他們變成2×2像素的塊。通過獲取塊中像素值之間的差異來計算出導數,即為右邊減去左邊,底下減去上麵。所以,導數是逐像素計算的。

9.png

那麼應用場景在哪裏?Unity3D引擎中的MipMap就是這樣計算而來。

10.png

介紹完了核心的視差遮蔽映射與局部差異導數函數,下麵我們就來繼續完善我們想做的東西吧!

11.png

創建四個TexSample,將MipMode改為Derivative,再創建一個Range(快捷鍵1),暴露出DDX與DDY後,將DDX&DDY給到與其對應的數值。

12.png

最後我們將自定義後的UV傳遞給TexSample,以下為總節點圖:

13.png

最後我們來Game視圖看一下效果。

14.webp.jpg

1.隻有法線無視差的效果

2.擁有了視差

我們看到,類似一個置換的效果,但是邊緣有拉伸鋸齒感(和高度圖有關)。

15.png

3.擁有了DDX&DDY

攝像機拉遠一點之後,就會計算局部差異導數函數,此時鋸齒感消失。

16.png

歸根結底,他還是一個Plane,並沒有改變平麵模型,但是是造成了視覺假象。

來源:Thepoly

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答
  • 杭州室內設計師培訓班有哪些

    杭州室內設計師培訓班有哪些已成為許多設計愛好者進入創意領域的理想起點。在杭州這座設計之都,室內設計行業蓬勃發展,帶動了培訓需求......

  • 石家莊視頻剪輯培訓價格性價比分析

    在視覺內容主導傳播的當下,掌握專業的視頻剪輯技能,已成為眾多求職者和職場人士提升競爭力的關鍵路徑。麵對日益增長的市場需求,石家......

  • 湛江影視後期培訓零基礎入門

    在數字媒體蓬勃發展的當下,影視後期製作是創意產業的核心驅動力。湛江,這座濱海城市,文化底蘊獨特,區位優勢明顯,影視行業正快速崛......

  • 濟南UI設計培訓哪家機構靠譜

    濟南UI設計培訓正成為越來越多人的職業起點。在這個數字時代,界麵設計需求激增,濟南作為一座文化底蘊深厚的城市,為學習者提供了豐......

  • 柳州UI設計培訓班避坑指南

    柳州UI設計培訓避坑指南:開啟你的創意職業之旅

  • 荊州平麵設計培訓班避坑指南

    荊州平麵設計培訓在當今數字化浪潮中扮演著關鍵角色。隨著品牌營銷和視覺傳達需求的激增,專業設計師成為各行各業的熱門人才。然而,選......

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定