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。

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



獲取一個View Dir(視口方向),設置到切線空間。
這裏補充一下,圖表封裝的還是非常好的,View Dir在代碼裏都是要手擼的。View Dir的原理圖長這樣。

View Dir原理圖

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

其基本原理即為獲取到Height貼圖的數據(0-1),進行V方向偏移,記錄獲取到的數據進行步進采樣。
具體算法請參見網易大佬的知乎兩篇譯文,裏麵有詳細的計算方式和實現原理。
創建以下內容,將獲取到的高度UV給到視差遮擋映射。並且創建一個Range,最大值給1,暴露到材質麵板。

三、”上才藝x2“
創建DDX與DDY這兩個函數

DDX&DDY節點輸出相對於屏幕空間xy坐標的指定輸入值的偏導數。
這又是什麼玩意?
簡單的說就是三角麵上一個像素的位置上對屏幕坐標x和y方向的導數,也就是該點位置的表麵相對於屏幕平麵的傾斜程度的度量。
具體解釋鏈接:http://www.aclockworkberry.com/shader-derivative-functions/
鏈接中解釋的是GLSL中的用法,兩者其實是一樣的,這裏的dFdX即為DDX,同理dFdy即為DDY。
看到下圖我們能理解,DDX與DDY的計算方式了,GPU光柵的時候,會將他們變成2×2像素的塊。通過獲取塊中像素值之間的差異來計算出導數,即為右邊減去左邊,底下減去上麵。所以,導數是逐像素計算的。

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

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

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

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

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

1.隻有法線無視差的效果
2.擁有了視差
我們看到,類似一個置換的效果,但是邊緣有拉伸鋸齒感(和高度圖有關)。

3.擁有了DDX&DDY
攝像機拉遠一點之後,就會計算局部差異導數函數,此時鋸齒感消失。

歸根結底,他還是一個Plane,並沒有改變平麵模型,但是是造成了視覺假象。
來源:Thepoly
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答在廣州這座繁華的都市中,數字創意產業正蓬勃發展,廣州視頻剪輯培訓成為許多影視愛好者的理想起點。隨著短視頻平台和影視製作需求的激......
在北京這樣一座充滿創意活力的都市,UI設計培訓正成為無數年輕人追逐職業夢想的跳板。隨著數字經濟的蓬勃發展,UI設計行業在北京展......
在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......
在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......
在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......
在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......
同學您好!