中級篇視頻授課同步教學(xué)貼圖材質(zhì)與shader_第1頁
中級篇視頻授課同步教學(xué)貼圖材質(zhì)與shader_第2頁
中級篇視頻授課同步教學(xué)貼圖材質(zhì)與shader_第3頁
中級篇視頻授課同步教學(xué)貼圖材質(zhì)與shader_第4頁
中級篇視頻授課同步教學(xué)貼圖材質(zhì)與shader_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、貼圖材質(zhì)與Shader 講師:劉國柱 2目錄貼圖 材質(zhì)概述 材質(zhì) 著色器Shader材質(zhì)概述 物體呈現(xiàn)在我們面前除了形體外,還包括了”固有顏色”與”質(zhì)地” (質(zhì)感與光學(xué)性質(zhì))固有顏色讓物體的表面看起來是什么顏色,而質(zhì)感決定了該物質(zhì)是使用什么材質(zhì)制成的。在三維建模軟件中,一般使用三維建模工具創(chuàng)作物質(zhì)的形體,使用貼圖表現(xiàn)物體的固有顏色,使用材質(zhì)表現(xiàn)物質(zhì)的”質(zhì)感”。在Unity3D 中,所有的材質(zhì)都是由著色語言編寫出來的。由著色器語言編寫的程序成為著色器。每個物質(zhì)除了形體,都具備“固有顏色”、“質(zhì)感”、“光學(xué)性質(zhì)”,這三種屬性決定了該物質(zhì)在視覺上的自身物理外觀,以及在光線下呈現(xiàn)出的各種質(zhì)感。 4目錄

2、貼圖 材質(zhì)概述 材質(zhì) 著色器Shader貼圖: 二維貼圖 貼圖一般可以分為如下幾種: 1: 二維貼圖 2: 立方體貼圖 3: 視頻貼圖 4: 渲染貼圖 5: 程序貼圖 貼圖: 二維貼圖 隨著實時渲染技術(shù)的逐漸成熟,使得貼圖越來越傾向于表現(xiàn)物體的固有顏色,而高光和光學(xué)特性的表現(xiàn)則分配給著色語言來完成。 二維貼圖就是一張普通的貼圖。 一般一個游戲模型的頂點數(shù)和多邊形都不能太多,所以很多的細(xì)節(jié)都需要靠貼圖來表現(xiàn)。 貼圖: 二維貼圖 貼圖表現(xiàn)細(xì)節(jié): 貼圖: 二維貼圖 Unity3D 支持的圖片格式: PSD、TIFF、JPG、TGA、PNG、BMP、IFF、PICT. 我們一般使用PSD、TIFF、T

3、GA 等無壓縮或者無損壓縮的高質(zhì)量高分辨率圖片文件格式來制作貼圖。 貼圖尺寸。 制作游戲模型時,建議貼圖的尺寸為2的n次冪,比如 2、4、8、16、32、64、128、256、512、1024、2048 pixels 等。貼圖屬性: 1 Texture 普通貼圖 2 Normal map 法線貼圖 3 GUI GUI貼圖 4 Cursor 光標(biāo)貼圖 5 Reflection 立方體貼圖,一般制作反射效果。 6 Cookie 用于燈光的遮罩貼圖。 7 Lightmap 光照貼圖 8 Advanced 高級設(shè)置。 9 Spritezz貼圖: 二維貼圖 貼圖屬性: 1 Alpha Frome Gra

4、yscale 根據(jù)貼圖的灰度級別生成Alpha 通道。 2 Wrap Mode 設(shè)置紋理平鋪方式。 (Repeat 重復(fù)、Clamp 采用截斷方式) 3 Filter Mode 貼圖拉伸時的差值過濾方式 4 Aniso Level 各向異性過濾級別,用于提高 貼圖的視覺質(zhì)量。zz貼圖: 二維貼圖 法線貼圖 根據(jù)基本貼圖的灰度級別把這張貼圖轉(zhuǎn)化為法線貼圖。法線貼圖是現(xiàn)代游戲,尤其是次時代游戲中運用最廣泛的貼圖之一,它可以通過改變模型表面的法線方向來使得低多邊形呈現(xiàn)更多的細(xì)節(jié)效果。 法線貼圖比普通貼圖多了兩個屬性: 1 Bumpiness 用于控制法線貼圖的 強(qiáng)度。 2 Filtering 用于設(shè)

5、置法線貼圖的 過濾方式。zz貼圖: 二維貼圖 GUI 貼圖類型 (GUI) 如果導(dǎo)入的貼圖用于GUI,那么建議 把貼圖定義為GUI 貼圖。 光標(biāo)類型 (Cursor) 此種類型的貼圖用于例如鼠標(biāo) 光標(biāo)效果。貼圖: 二維貼圖 反射貼圖 (Reflection) 類型。 設(shè)置此貼圖會被轉(zhuǎn)換為立方體貼圖, (根據(jù)Mapping 屬性) 使用它可以實現(xiàn)物體的反射貼圖效 果。 Cookie 類型。 該類型是用于把貼圖轉(zhuǎn)換為用于燈 光Cookie 效果的貼圖。貼圖: 二維貼圖 光照貼圖類型(Lightmap) 如果是從第三方建模軟件中烘焙出 來的光照貼圖導(dǎo)入到Unity3D 中, 最好把該貼圖定義為Lig

6、htmap 類型。貼圖: 二維貼圖 高級類型設(shè)置1 Non Power of 2 如果貼圖的尺寸不是2的n次冪,需要給它 一個縮放的方式。2 Bypass sRGB Sampling 使用貼圖的原有色彩,而不進(jìn)行Gamma 校正。如果是GUI貼圖建議開啟這個功能。3 Generate Mip Maps 生成 Mipmap 貼圖,游戲場景中的貼圖 建議打開,但對于GUI貼圖建議關(guān)閉。4 Border Mip Maps 防止在較低級別的Mipmap 貼圖時顏色在 貼圖邊緣溢出。非常適合光照貼圖的使用。 貼圖: 二維貼圖 高級類型設(shè)置 5 Mip Map Filtering 過濾 Mipmap 貼圖

7、以優(yōu)化圖像質(zhì)量的方式。 如果貼圖在遠(yuǎn)距離變得模糊,可以試試這選項。備注: Mipmap 貼圖是一個包含了相同內(nèi)容不同尺寸的圖像列表,它是一種優(yōu)化實時渲染的貼圖技術(shù)。 當(dāng)攝像機(jī)較近時使用高尺寸貼圖,當(dāng)攝像機(jī)較遠(yuǎn)時使用尺寸較小的貼圖。 建議場景中所有的模型貼圖都要包含Mipmap,但是用于GUI的貼圖要取消Mipmap貼圖,這樣才能保證GUI貼圖的清晰度。貼圖: 二維貼圖 二維貼圖實驗?!菊n堂實驗】 1:打開 TextureAndMaterial 中的 Textures 場景。 2:對于模型coconutShy 通過Asset 的 Select Dependence 查找依賴項,把對應(yīng)的貼圖與材質(zhì)

8、找出來。 3:把材質(zhì)中的貼圖去掉,查看什么是“白?!毙Ч?4: 改變材質(zhì)中的“高光”為“漫反射”,查看變化。 5:恢復(fù)高光選項,添加太陽光,查看高光下的模型不是很自然。 6:找出對應(yīng)的貼圖,在屬性欄中把“Alpha from Grayscale” 選項勾選上,并點擊“應(yīng)用”按鈕進(jìn)行確定。此時高光效果就自然了。zz貼圖:立方體貼圖 立方體貼圖 Cubemap 立方體貼圖是由六張二維無縫貼圖構(gòu)成的貼圖類型。 它與天空盒的原理相似,但它主要用來模擬物體對環(huán)境的反射效果。 注意:此時的反射是根據(jù)這個立方體貼圖的內(nèi)容顯示反射的內(nèi)容,而不是虛擬環(huán)境中周圍的實時場景。 【課堂實驗】制作立方體貼圖。 1 建

9、立一個Cubemap 貼圖。(把天空盒子的六個貼圖附上) 2 建立一個材質(zhì),且把此材質(zhì)附加到一個球體上。(球體在層級視圖中事先添加) 3 點擊層級視圖中的這個球體的所在屬性,把Shader 中的默認(rèn)的Diffuse 改為 Reflective/Diffuse,在其Reflective cubemap 中添加開始建立的那個Cubmap 貼圖。 4 把 Main Color 改為灰色。 (球體的反射效果出來了) 貼圖:視頻貼圖 在Unity3D 中,兼容的視頻文件作為一種動態(tài)的貼圖貼附在物體上,從而實現(xiàn)在場景中播放視頻的效果。【課堂演示】 演示制作視頻貼圖 1:在 Texture and Mate

10、rial 中。 2:電腦安裝 QuickTime 軟件。 3:在Scene場景中添加Plane. 4: 把Plane 正對攝像機(jī),且Scale 中的X為 1.6 5:把視頻拖到Plane 中,Plane 會自動添加一個材質(zhì)。 6:把視頻素材賦給它的Texture 參數(shù)。 7:給Plane 添加AudioSource 且賦值視頻中的音頻源。 8:編寫視頻控制播放腳本,且賦值給Plane. 貼圖:視頻貼圖 視頻控制腳本: public MovieTexture Mov_moviTexuter; /視頻貼圖 void Start () renderer.material.mainTexture =

11、Mov_moviTexuter; gameObject.audio.clip = Mov_moviTexuter.audioClip; void Update () if(Input.GetKey(KeyCode.A) gameObject.audio.Play(); /播放音頻 Mov_moviTexuter.Play(); /播放視頻 貼圖:渲染貼圖 渲染貼圖的用法與二維貼圖用法相似,只是貼圖是動態(tài)的,其內(nèi)容是由場景中的攝像機(jī)獲取。可以制作實時監(jiān)控錄像、導(dǎo)航地圖等。 【課堂演示】 在Render Texture 中。 制作步驟: 1 創(chuàng)建一個RenderTexture. 2 創(chuàng)建一個攝像機(jī)

12、,且把 這個渲染 貼圖賦值給攝像機(jī)的Target Texture 3 創(chuàng)建一個Plane,創(chuàng)建材質(zhì)(自發(fā)光) 材質(zhì)),添加這個RenderTexture. 貼圖:程序貼圖 使用該貼圖技術(shù)可以實現(xiàn)模型貼圖的紋理新舊變化、紋理變化、臟亂程度等。 【課堂演示】 在Substance 中。 【課堂作業(yè)】 開發(fā)一個場景,在場景中同時應(yīng)用與出現(xiàn): 1: 立方體貼圖(反射貼圖)。 2: 視頻貼圖。 3: 渲染貼圖。 22目錄貼圖 材質(zhì)概述 材質(zhì) 著色器Shader材質(zhì) 貼圖用于決定物體的固有顏色,材質(zhì)主要用于表現(xiàn)物體的質(zhì)地。 材質(zhì)的構(gòu)成要素: 固有顏色、質(zhì)感、光學(xué)性質(zhì)。 1: 創(chuàng)建材質(zhì)。 2: 內(nèi)置材質(zhì)類型

13、。 2.1 標(biāo)準(zhǔn)材質(zhì)類型 頂點著色材質(zhì) (Lertex Lit) 漫反射材質(zhì) (Diffuse) 高光材質(zhì) (Specular) 凹凸漫反射 (Bumped Diffuse) 凹凸高光 (Bumped Specular) 視差漫反射 (Parallax Diffuse ) 視差凹凸高光 (Parallax Specular) 貼花 (Decal) 漫反射細(xì)節(jié) (diffuse Detail) 材質(zhì)內(nèi)置材質(zhì)類型。 2.2 透明材質(zhì)類型 透明頂點著色 (TransparentVertex-Lit) 透明漫反射 (Transparent Diffuse) 透明高光 透明法線貼圖 透明法線高光 透明視

14、差 透明視差高光備注:透明效果是由一張帶有Alpha 透明通道的圖片決定,黑色表示全透明,白色表示不透明,灰色部分表示半透明。 帶有Alpha 通道的貼圖文件格式有 PSD、TIFF、PNG 和32位的TGA 等等。材質(zhì) 內(nèi)置材質(zhì)類型。 2.3 自發(fā)光材質(zhì)類型 (子類型與上基本相同) 自發(fā)光材質(zhì)類型通過使用帶有Alpha 通道的貼圖來控制材質(zhì)的發(fā)光部分。白色表示發(fā)光強(qiáng)度最大、黑色表示不發(fā)光、灰色介于之間。 2.4 反射材質(zhì) 反射貼圖使用立方體貼圖(Cubemap)來模擬反射效果。 材質(zhì)【課堂演示1】 在 Material 中。 【課堂演示2】 建立一個場景制作不同類型的材質(zhì),表現(xiàn)一個金屬立方體

15、, 進(jìn)行不同材質(zhì)的比較。 1 漫反射(Diffuse) 2 高光(Specular) 3 凹凸漫反射(Bumped Diffuse) 使用到法線貼圖 4 凹凸高光 (Bumped Specular) 透明系列: 5 透明漫反射 (Transparent Diffuse ) 自發(fā)光系列 6 自發(fā)光凹凸漫反射(Self-Illuminated Bumped Diffuse) 7 反射材質(zhì) (Reflection) 27目錄貼圖 材質(zhì)概述 材質(zhì) 著色器Shader著色器Shader 著色器的作用 Unity3D 內(nèi)置的材質(zhì)都是由著色語言(Shader language)編寫實現(xiàn)的。Unity3D 提

16、供了已經(jīng)封裝著色器功能的API來方便用戶編寫著色器,同時它也支持Direct3D 的 HLSL 著色語言和OpenGL 的GLSL 著色語言以及CG (NVIDIA公司)語言。在Unity3d里,所有的圖形繪制都必須通過Shader,即著色器。一般的使用過程中,我們用到的都是unity自帶的Shader,即build-in shader。學(xué)習(xí)Shader后,自己寫的Shader能做出很多你想要的特殊效果,增強(qiáng)游戲的畫面表現(xiàn)。例如 水的倒影。 LOGO的光影閃過等等效果等目前圖形渲染的都是按照一定的運行流程來進(jìn)行的,這種運行流程稱為“渲染管線”。 著色器Shader Shader的分類 Shad

17、er按管線分類一般分為固定渲染管線與可編程渲染管線 1 固定渲染管線 這是標(biāo)準(zhǔn)的幾何&光照(Transforming&Lighting)管線,功能是固定的,它控制著世界、視、投影變換及固定光照控制和紋理混合。T&L管線可以被渲染狀態(tài)控制,矩陣,光照和采制參數(shù)。功能比較有限?;舅械娘@卡都能正常運行。 2 可編程渲染管線對渲染管線中的頂點運算和像素運算分別進(jìn)行編程處理,而無須象固定渲染管線那樣套用一些固定函數(shù),取代設(shè)置參數(shù)來控制管線。 著色器ShaderUnity3D 的三種著色器。 1 Fixed function shader 屬于固定渲染管線 Shader, 基本用于高級Shader在老

18、顯卡無法顯示時的Fallback(之后有詳細(xì)介紹)。使用的是ShaderLab語言,語法與微軟的FX files 或者NVIDIA的 CgFX類似。 2 Vertex and Fragment Shader(頂點和片元) 最強(qiáng)大的Shader類型,屬于可編程渲染管線. 使用的是CG/HLSL語法。 3 Surface Shader (表面著色)Unity3d推崇的Shader類型,使用Unity預(yù)制的光照模型來進(jìn)行光照運算。使用的也是CG/HLSL語法。 著色器Shader ShaderLab 著色語言 ShaderLab 是Unity3D 專門用于組織著色器代碼的一種語言。除了ShaderLab 提供的功能外,還可以調(diào)用CG與HLSL 的著色器代碼。 注: 表面著色器與頂點和片元著色器是用CG 或 HLSL 語言編寫的,而固定功能著色器則完全是ShaderLab 著色語言編寫的?!菊n堂演示】 創(chuàng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論