固定管线渲染

来源:互联网 发布:omp算法 matlab 编辑:程序博客网 时间:2024/05/11 18:36

fixed function shader 用于在老式的显卡中:

      使用shaderLab编写;

Shader "Yellows/ff2" {
Properties{
  _MainColor("MainColor",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,2))=1
  _Emission("Emission",color)=(1,1,1,1)
  _MainTexture("MainTexture",2d)="White"{}
  _SecondTexture("SecondTexture",2d)=""{}
  _ConstantColor("ConstantColor",color)=(1,1,1,0.3)
}
subShader{
  Tags{"Queue"="Transparent"} //控制渲染顺序;
  pass{
    Blend SrcAlpha OneMinusSrcAlpha  //Alpha Blend
    material{
       diffuse[_MainColor]
       ambient[_Ambient]
       specular[_Specular]
       shininess[_Shininess]
       emission[_Emission]
    }
    lighting on
    separatespecular on


    settexture[_MainTexture]{
       combine texture * primary double //combine:混合,使texture得rgb值乘以前面设置的光照顶点 double:2倍 quad:4倍
    }


    settexture[_SecondTexture]{
       //combine texture * primary double //primary 不能用 只能得到当前贴图与前面的光照顶点所融合;
       constantcolor[_ConstantColor]  //如下行直接用constant引用alpha; 如不用此则在贴图上设置为Alpha from Grayscale
       combine texture * previous double,texture *constant //previous 之前的所有处理;再combine 第二个参数texture为取当前贴图的alpha值做处理
    }
  }
}
}

原创粉丝点击