Version: 6000.3
语言: 中文
内置渲染管线中的反射表面着色器示例
内置渲染管线中的自定义数据表面着色器示例

顶点修改器内置渲染管线中的表面着色器示例

修改顶点位置的着色器示例。
修改顶点位置的着色器示例。

可以使用“顶点修饰符”函数来修改顶点中传入的顶点数据着色器在 GPU 上运行的程序。更多信息
请参阅术语表
.这可用于程序动画和沿法线的拉伸等。表面着色器为内置渲染管线编写着色器的简化方法。更多信息
请参阅术语表
编译指令vertex:functionName用于此,其函数将inout appdata_full参数。

下面是一个着色器,它沿着其法线移动顶点,移动材质中指定的量:

  Shader "Example/Normal Extrusion" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
      _Amount ("Extrusion Amount", Range(-1,1)) = 0.5
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf Lambert vertex:vert
      struct Input {
          float2 uv_MainTex;
      };
      float _Amount;
      void vert (inout appdata_full v) {
          v.vertex.xyz += v.normal * _Amount;
      }
      sampler2D _MainTex;
      void surf (Input IN, inout SurfaceOutput o) {
          o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
      }
      ENDCG
    } 
    Fallback "Diffuse"
  }
内置渲染管线中的反射表面着色器示例
内置渲染管线中的自定义数据表面着色器示例