BumpSpec+Rim по контурам объекта

Шейдеры и все-все-все.

BumpSpec+Rim по контурам объекта

Сообщение gnoblin 05 июн 2011, 23:33

BumpSpec+Rim по контурам объекта

Синтаксис:
Используется glsl
Shader "BumpSpec OutlineRim" {
    Properties {
      _Color ("Main Color", Color) = (1,1,1,1)
          _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
          _Shininess ("Shininess", Range (0.03, 1)) = 0.078125
          _MainTex ("Texture", 2D) = "white" {}
          _BumpMap ("Bumpmap", 2D) = "bump" {}
      _RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0)
      _RimPower ("Rim Power", Range(0.5,8.0)) = 3.0
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf BlinnPhong vertex:vert
          #include "UnityCG.cginc"
         
      struct Input {
          float2 uv_MainTex;
          float2 uv_BumpMap;
                  float3 customViewDir;
                  float3 customNormal;
      };
      sampler2D _MainTex;
      sampler2D _BumpMap;
      float4 _RimColor;
      float _RimPower;
          fixed4 _Color;
          half _Shininess;
         
          void vert (inout appdata_full v, out Input o)
          {
                o.customViewDir = ObjSpaceViewDir(v.vertex);
                o.customNormal =  v.normal;
          }
      void surf (Input IN, inout SurfaceOutput o)
          {
          fixed4 tex = tex2D (_MainTex, IN.uv_MainTex);
                 
                  o.Albedo = tex.rgb * _Color.rgb;
                  o.Gloss = tex.a;
                  o.Alpha = tex.a * _Color.a;
                  o.Specular = _Shininess;
                 
          o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
                 
          half rim = 1.0 - saturate(dot (normalize(IN.customViewDir), IN.customNormal));
          o.Emission = _RimColor.rgb * pow (rim, _RimPower);
      }
      ENDCG
    }
    Fallback "Diffuse"
  }
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4