SimpleTwoSide shader unity graphic rendering method

Simple two side shader based on blin_Phong method

AF_TwoSide.shader HLSL

Code (HLSL): AF_TwoSide
  1. Properties
    {
    _MainTex("_MainTex", 2D) = "white" {}
    _ColorMult("ColorMult", Float) = 1
    _Color0("Color 0", Color) = (1,1,1,0)
    _BumpMap("_BumpMap", 2D) = "bump" {}
    _BumpScale("_BumpScale", Float) = 1
    _SpecularMap("_SpecularMap", 2D) = "white" {}
    _SpecularColor("_SpecularColor", Color) = (1,1,1,0)
    _Specular("_Specular", Float) = 1
    _Smoothness("_Smoothness", Float) = 0.5
    [HideInInspector] _texcoord( "", 2D ) = "white" {}
    [HideInInspector] __dirty( "", Int ) = 1
    }

    SubShader
    {
    Tags{ "RenderType" = "Opaque"  "Queue" = "Geometry+0" }
    Cull Off
    CGPROGRAM
    #include "UnityStandardUtils.cginc"
    #pragma target 3.0
    #pragma surface surf StandardSpecular keepalpha addshadow fullforwardshadows 
    struct Input
    {
    float2 uv_texcoord;
    };

    uniform sampler2D _BumpMap;
    uniform float4 _BumpMap_ST;
    uniform float _BumpScale;
    uniform sampler2D _MainTex;
    uniform float4 _MainTex_ST;
    uniform float4 _Color0;
    uniform float _ColorMult;
    uniform sampler2D _SpecularMap;
    uniform float4 _SpecularMap_ST;
    uniform float _Specular;
    uniform float4 _SpecularColor;
    uniform float _Smoothness;

    void surf( Input i , inout SurfaceOutputStandardSpecular o )
    {
    float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
    o.Normal = UnpackScaleNormal( tex2D( _BumpMap, uv_BumpMap ), _BumpScale );
    float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
    o.Albedo = ( ( (tex2D( _MainTex, uv_MainTex )).rgb * (_Color0).rgb ) * _ColorMult );
    float2 uv_SpecularMap = i.uv_texcoord * _SpecularMap_ST.xy + _SpecularMap_ST.zw;
    o.Specular = ( (tex2D( _SpecularMap, uv_SpecularMap )).rgb * _Specular * (_SpecularColor).rgb );
    o.Smoothness = _Smoothness;
    o.Alpha = 1;
    }

    ENDCG
    }
    Fallback "Diffuse"
    CustomEditor "ASEMaterialInspector"



댓글

이 블로그의 인기 게시물

About AActor!!! "UObject" has no member "BeginPlay"

UNREAL Android build information

Shader informations nice blog ~ ~