《Unity開發實戰》 3 2節建立反射材質

2021-09-23 14:56:31 字數 1277 閱讀 4231

3.2 建立反射材質

金屬、車漆,以及光滑的塑料表面都是一些很常見的需要反射的材質的例子。幸運的是,unity內建了反射著色器(reflective shader),配置好以後就可以幫我們實現想要的效果了。

3.2.1 準備工作

本節需要準備兩個紋理貼圖:base map(底圖)和reflection cubemap(反射立方圖)。底圖得是一張rgba的,alpha通道可以把反射級別指定成從完全不透明(黑色)到完全反射(白色)。反射立方體貼圖可能是由六塊紋理組成,或者像本節教程這樣,只有乙個單獨的紋理。

為了讓讀者把精力放在本節的主題:建立乙個反射材質,0423_03_01資料夾中準備了乙個包,包括乙個之前建立的場景,以及乙個可以作為反射貼圖的.jpg檔案。

3.2.2 操作步驟

5)在project檢視中選擇reflectionmap資源,它已經從2d紋理變成了立方圖(圖示也變了)。

6)選擇battery材質並把reflectionmap資源應用到reflection cubemap的選項中:

3.2.3 實現原理

基礎紋理的alpha通道設定了反射度,本例中,材質的鏡面反射的級別是根據每個畫素的亮度而定的。意思是說alpha通道是白色的時候反射立方圖(reflection cubemap)的可見度更高。

反射立方圖(reflection cubemap)實際上是由6張不同的組成的,這些是通過在紋理匯入器(texture importer)把texture type(紋理型別)設定成reflection(反射)後,由原始的檔案生成的。這6張被對映到立方體的6個面上。

反射立方圖(reflection cubemap)可以用很多種方式生成,並且有很多種不同的對映屬性。

使用6個不同的紋理貼圖

不用1張單獨的紋理貼圖。也可以在project檢視中建立乙個空的反射立方圖(reflection cubemap)並指定6張不同的檔案繪製到6個表面上。

反射當前的場景圖形

如果使用的是unity專業版,可以從當前的場景圖形中建立反射貼圖。其實還可以實時反射場景或者把乙個單獨的幀烘焙成反射立方圖(reflection cubemap)。unity的文件中包含所有相關的介紹和指令碼**:

《Xcode實戰開發》 2 2節建立專案

2.2 建立專案 xcode實戰開發 tour專案將作為xcode使用者介面骨架上的血肉,讓開發人員有機會展開探索。按照如下步驟建立新專案 1 如果xcode尚未執行,啟動它。將看到xcode歡迎視窗 見圖2.1 2 單擊標籤為create a new xcode project 新建xcode專案...

《Xcode實戰開發》 2 5節跳轉欄

2.5 跳轉欄 xcode實戰開發 編輯器區域之上的跳轉欄顯示開發人員在專案組織結構中所處的位置 見圖2.13 此外,它還能作為專案導航器的乙個更為緊湊的版本。即使在導航器區域被隱藏時,仍然可以訪問跳轉欄,單擊任何分段以及從彈出式選單選擇不同路徑 見圖2.14 都可以瀏覽開發人員的專案。跳轉欄的能力...

《Python高效開發實戰》實戰演練 建立應用2

為了在專案中開發符合mvc架構的實際應用程式,需要在專案中建立django應用。每個django專案可以包含多個django應用。建立應用的語法為 應用名稱 cd djangosite命令完成後會在專案目錄中建立如下目錄及檔案結構 init py admin.py migrations init p...