當前位置:首頁 >教程首頁 > 遊戲程序 > 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設計行業在北京展......

  • 北京平麵設計培訓機構排名榜

    在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......

  • 北京虛幻引擎課程內容全解析

    在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......

  • 北京平麵設計課程如何選擇適合的

    在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......

  • 上海3D建模短訓班課程內容解析

    在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......

×

同學您好!

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