最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MMD聯(lián)動(dòng)Unity學(xué)習(xí)日志 Vol.7 Shader Graph基礎(chǔ)

2019-04-05 22:58 作者:NXL2  | 我要投稿

前言

????上一期的內(nèi)容是天空盒,它的材質(zhì)球是由天空盒Shader(著色器)通過(guò)GPU繪制而成的。這期我們共同學(xué)習(xí)Shader的基礎(chǔ)和它的基本應(yīng)用。

Shader和Material的基本概念認(rèn)知

Up在百度上引用一段,闡述Shader和Material(材質(zhì))的基本關(guān)系:

“Shader(著色器)實(shí)際上就是一小段程序,它負(fù)責(zé)將輸入的Mesh(網(wǎng)格)以指定的方式和輸入的貼圖或者顏色等組合作用,然后輸出。繪圖單元可以依據(jù)這個(gè)輸出來(lái)將圖像繪制到屏幕上。輸入的貼圖或者顏色等,加上對(duì)應(yīng)的Shader,以及對(duì)Shader的特定的參數(shù)設(shè)置,將這些內(nèi)容(Shader及輸入?yún)?shù))打包存儲(chǔ)在一起,得到的就是一個(gè)Material(材質(zhì))。之后,我們便可以將材質(zhì)賦予合適的renderer(渲染器)來(lái)進(jìn)行渲染(輸出)了。

所以說(shuō)Shader并沒(méi)有什么特別神奇的,它只是一段規(guī)定好輸入(顏色,貼圖等)和輸出(渲染器能夠讀懂的點(diǎn)和顏色的對(duì)應(yīng)關(guān)系)的程序。而Shader開(kāi)發(fā)者要做的就是根據(jù)輸入,進(jìn)行計(jì)算變換,產(chǎn)生輸出而已?!?/span>

Unity支持Shader的自定義編程,它使用的是標(biāo)準(zhǔn)的cg語(yǔ)言。不過(guò),我們的原則是不寫(xiě)代碼。這時(shí)就要用到另一種方法來(lái)編輯Shader,那就是Shader Graph。

ShaderGraph介紹

????Shader Graph著色器視圖,可以讓你輕松創(chuàng)建各種著色器效果:流動(dòng)的巖漿,美麗的湖泊,閃動(dòng)的LED燈,以及你能想象到的更多的效果!

????Shader Graph原生支持 Scriptable Render Pipeline (簡(jiǎn)稱:SRP),擁有以下功能:

·?高清晰渲染管線 HD Render Pipeline

·?輕量級(jí)渲染管線 Lightweight Render Pipeline

·?通過(guò)擴(kuò)展將任何你自己編寫(xiě)的自定義SRP著色器進(jìn)行導(dǎo)出。

什么是ShaderGraph著色器視圖 ?

????你可以通過(guò)可視化的方式來(lái)創(chuàng)建Shader Graph以生成所需的著色器,無(wú)需再手動(dòng)編寫(xiě)著色器代碼,只需通過(guò)連接各種節(jié)點(diǎn)創(chuàng)建節(jié)點(diǎn)網(wǎng)絡(luò)即可。以下是一些你可以做的事情:

· 通過(guò)程序化的方式改變物體表面形狀

·?對(duì)UV進(jìn)行變形和動(dòng)畫(huà)

·?使用常用的圖形編輯操作對(duì)對(duì)象進(jìn)行修改操作

·?根據(jù)物體所在的世界坐標(biāo),法線以及和攝像機(jī)之間的距離等信息來(lái)改變物體表面

·?將你認(rèn)為重要的屬性,暴露在材質(zhì)編輯面板上方便編輯操作

·?通過(guò)生成subgraph(子視圖)在不同Shader Graph之間分享節(jié)點(diǎn)網(wǎng)絡(luò)

·?使用C#和HLSL創(chuàng)建自定義的Shader Graph

·?視圖框架可以提供即時(shí)的Shader Graph修改反饋,這樣即使是新用戶也能創(chuàng)建自己的著色器了。

怎么安裝ShaderGraph?

????安裝好的Unity2018是沒(méi)有ShaderGraph的工具的,如果需要使用這個(gè)工具,需要單獨(dú)安裝插件。?

????打開(kāi)Window > Package Manager,在All中選擇ShaderGraph進(jìn)行安裝。

2018.1.x~2018.2.x版本

????點(diǎn)擊All面板,找到SRP Core、Shader Graph點(diǎn)擊右上角Install安裝

2018.1.x~2018.2.x版本

2018.3.x~2019.1b

????剛打開(kāi)Packages的列表中沒(méi)有ShaderGraph選項(xiàng),此時(shí)點(diǎn)擊Advanced,出現(xiàn)ShaderGraph等安裝選項(xiàng)。

2018.3.x~2019.1b

找不到Shader Graph

????打開(kāi)項(xiàng)目的文件夾,在項(xiàng)目目錄中,找到Packages目錄中的manifest.json文件,打開(kāi)

修改mainfest.json。

Packages文件夾里面含有mainfest.json文件

????用寫(xiě)字板或其它文本編輯器打開(kāi)mainfest.json,將"com.unity.shadergraph": "4.1.0-preview",插入文本段落中。

將選取的文字插入文本中

????返回Unity工程會(huì)發(fā)現(xiàn)Unity正在加載工具,加載完之后ShaderGraph插件就已經(jīng)安裝好了。

ShaderGraph安裝完成

使用PackageManager?

????在Unity中,通過(guò)點(diǎn)擊Window->PackageManager來(lái)打開(kāi)PackageManager窗口。在窗口中選擇ShaderGraph 并且在右上角選擇加載。?

如何看是否加載成功

在項(xiàng)目中點(diǎn)擊創(chuàng)建菜單出現(xiàn)紅色框中的內(nèi)容就證明安裝成功

????在項(xiàng)目欄中,點(diǎn)擊右鍵Create出現(xiàn)有PBR Graph,Sub Graph和Unlit Graph那么就已經(jīng)安裝好了。(ShaderGraph舊版的使用方法與現(xiàn)在有所差異,在右鍵Create后找到ShaderGraph也能證明ShaderGraph安裝完成)

如何創(chuàng)建Shader Graph?

????在Unity中,Shader Graph看起來(lái)就是一個(gè)普通的著色器。你可以通過(guò)Create >Shader>選擇PBR Graph(基于物理渲染),Sub Graph和Unlit Graph其中的一個(gè)。這會(huì)在Project窗口中生成一個(gè)Shader Graph資源。雙擊這個(gè)資源或者點(diǎn)擊Open按鈕來(lái)打開(kāi)Shader Graph編輯界面。

可以通過(guò)編輯默認(rèn)的數(shù)值快速改變物體的表面屬性。

????打開(kāi)Shader Graph的時(shí)候,看到的是一個(gè)Master Node??梢酝ㄟ^(guò)把其他節(jié)點(diǎn)連接到Master Node來(lái)創(chuàng)造你先要的效果。

????點(diǎn)擊齒輪圖標(biāo)可以展開(kāi)著色器的其它基本屬性:

Workflow(工作流)可以選擇Specular(高光)和Metallic(金屬)。

Surface(表面)可以選擇Opaque(不透明)和Transparent(透明)。

Blend(混合)可以選擇 Alpha(阿爾法),Premultiply(預(yù)乘),Additive(附加),Multiply(乘法)。

Two Sided(兩邊)勾選框。

右下角是著色器最終顯示效果。

右鍵點(diǎn)擊并選擇Create Node即可生成新的節(jié)點(diǎn)。

????每一個(gè)內(nèi)置的Shader Graph節(jié)點(diǎn)都有幾個(gè)輸入,為這些輸入添加了默認(rèn)的值,也可以隨意改變它們。

往視圖網(wǎng)絡(luò)中添加一個(gè)紋理或者其他資源非常簡(jiǎn)單,只需創(chuàng)建一個(gè)對(duì)應(yīng)資源類型的節(jié)點(diǎn)并連接上即可。

????通過(guò)Shader Graph生成的著色器和Unity中的其他著色器沒(méi)有任何區(qū)別??梢杂益I點(diǎn)擊著色器生成一個(gè)新的材質(zhì),并將其應(yīng)用到項(xiàng)目中任意對(duì)象上??梢杂猛粋€(gè)著色器生成多個(gè)材質(zhì)。

將著色器中的參數(shù)暴露出去,使用材質(zhì)調(diào)整效果

????可以在材質(zhì)上暴露著色器中的參數(shù),這樣就可以通過(guò)這些參數(shù),調(diào)整基于同一個(gè)著色器的不同材質(zhì)的各種屬性。只要簡(jiǎn)單的操作就可以暴露著色器的參數(shù),在Shader Graph中點(diǎn)擊任何變量節(jié)點(diǎn),然后選擇Convert to Property,這些屬性就會(huì)顯示在所有使用了此著色器的材質(zhì)的檢視窗口中。

也可以點(diǎn)擊在Shader Graphs窗口的右上角的加號(hào)增加暴露參數(shù)。

????暴露的參數(shù)有Vector1,Vector2,Vector3,Vector4,Color(顏色),Texture2D(2D紋理),Texture2D Array(2D紋理數(shù)組),Texture3D,Cubemap(方形貼圖),Boolean(布爾值)。

????要查看對(duì)Shader Graph所做修改的產(chǎn)生的效果,點(diǎn)擊窗口左上角的Save Asset按鈕保存修改即可。

創(chuàng)建渲染管線

????ShaderGraph是基于可編程渲染管線,我們要使用ShaderGraph也就需要設(shè)置SRP。?(注意:如果之前不導(dǎo)入渲染管線,ShaderGraph的材質(zhì)球不會(huì)正常顯示,呈現(xiàn)為洋紅色,主節(jié)點(diǎn)會(huì)出現(xiàn)嘆號(hào),并提示當(dāng)前渲染管線與主節(jié)點(diǎn)不匹配。如下圖)

????打開(kāi)Window >package manager,在All中選擇Lightweight RP進(jìn)行安裝。(如果沒(méi)有找到渲染管線插件,可以嘗試用之前的方法導(dǎo)入。在項(xiàng)目目錄里找到Packages目錄中的manifest.json文件,將"com.unity.render-pipelines.lightweight": "4.1.0-preview",插入中間段落中。)

????在SRP中,unity幫我們封裝了幾種渲染管線:?

- 我們可以創(chuàng)建LWRP(輕量級(jí)渲染管線),這種渲染管線適合移動(dòng)設(shè)備。?

- HDRP(高清晰渲染管線),適用于PC等性能較高的設(shè)備?

- Custom(自定義渲染管線)?

????這里我們暫時(shí)不做過(guò)多研究。

首先創(chuàng)建Lightweight Render Pipeline Asset。

????導(dǎo)入渲染管線插件后,unity就可以使用LWRP。?

????創(chuàng)建Renderpipeline可通過(guò)在文件窗口中Create > Rendering >Lightweight Pipeline Asset創(chuàng)建。 創(chuàng)建之后就可以進(jìn)行渲染管線的設(shè)置了。

設(shè)置SRP

????設(shè)置方法:Edit > Project Setting > Graphics。

打開(kāi)圖像設(shè)置窗口,將之前設(shè)置的LWRP拖到SRP setting窗口中完成設(shè)置。

????如果沒(méi)有設(shè)置的話,所有的Shadergraph都是不能使用的。

設(shè)置完成后,顯示效果。


MMD聯(lián)動(dòng)Unity學(xué)習(xí)日志 Vol.7 Shader Graph基礎(chǔ)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
仲巴县| 德钦县| 台东市| 绥阳县| 广南县| 宜良县| 佛山市| 青龙| 阿坝县| 楚雄市| 普定县| 罗山县| 平潭县| 水富县| 宁阳县| 赤峰市| 磐安县| 湖口县| 光泽县| 长丰县| 湖州市| 黑龙江省| 杭锦旗| 曲靖市| 丰原市| 莒南县| 无极县| 竹山县| 云林县| 阜平县| 嘉祥县| 新闻| 上高县| 大石桥市| 北流市| 体育| 禄丰县| 宜兰县| 公主岭市| 吴江市| 汾西县|