UNITY渲染基礎

來源:互聯網
上載者:User

標籤:ice   markdown   ant   設定   天空   角色   移動   物理效果   一片黑   

UNITY渲染基礎渲染1.何為渲染?

所有我們能看到的東西都是需要進行渲染的。
比如:天空盒,情境模型,角色模型,特效......
如果沒有渲染,遊戲世界將是一片黑暗。

2.各版本渲染區別

Unity4.X:渲染使用的事AutoDesk的Beast技術;
Unity5.X:渲染使用的事Enlighten引擎;
Unity5.6後:渲染使用的還是Enlighten引擎,但是有了升級;

3.移動端渲染

移動端的模型大多是使用兩張類型的貼圖作為渲染的素材:
一張是漫反射貼圖,一張是法線貼圖。

4.PC主機端渲染

PC主機端(國外的大型單機遊戲)大多是真實的類比現實中的效果來進行渲染的,使用了很多種類型的貼圖(Unity的標準著色器中有支援10種貼圖類型)。
PBR:基於物理規則的渲染方式。
GI:全域光照,用於類比光的互動和反彈等複雜行為的演算法。

核心要點1.標準著色器

Unity5.X 後提供了兩個標準著色器(Shader)。
使用這兩個Shader我們可以實現大部分物體的渲染。

2.Lighting面板

主要對情境中的燈光渲染進行統一的設定。
情境燈光分:即時和烘焙。

3.反射探頭

主要用於實現模型的反射。

4.燈光探頭組

主要用於在烘焙後的情境中模型即時光的效果。

Shader1.Shader的重要性

shader好比是畫家手中的畫筆和顏料。如果畫家沒有了這兩樣東西後,根本就沒辦法畫出好的作品。
在 Unity 中所有看到的一切,都離不開 Shader 的渲染,無論是天空盒,情境,角色模型,特效。。。。。這些我們之所以能在遊戲中看到它們,它們能顯示出一個五彩繽紛的虛擬世界,其中都是 Shader 在起作用。

2.Shader的學習步驟
  • Unity 內建 Shader 的使用;
  • 3D 數學基礎學習;
  • 渲染管線的渲染步驟;
  • 在 Unity 內開發滿足自己需求的 Shader。
天空盒與內建Shader介紹1.色彩空間兩種色彩空間:

Gamma 空間:移動端,頁遊,HoloLens,效能比較低的硬體裝置。
Linear 空間:PC 端,主機端。

Unity 預設的色彩空間(Color Space)設定選項是選擇為 Gamma,但是如
果我們使用 PBR 渲染流程(標準著色器)就必須將色彩空間修改為 Linear。

修改色彩空間
Edit --> Project Settings --> Player --> Other Settings -->Rendering -->Color Space --> Linear
2.天空盒天空盒的作用
  • 用於渲染顯示天空和周圍的環境;
  • 作為情境中的輔助光源;

    製作天空盒
  • 匯入“HDR 環境貼圖”素材圖片;
  • 將 HDR 貼圖的“Texture Shape”修改為 Cube;
  • 建立一個材質球,材質球選擇 Shader 為 Skybox/Cubemap;
  • 將貼圖素材賦予給材質球。

    使用天空盒
  • Lighting 面板上的 Skybox 選項設定要使用的天空盒。
  • 直接將天空盒拖拽到情境中。

    天空盒材質參數調整
  • Exposure:調整貼圖的亮度。
  • Rotation:旋轉貼圖,很多時候貼圖上有太陽,我們可以通過旋轉讓貼圖上的太陽和情境裡面的方向光重疊。

    內建 Shader

    Unity 中內建的 Shader 分可以分為三組,他們具備不同的作用和使用場合:

1.Unity5.x 新 Shader
2.Unity5.x 標準 Shader(用於 PBR 渲染)
3.Unity4.x 舊版 Shader(用於支援舊版項目的渲染)

標準Shader之四大渲染模式1.四大渲染模式1.Opaque(不透明)

作用:用於渲染所有不透明的物體,這類物體在情境中是最多的。60%的比例。

2.Cutout(鏤空)

作用:用於渲染有鏤空的物體,這類物體在情境中並不太多。5%的比例。

3.Fade(隱現)

作用:用於渲染實現物體的漸隱和漸現。這類物體在情境中也不多。5%的比例。

4.Transparent(透明)

作用:用於渲染有透明效果的物體,這類物體在情境中也比較多。30%的比例。

2.標準 Shader 功能布局1.渲染模式地區

當建立完一個材質球,並設定 Shader 為標準著色器後,第一步就需要根據這個材質球要渲染的物體的特性(不透明物體,透明物體)設定不同的渲染模式。

2.主貼圖地區

用於設定 Shader 的主要貼圖,使用這個地區的貼圖和設定項控制模型最終的渲染效果。80%的模型,我們只需要設定這個位置的貼圖就夠用了。

3.次貼圖地區

用於設定 Shader 的次要貼圖,用於給模型增加細節。一般不會用到這個位置的設定項。但是一些需要近距離觀察的模型,設定完上方的主貼圖,再設定下方的次要貼圖,能增加模型的精緻度。

標準Shader之十種貼圖類型1.標準 Shader 誕生1.背景瞭解
  • Unity4.x 階段,Unity 老被拿來和 UrealEngine(虛幻)進行對比,得到的結論就是 Unity 是“渣畫質”,Ureal 是“高大上”。但是相對而言 Unity易於學習,開發速度快,跨平台多,就業崗位多,卻也是 Ureal 比不了的。
  • Unity4.x 階段的畫面渲染使用的是 AutoDesk 的 Beast 技術;Unity5.x階段徹底放棄了 Beast 技術,改為使用和 UrealEngine 一樣的一款第三方渲染引擎 Enlighten 來進行畫面渲染。
  • Unity 為了配合這個新的渲染引擎,推出了“標準 Shader”。
  • 理論上,我們可以使用 Unity5 製作出和 UrealEngine 差不多的畫面效果。

    2.標準 Shader 的優點

    使用一個 Shader 完成大部分情境模型的渲染;無論是人物角色,金屬,塑料,皮革,布料,玻璃,建築......都可以使用一個標準 Shader 來完成渲染。

    3.標準 Shader 貼圖

    標準 Shader 使用的是 PBR 渲染,基於現實物理效果的渲染表現形式。一個模型能不能使用標準 Shader 來進行渲染,是在做這個模型的貼圖的時候決定的。有沒有按照 PBR 貼圖的製作規範和模式來製作,決定了該模型是否可以使用標準 Shader 渲染。

2.常用貼圖介紹1.兩種標準 Shader

Unity5.x 中的標準 Shader 有兩個:
Standard:標準著色器
Standard(Specular setup):標準著色器(鏡面)

2.Albedo 貼圖

Albedo:反照率[貼圖];用於體現模型的紋理,顏色。

反照率貼圖本身是一張顏色與紋理的貼圖。

該選項有貼圖屬性,也有顏色屬性。

兩個屬性可以單獨使用,也可以組合使用;

當顏色屬性為純白色時,則不影響貼圖的效果;

當顏色屬性為其他顏色時,則疊加貼圖效果。

3.Metallic 貼圖

金屬度[貼圖];用於體現模型的金屬高光反射;

金屬度貼圖本身是一張灰白圖,越白的地方,金屬度越強烈,越黑的地方金屬度越低。

Smoothness:平滑度

介於 0 和 1 之間的一個值,越小,平滑度越低,越大,平滑度越高。

4.Normal Map 貼圖

Normal Map:法線貼圖;用於增加模型的細節;

法線貼圖本身是一張藍色的凹凸圖。

5.Occlusion 貼圖

Occlusion:AO 貼圖;

AO 貼圖本身是一張灰白圖。

主要用於改善陰影,給情境(模型)更多的深度,有助於更好的表現模型的細節。

6.Specular

Specular:鏡面[貼圖],類似於“Metallic 金屬度”貼圖。

PBR 貼圖的製作方式不同,最終關於“金屬部分”的表現,出現了兩種類型的貼圖,Metallic 和 Specular。

7.Detail Albedo x2

Detail Albedo x2:細節反照率[貼圖];

作用是對主 Albedo 貼圖的一個細節深入表現;

8.Normal Map x2

Normal Map x2:細節法線[貼圖];

作用是對主 Normal Map 貼圖的一個細節深入表現;

9.Detail Mask

Detail Mask:細節遮罩[貼圖];

這個貼圖是配合“次貼圖地區”中的 Detail Albedo,Normal Map 兩張貼圖配合使用的,次貼圖地區中的這兩張很多是平鋪的貼圖,效果會作用於模型的全部,我們使用 Detail Mask 將一些不需要被“次貼圖”影響的部分獨立出來。

10.Emission貼圖

Emission:自發光[貼圖],讓模型自發光;

Unity裡面能夠作為光源存在的除了燈光組件和天空盒,標準Shader裡面的Emission貼圖也是可以作為一種光源的。

11.Height Map貼圖

Height Map:視差[貼圖],比Normal Map更有立體感的一種貼圖方式;

主要用於地面,建築等效果的體現。

PBR效果
  • 3dMax/Maya製作模型白模
  • Substance Painter製作PBR貼圖
  • Unity5.X進行合成使用
PBR質感表現之金屬材質1.金屬度的重要性

在 Unity5.x 中,金屬度是相對而言是最關鍵的一個可調整參數。

我們在 Unity 中類比現實生活中的東西,很多時候都需要控制它們的金屬度。

2.代碼修改 Shader 參數1.Shader 原始碼下載

Unity 每次版本更新的時候,不單單會更新 Unity,配套的資源也是會一塊更新的,比如版本配套的 Shader 原始碼。[見圖]

2.相關 API

擷取 Shader 中參數的值:

material.GetFloat(" 參數名 "); //擷取小數類型值material.GetColor(“參數名”); //擷取顏色類型值;  material.GetTexture(“參數名”); //擷取貼圖類型值;

修改 Shadder 中參數的值:

material.SetFloat(“參數名”,值); //設定小數類型值;  material.SetColor(“參數名”,顏色值); //設定顏色類型值; material.SetTexture(“參數名”,貼圖); //設定貼圖類型值;  
2.金屬度總結1.兩個參數

Metallic 有兩個參數,貼圖和滑塊條,滑塊條控制的參數是 0~1。

金屬度貼圖是一張黑白圖,就是用這些黑到白的顏色,儲存 0~1 相關的資訊值。

滑塊條是調整的整體,調整的時候,整個模型都是統一的一種效果;

貼圖則可以分地區控制金屬度的高與低,使得模型金屬效果更有層次。

PBR 質感表現之玻璃質感兩個參數

Albedo 有兩個參數,貼圖和顏色面板,顏色面板裡面的 Alpha 通道是 0~255。

Albedo 貼圖是一張純色紋理圖,貼圖是可以存 Alpha 通道的。

顏色面板裡面的 Alpha 通道,調整的時候,整個模型都是統一的一種效果;

貼圖則可以分地區控制透明度的高與低,使得模型透明效果更有層次。

畫面增強之後期螢幕渲染特效1.後期螢幕渲染特效1.概念介紹

後期螢幕渲染特效,也叫做攝像機特效。

後期螢幕渲染特效是我們遊戲畫面後期處理時使用的特效,是作用於遊戲情境中的攝像機遊戲物體上的。

比如現實生活中攝影師拍照:

①人物角色的化妝就好比我們在 Unity 中用 Shader 材質球美化模型;

②拍照時各種輔助的燈光好比 Unity 中的燈光系統,營造氛圍;

③拍照完畢後,後期還需要用 PS 製作修改一些地方,這一步的操作,在我們的遊戲開發過程中對應的就是“後期螢幕渲染特效”。

2.ImageEffects1.ImageEffects 介紹

ImageEffects 是 Unity 中附帶的資源套件之一,資源套件存放了大量的攝像機特效,攝像機特效相關的指令碼只能掛載到攝像機上進行使用。

資源套件匯入步驟如下:

Project 面板右鍵-->Import Package-->Effects

2.注意事項

①攝像機特效資源套件匯入後,Component 最後一項會出現“Image Effects”選項,通過這個菜單,可以給選中的攝像機遊戲物體添加相應的特效。

②這個攝像機特效資源套件中所有的特效,分成九大類[見圖],30 多個特效指令碼。

③攝像機特效是允許效果疊加的,也就是說我們可以在攝像機上合理的組合使用多個後期螢幕渲染特效。

④另外 Unity 的資源商店裡也有大量的第三方後期螢幕渲染特效資源。

3.情境美化案例1.Antialiasing[消除鋸齒特效]

位置:Image Effects --> Other --> Antialiasing

電腦顯卡渲染出來的 3D 模型物體,物體的邊緣會出現鋸齒,影響視覺體驗。可以使用“消除鋸齒特效”平衡這些鋸齒。

Technique:消除鋸齒演算法,這裡有七種類型的演算法可供選擇使用。

2.Bloom[泛光特效]

位置:Image Effects --> Bloom and Glow --> Bloom

泛光是一種增強版輝光,光暈效果。

Mode:模式,基礎模式和複雜模式。

Threshold:閾值,控制泛光的範圍。

3.Screen Space Ambient Obscurance[螢幕空間環境 AO 效果]

位置:Image Effects --> Rendering --> Screen Space AO

可以即時類比情境中的環境遮擋效果。

4.Noise And Scratches[噪音和劃痕特效]

位置:Image Effects --> Noise --> Noise and Scratches

給情境效果添加噪點和劃痕,可以用於類比老電影的畫面效果。

Unity5.6.0 新版渲染功能介紹1.標準 Shader 更新1.Emission 參數

5.5.1 版:Emission 貼圖的的屬性功能是直接展現在面板上的;

5.6.0 版:Emission 貼圖需要勾選“複選框”才可以展現相關屬性。

2.Advanced Options 地區

5.6.0 比 5.5.1 新增了一個 Advanced Options(進階選項)地區。

2.Lighting 面板更新1.版本更新對比

環境光線地區:新版和舊版是一致的,未發生改變。

即時渲染地區:舊版有渲染解析度和 CPU 使用量的參數,新版本去掉了這兩個參數。

烘焙渲染地區:新版本將烘焙(光照貼圖方式)的的參數單獨提取成了一個新的地區,Lightmapping Settings。整體參數和舊版幾乎一致。

3.Light Explorer 新功能1.Light Explorer [燈光管理器]

給情境中的燈光,反射探頭,燈光探頭組,靜態自發光物體提供了一個統一的控制和管理的面板。


本作品由繁星隕辰採用知識共用署名-非商業性使用 4.0 國際許可協議進行許可。

UNITY渲染基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.