本節書摘來自華章社群《unity開發實戰》一書中的第3章,第3.5節建立透明紋理貼圖,作者 (愛爾蘭)matt smith (巴西)chico queiroz,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視
3.5 建立透明紋理貼圖
如果想讓玩家的視線穿透一個物體,則需要透明或半透明的材質。塑膠薄膜、剪貼畫、網格等人工産品是可以用透明紋理貼圖制作的。
3.5.1 準備工作
本節會建立一個材質來模拟塑膠薄膜,選它的主要原因是這種材質允許我們使用全透明制作邊框的rounded borders,也可以使用半透明顯示薄膜(film)本身。本節其餘部分假設讀者已經能夠使用圖檔編輯器建立圖檔,比如一張有斜面的圓角矩形圖檔。如果不會操作,随時使用示例代碼中名為“0423_03_04”的檔案夾中的準備材料。
3.5.2 操作步驟
請按照下面的步驟建立透明材質:
1)建立一個紋理,命名為:slidematerial。
2)選擇此材質。在inspector視圖中,在材質的名稱下,使用下拉菜單把shader的值修改為transparent/diffuse(透明/漫反射):
3)用圖檔編輯器打開基礎紋理(本節用adobe photoshop講解下面的步驟)。
4)選擇圓角矩形周圍的空像素(通過magic wand工具,打開anti-alias(反走樣),tolerance(容忍度)的值設為0)。

10)回到alpha通道,填充選中的矩形亮灰區域(紅、綠和藍的值均在170左右。)
3.5.3 實作原理
unity可以讀取紋理貼圖的4個通道值:r(紅)、g(綠)、b(藍)和a(透明度)。
當用alpha通道根據每個像素的亮度級别設定材質的透明度時,透明着色器使用rgb通道作為基礎紋理。cutout子分組(cutout subgroup)中的透明着色器不渲染半透明,而隻允許紋理像素是不可見或完全不透明的。
3.5.4 更多内容
unity 有一系列透明着色器用于實作不同的效果。
使用cutout
透明着色器有一個子分組叫做cutout,如果你不需要半透明的材質,可以用cutout着色器。它們的渲染速度更快,并且允許對象投射(cast)和接收(receive)陰影。
使用凹凸的漫反射(bumped diffuse)
要練習的話,把材質的shader值修改成transparent/bumped diffuse。然後把0423_03_04檔案夾中的slidenormaltexture.png 圖檔檔案作為一個法線凹凸貼圖(normal bump map)。