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

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

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

Сообщение gnoblin 08 июн 2011, 13:12

Шейдер который рисует рим для геометрии без самой геометрии (накладывается вторым материалом или через дублирование объекта).
Скриншота нету :).

Синтаксис:
Используется 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"
}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

Сообщение TexeL 08 июн 2011, 18:27

A где Preview ? (popcorn1)
ИзображениеИзображение
Аватара пользователя
TexeL
UNITрон
 
Сообщения: 244
Зарегистрирован: 15 ноя 2009, 20:57
  • Сайт

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

Сообщение seaman 08 июн 2011, 23:54

В Reference Manual есть с текстурой нормали но без прозрачности...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение Neodrop 09 июн 2011, 10:36

Вот превью. Правда, тут ещё toon outline
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение TexeL 09 июн 2011, 15:02

Спасибо ! Красиво ! :ymparty: (popcorn1)
ИзображениеИзображение
Аватара пользователя
TexeL
UNITрон
 
Сообщения: 244
Зарегистрирован: 15 ноя 2009, 20:57
  • Сайт


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

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

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


cron