Shader第二讲:Fixed Function Shader

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院


                                              Shader第二讲 :Fixed Function Shader

Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况。使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似。

例一:
显示单一颜色
下面我们来看第一个例子,显示单一颜色,注释写得挺详细了,照着格式写即可。
Shader第二讲:Fixed Function Shader_第1张图片
  1. //根Shader
  2. Shader "Custom/1_1color" {
  3.    // 属性
  4.     Properties {
  5.         //定义一个颜色
  6.         _Color ("Main Color", Color) = (1,.5,.5,1)
  7.     }
  8.     // 子shader
  9.     SubShader {
  10.         Pass {
  11.             Material {
  12.                 //显示该颜色
  13.                 Diffuse [_Color]
  14.             }
  15.             //打开光照开关,即接受光照
  16.             Lighting On
  17.         }
  18.     }
  19. }

例二:显示一张贴图
Shader第二讲:Fixed Function Shader_第2张图片 Shader第二讲:Fixed Function Shader_第3张图片

  1. Shader "Custom/1_2show1texture" {
  2.     Properties {
  3.         _MainTex ("Base (RGB)", 2D) = "white" {}
  4.         _Color("Main color",Color) = (1,1,1,1)
  5.     }
  6.     SubShader {
  7.         Pass
  8.         {
  9.             Material
  10.             {
  11.                 Diffuse[_Color]
  12.             }
  13.             Lighting on
  14.             SetTexture[_MainTex]
  15.             {
  16.                 //combine color部分,alpha部分
  17.                 //      材质 * 顶点颜色
  18.                 Combine texture * primary,texture * constant
  19.             }
  20.         }
  21.     }
  22. }
例三:两张贴图叠加
Shader第二讲:Fixed Function Shader_第4张图片 Shader第二讲:Fixed Function Shader_第5张图片

  1. Shader "Custom/1_3merge2texture" {
  2.     Properties {
  3.         _MainTex ("Base (RGB)", 2D) = "white" {}
  4.         _MainTex2 ("Tex2 (RGB)", 2D) = "white" {}
  5.         _Color("Main color",Color) = (1,1,1,1)
  6.     }
  7.     SubShader {
  8.         Pass
  9.         {
  10.             Material
  11.             {
  12.                 Diffuse[_Color]
  13.             }
  14.             Lighting on
  15.             SetTexture[_MainTex]
  16.             {
  17.                 //      第一张材质 * 顶点颜色
  18.                 Combine texture * primary
  19.             }
  20.             SetTexture[_MainTex2]
  21.             {
  22.                 //      第二张材质 * 之前累积(这里即第一张材质)
  23.                 Combine texture * previous
  24.             }
  25.         }
  26.     }
  27. }

你可能感兴趣的:(Shader)