shader學習筆記一

固定管線shader,部分使用的詳細註釋,注意有pass通道.


Shader "Custom/myshader2"{
properties  //裏面行不要加;號
{
_Color("Main Color",color)=(1,1,1,1)
_Ambient("Ambient",color)=(0.3,0.3,0.3,0.3)
_Specular("Specular",color)=(1,1,1,1)
_Shininess("Shininess",range(0,8))= //range爲一個範圍,面板上爲一個可滑動條
_Emission("Emission",color)=(1,1,1,1)
_MainTex("MainTex",2d)="" {} //2D或2d都可以,不分大小寫
_SecondTex("SecondTex",2d)=""{}
_ConstantColor("ConstantColor",color)=(1,1,1,0.3) //前面兩個tex後要加{}否則報錯,或者不加,把這句寫在他們上面

}

SubShader 
{
//獲得半透明效果,需要設定渲染順序
//渲染隊列,在官方手冊ShaderLab: SubShader Tags中
//渲染隊列Queue,值Transparent

Tags { "Queue" = "Transparent" }


pass
{
Blend SrcAlpha OneMinusSrcAlpha //用當前顏色的alpha值與1-當前alpha值的比例,去混合之前已經被渲染好的c場景顏色值


//color(1,1,1,1)
//color[_Color]//[]爲參數值,()固定值

material
{
diffuse[_Color]   //描述材質漫反射,描述物體固有顏色
ambient[_Ambient] //環境光
specular[_Specular] //高光部分
shininess[_Shininess] //浮點值。來描述強度,光滑物體高光強值大
emission[_Emission] //自發光
}
Lighting on  //打開光照,關閉off
separatespecular on //如果使用了specular,就必須添加。獨立的鏡面高光

settexture[_MainTex] //創建紋理,一個settexture只能帶一個紋理
{
// 合併  primary固定關鍵詞,代表前面所有計算了纔是和光照以後的材質    texture指_MainTex   combine後無{},【】  texture和primary都爲浮點0-1,相乘更 小,所以顏色深
//空格加double意思是乘以2,使亮度變高     quad爲四倍

combine  texture*primary double 
}
settexture[_SecondTex] //創建紋理,一個settexture只能帶一個紋理
{
//matrix[]其他屬性
constantColor[_ConstantColor]
//previousz之前的紋理,混合紋理有最大值
//,後面的參數texture,只是取了alpha通道當做當前alpha通道
//texture*constant乘上0.3會更小

combine  texture*previous double ,texture*constant
}
}

}


shader文件下載地址:http://download.csdn.net/detail/zkq666666/9385343
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章