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

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

您可以使用“顶点修改器”函数来修改顶点着色器中的传入顶点数据。这种做法适合程序化动画和沿法线挤出等操作。表面着色器编译指令 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"
  }
内置渲染管线中反射表面着色器的示例
内置渲染管线中的自定义数据表面着色器示例
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961