Unity 6.3
0 онлайн 130 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 319 из 442

Окончательный модификатор цвета Surface Shader пример во встроенном Render Pipeline

Можно использовать функцию «конечный модификатор цвета», которая будет модифицировать конечный цвет, рассчитанный директивой компиляции Shader.The Surface Shader. Для этого используется finalcolor:functionName, с функцией, которая принимает параметры Input IN, SurfaceOutput o, inout fixed4 color.

Вот простой Shader, который применяет оттенок к окончательному цвету. Это отличается от простого применения оттенка к цвету поверхности Альбедо: этот оттенок также повлияет на любой цвет, который поступает из Lightmaps, Light Probes и подобных дополнительных источников.

  Shader "Example/Tint Final Color" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
      _ColorTint ("Tint", Color) = (1.0, 0.6, 0.6, 1.0)
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf Lambert finalcolor:mycolor
      struct Input {
          float2 uv_MainTex;
      };
      fixed4 _ColorTint;
      void mycolor (Input IN, SurfaceOutput o, inout fixed4 color)
      {
          color *= _ColorTint;
      }
      sampler2D _MainTex;
      void surf (Input IN, inout SurfaceOutput o) {
           o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
      }
      ENDCG
    } 
    Fallback "Diffuse"
  }
Пример шейдера, использующего метод модификатора цвета.
Пример шейдера, использующего метод модификатора цвета.