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

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

MMD聯(lián)動Unity學習筆記 Vol.17 ShaderGraph入門

2019-05-25 14:47 作者:NXL2  | 我要投稿

前言

????這期我們繼續(xù)研究ShaderGraph。ShaderGraph是一種網(wǎng)狀節(jié)點結(jié)構(gòu)圖表,它簡化的方式取代了手動輸入代碼。它同樣可以當成我們寫的CG或HLSL創(chuàng)建的程序來告訴GPU,我們?nèi)绾胃淖冊谄聊簧系牟馁|(zhì)渲染。

????

? ?????現(xiàn)在著色編輯器或者ShaderGraph(隨便你想怎么稱呼)窗口大多是灰色的空白工作空間,我們將用線連接的方式來建立這些著色器變量節(jié)點,節(jié)點的每一個不能包含一個資源或一個操作符,足夠的節(jié)點結(jié)合一定邏輯功能,你可以用它們來制作一個Shader,理所當然因為我們把它放到一張圖表里,所以我們把它稱為ShaderGraph。每一個ShaderGraph服務做為著色器輸出或者Master節(jié)點,決定在一個單獨的節(jié)點上,現(xiàn)在我們使用一個PBRGraph,所以你將在這個圖表類型會一直看到一個標記PBR Master的節(jié)點。

黑板

????在附加顯示的著色編輯器,它自身有一組浮動UI元素,在旁邊這里有一個托盤,它稱作黑板,通常它可以顯示公共暴露屬性,我們將使用它來和Unity編輯器傳遞數(shù)據(jù),它允許著色器在檢查器的內(nèi)外部獲得數(shù)據(jù)。

????在這里有另一個浮動的UI,我們有一個可以展示你的著色器的原形或自定義網(wǎng)格的頂部Master節(jié)點預覽。在你應用修改時,這個圖表框架可以馬上給你實時反饋,使著色器創(chuàng)建過程相當自然。當然這是一個完成的著色器。那么一個還未完成的著色器呢,當你打開一個全新的著色器,比如我們剛剛創(chuàng)建的這個高光著色器,你將得到一個像這樣的有點淺色的東西,再次我們在著色器編輯器有同樣的UI元素,我們有黑板,Master節(jié)點預覽。我們以一個單獨的PBR主節(jié)點開始編輯。這個著色器圖表窗口,它本身與Unity的其它窗口相似,你可以將它嵌入主Unity的窗口布局中,或者只是將它保持浮動窗口的狀態(tài),這都決取于你的想法。

????

最大化窗口

????我將嵌入在Game窗口的上面,有需要時我們在窗口標簽的上面的目錄窗口,在任何時候都可以將它最大化,或者你可以使用Shift+空格鍵來開關當前聚焦窗口最大(小)化,當你想要向后和前跳轉(zhuǎn),編輯著色器圖表的話,看到多層視窗層布局,來看到你的場景中的著色器的最終效果,它用起來是相當方便地。

????現(xiàn)在我們回到著色器編輯器,我們始終從一個標簽為PBR的主節(jié)點開始編輯,它是主節(jié)點或者輸出節(jié)點,我們準備增加更多節(jié)點到我們的圖表里,它們將過濾到這個節(jié)點,成為著色器的最終結(jié)果。

PBR主節(jié)點

????你可以使用鼠標中鍵來導航工作空間(與VEG相同操作),通常的拖動和平移視窗周圍。

平移工作空間

我們滾動鼠標中鍵滾輪可以放大縮小圖表工作空間,如果你在工作區(qū)域中迷失了。

放大縮小

你可以按A鍵把所有的節(jié)點顯示在屏幕里,或者你可以按F鍵來顯示你選中的圖表中的指定部分,所以你可以選擇一個節(jié)點或者多個節(jié)點時,按F鍵后就可以在工作區(qū)域中將它們?nèi)匡@示出來。

顯示所有(選)節(jié)點

當我們用鼠標中鍵平移工作區(qū)域時,黑板和預覽窗口UI元素是不會移動的,但你可以用鼠標拖動它們的標題欄來移動它們。我們可以看到許多節(jié)點都有一個小的插入符號來顯示和隱藏預覽縮略圖,如果節(jié)點有這種符號,我們可以點擊符號開關預覽顯示。

開關預覽顯示符號

????現(xiàn)在我們打開一個最基本的高光著色器圖表,你可以注意到PBR主節(jié)點,在旁邊有一些小圓形圖標,這些圓點稱為Ports(端口),它們代表可以將節(jié)點連接到一起。

端口

每一個端口通常參考一些可以允許輸入或輸出的節(jié)點類型,因為這是主節(jié)點,端口涉及許多最終屬性,我們可以看到最終材質(zhì),對你來說許多名稱將看起來很相似,這里有一些額外的端口,比如位置和Alpha剪輯閾值,但是其它的端口只能從通過材質(zhì)獲得才能工作,比如Albedo,Normal,Emission,Metallic,Smoothness,Occlusion和Alpha,所有這些的關聯(lián)都取決于你在檢查器看到屬性,每當你看到一個使用Standard著色器的材質(zhì)時,我們程序上修改著色器圖表將改變這些屬性,并且影響材質(zhì)在屏幕上如何渲染。

屬性對應關系

????現(xiàn)在我們只創(chuàng)建一個實心顏色的最簡單的著色器,如果你點擊Albedo端口旁邊的顏色條,你可改變著色器基本的顏色,我可以將它改為一個不錯的著色器,如果你取消最大化窗口來看到結(jié)果,你可以注意到?jīng)]有任何改變,材質(zhì)預覽窗口在檢查器里顯示一個灰色的球體,這是因為改變需要保存到著色器圖表,它們才能產(chǎn)生效果。

檢查器內(nèi)的材質(zhì)未變化

????所以讓我們點擊ShaderGraph左上角的Save Asset(保存資源)按鈕,現(xiàn)在藍色將立即顯示在著色器上。

????如果你我們的高光材質(zhì)標記(拖動)到安全帽物體,你可以看到安全帽變?yōu)樗{色,這就是我們創(chuàng)建的最簡單的著色器。

????它現(xiàn)在還不實用,除非你需要將你的游戲?qū)ο笸砍商囟ㄋ{色著色器,如果你觀察到檢查器,你將看到我們完全沒有對安全帽的著色器和材質(zhì)的進行任何調(diào)整,我們不能真正控制材質(zhì)或著色器的顏色或者真正任何屬性,最低限度它在允許用戶決定它使用何種顏色渲染物體才會更加有用。這里我們就需要使用黑板。

讓我們再次最大化著色器編輯窗口,代替手動編程,我們給Albedo屬性輸入顏色,我們相要讓使用者獲取顏色,我們在PBR主節(jié)點外面創(chuàng)建我們第一個節(jié)點,UI允許你用很多不同的方法來創(chuàng)建節(jié)點,第一種方法就是在工作區(qū)域右鍵單擊鼠標,選擇Create Node(創(chuàng)建節(jié)點),你可以看到界面,選擇創(chuàng)建節(jié)點對話框,進而選擇里面的各種節(jié)點。

右擊打開對話框

你也可以在空白工作區(qū)域按空格鍵,也可以打開創(chuàng)建界面,得到相同創(chuàng)建節(jié)點對話框,這些節(jié)點被分配到不同的組里面,你需要花點時間找到它們,我建議你花一些時間來試試,簡單探索一下對話框的內(nèi)容。

搜索節(jié)點

現(xiàn)在給你第一個小挑戰(zhàn),你可以定位一個讓你產(chǎn)生一種特定顏色的節(jié)點,選擇它連接輸出到主節(jié)點。

????我們只需要一個選擇決定好的顏色的節(jié)點,并且你需要會使用,組是如何組織創(chuàng)建節(jié)點對話框的,你可以在Input>Basic>Color里面找到它,輸入節(jié)點允許你給著色器圖表一些輸入信息,這里我們想要一個特定的顏色,如果我們選擇顏色,它可以在工作區(qū)域中放出一個顏色節(jié)點,我們可以用鼠標左鍵任意拖動它,如果你意外創(chuàng)建了一個節(jié)點,或者你不再需要它,你可以右鍵點擊節(jié)點選擇Delete(刪除)。我們可以在頂部的對話框中,使用搜索關鍵字的方式來尋找過濾我們想要的節(jié)點,這里我們假設想要的節(jié)點是顏色,我們就在頂部輸入Color,我們就可以搜索到帶有color關鍵詞的節(jié)點。

????我們將顏色節(jié)點拖到工作區(qū)域中,我們可以點擊顏色帶選擇想要的顏色,我們選擇紅色著色器替代默認的黑色。

我們將Mode從Default(默認)切換到HDR,如果我們不需要設置高動態(tài)范圍,就讓我們把它設置為默認模式?,F(xiàn)在我們有了一些顏色數(shù)據(jù)節(jié)點,我們想要把它發(fā)送主節(jié)點的Albedo屬性里,我們點擊顏色右側(cè)的Out端口圓點,將它連接到主節(jié)點Albedo。

連接端口

連接后我們的顏色節(jié)點就替換掉了Albedo的顏色條,我們改變節(jié)點顏色后,主節(jié)點預覽縮略圖同樣也會產(chǎn)生改變。但如果你再次回到主場景,你不會看到著色器圖表的結(jié)果,你必須要先保存圖表才能看到結(jié)果。

保存后場景變化

現(xiàn)在我們該讓黑板發(fā)揮作用了,我們可以將顏色節(jié)點轉(zhuǎn)換為一個屬性,我們將它公共化并暴露到檢查器里,我們在顏色節(jié)點中右擊,選擇Convert to property(轉(zhuǎn)換為屬性)。

轉(zhuǎn)換為屬性

接著我們的節(jié)點不能直接編輯顏色了,在黑板里出現(xiàn)一個叫做Color的暴露的屬性,你可以打開左側(cè)的小箭頭展開顯示,你可以看到顏色屬性具有所有你在設置顏色節(jié)點時的數(shù)據(jù),我們可以決定是否將屬性暴露到檢查器里,我們可以在Reference得到一個特定的ID,有需要的話可以在這里輸入一些屬性有關的特性特征,讓它可以便于識別和使用,下面還有顏色條用來設置顏色,我們點擊保存資源。

黑板中的屬性

回到主場景中,可以看到顏色屬性已經(jīng)暴露給檢查器,著色器變得更加易用,這樣在檢查器里面我們就可以任意改變著色器的顏色了。

這個相當于用ShaderGraph寫出的“Hello World”。

MMD聯(lián)動Unity學習筆記 Vol.17 ShaderGraph入門的評論 (共 條)

分享到微博請遵守國家法律
泰顺县| 宜州市| 太湖县| 乡城县| 宁晋县| 丰县| 瑞昌市| 庆阳市| 腾冲县| 金寨县| 平和县| 平潭县| 金平| 巨野县| 新津县| 屏东市| 淄博市| 缙云县| 屏东市| 右玉县| 武宁县| 镇赉县| 阿拉善左旗| 嘉鱼县| 松潘县| 定襄县| 兴安县| 鄢陵县| 云南省| 额敏县| 广东省| 齐齐哈尔市| 石城县| 东乡族自治县| 石林| 剑阁县| 观塘区| 牟定县| 凯里市| 台前县| 本溪市|