unity之表面着色器自定義光照 官方示例詳解

表面着色器光照示例

下面的這些例子是表面着色器(Surface Shaders)中的自定義光照模式(custom lighting models)。普通光照模式的表面着色器在這頁

因爲延時光照(Deferred lighting)不能與一些自定義 per-material 光照模式(lighting model)很好的運行,在下面大部分例子中我們只在着色器的正向渲染(Forward Rendering)中編譯。

Diffuse 漫反射

Diffuse = 直射光顏色 * max(0,cos夾角(光和法線的夾角) )
Tip:cosθ = 光方向· 法線方向
我們從內置的Lambert光照模式(lighting model)開始:

  Shader "Example/Diffuse Texture" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf Lambert
      struct Input {
          float2 uv_MainTex;
      };
      sampler2D _MainTex;
      void surf (Inp
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章