【Unity Shaders】學習筆記之固定着色器命令(二)

我是小毛驢,一個遊戲人,我的夢想是世界和平。轉載請註明出處:http://blog.csdn.net/liulongling/article/details/51519006

一、準備

  在開始着色之前,我們需要創建一個場景(Scene)和球體。

   1.1 Diffuse

  漫反射計算一個簡單的(Lambertian)光照模型。光照強度隨着入射光線與表面的夾角減小而減小。光照強度只依賴於這個夾角,而且不會隨着相機的移動或者旋轉而改變。

Shader "liulongling/t1"
{
    Properties
    {
        _MainTex("主紋理",2D)="white"{}
        _DiffuseColor("漫反射",Color)=(1,1,1,1)
    }

    SubShader
    {
        Pass
        {

            Material
            {
                Diffuse[_DiffuseColor]//漫反射
            }
        }
    }
}

提示:這裏把漫反射顏色改爲紅色後,球體顏色並未發生改變,是因爲只有開啓燈光之後,頂點光照纔會有作用,材質塊中的設定纔會有效,所以加上代碼Lighting On | Off:開啓或關閉頂點光照 效果纔會出來!如下:

   1.2 Lighting

這裏寫圖片描述

  效果出來了有木有..

   1.3 Specular Properties 高光屬性 

  Specular 和 Diffuse 使用同樣簡單的光照模型,另外增加了一個和觀察角度相關的反射高光。這個叫做Blinn-Phong 高光模型。它包含了一個反射高光,取決於物體反射高光物體表面角度,光線入射角度和觀察角度。這種高光計算方法實際上恰好是模擬實時光源模糊反射的一種方法。高光模糊等級通過檢視面板裏的Shininess來控制。

_Specular("高光",Color) =(1,1,1,1)
Specular[_Specular]//高光 

這裏寫圖片描述

注意:貌似加了高光前後並沒有什麼效果,這是爲什麼呢?因爲只有開啓獨立高光SeparateSpecular On看到鏡面反射後 纔有效果

  1.4 SeparateSpecular 

  SeparateSpecular On | Off:開啓獨立鏡面反射。這個命令會添加高光光照到着色器通道的末尾,因此貼圖對高光沒有影響。只在光照開啓時有效!

  1.5 Emission 

  自發光顏色,當不被任何光照所照到時,對象的顏色。

Properties
{
  _Emission("自發光",Color)=(1,1,1,1)
}

SubShader
{
    Emission[_Emission]//自發光
}

這裏寫圖片描述

  1.6 Shininess 

  加亮時的光澤度,在0和1之間。0的時候你會發現更大的高亮也看起來像漫反射光照,1的時候你會獲得一個細微的亮斑。

這裏寫圖片描述

  1.7 Cull

  要想保持30FPS的同時處理數十萬的三角形,以現在的主流機器來說還是有些困難的。爲了提高效率,人們提出了很多方法,其中包括LOD、Culling 剔除,就是被擋住或視角以外的我們看不到的物體,因爲它們無關緊要,所以我們就不去繪製,以節省資源,提高場景的運行效率。比如立方體,你不會看到背離你的面,因此我們不需要繪製出背面,因此也被稱做背面剔除

  語法:Cull Back | Front| Off 

  Cull Front—— 不繪製面向觀察者的幾何面

  Cull Front—— 不繪製面向觀察者的幾何面

  Cull Off —— 顯示所有面


作者:小毛驢,一個遊戲人 
夢想:世界和平   
    
本博客中未標明轉載的文章歸作者小毛驢所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章