Страница 1 из 1

Шейдер рима без отрисовки самой геометрии

СообщениеДобавлено: 08 июн 2011, 13:12
gnoblin
Шейдер который рисует рим для геометрии без самой геометрии (накладывается вторым материалом или через дублирование объекта).
Скриншота нету :).

Синтаксис:
Используется glsl
Shader "SelectPartShader" {
    Properties {
    _RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0)
    _RimPower ("Rim Power", Range(0.5,8.0)) = 3.0
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
        _GlowBorderOffset("GlowBorderOffset", Float) = 0.5
}
    SubShader {
        Tags {
        "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
        Blend SrcAlpha OneMinusSrcAlpha     // Alpha blending
//Blend One One                       // Additive
//Blend One OneMinusDstColor          // Soft Additive
//Blend DstColor Zero                 // Multiplicative
//Blend DstColor SrcColor             // 2x Multiplicative

        LOD 200

CGPROGRAM
#pragma surface surf Lambert alpha vertex:vert
#include "UnityCG.cginc"

sampler2D _MainTex;
struct Input {
    float2 uv_MainTex;
    float3 customViewDir;
    float3 customNormal;
};

float4 _RimColor;
float _RimPower;
float _GlowBorderOffset;

void vert (inout appdata_full v, out Input o)
{
        v.vertex.xyz += v.normal * (_GlowBorderOffset*0.1);
    o.customViewDir = ObjSpaceViewDir(v.vertex);
    o.customNormal =  v.normal;
}

void surf (Input IN, inout SurfaceOutput o) {
    fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
    half rim = 1.0 - saturate(dot (normalize(IN.customViewDir), IN.customNormal));
    half4 rim_color = _RimColor * pow (rim, _RimPower);
    o.Albedo = c.rgb*rim_color.rgb;
    o.Alpha = c.a*rim_color.a;
    o.Emission = o.Albedo;
}

ENDCG
}

Fallback "Transparent/VertexLit"
}

Re: Шейдер рима без отрисовки самой геометрии

СообщениеДобавлено: 08 июн 2011, 18:27
TexeL
A где Preview ? (popcorn1)

Re: Шейдер рима без отрисовки самой геометрии

СообщениеДобавлено: 08 июн 2011, 23:54
seaman
В Reference Manual есть с текстурой нормали но без прозрачности...

Re: Шейдер рима без отрисовки самой геометрии

СообщениеДобавлено: 09 июн 2011, 10:36
Neodrop
Вот превью. Правда, тут ещё toon outline

Re: Шейдер рима без отрисовки самой геометрии

СообщениеДобавлено: 09 июн 2011, 15:02
TexeL
Спасибо ! Красиво ! :ymparty: (popcorn1)