Night Tonemapping / Blue Shift

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

Night Tonemapping / Blue Shift

Сообщение gnoblin 05 ноя 2010, 06:00

Шейдер для ночных сцен :).
day.jpg

night.jpg


Подсмотрен здесь:
http://wiki.gamedev.net/index.php/D3DBo ... _Rendering

Надо будет потом реализовать оставшиеся интересные вещи оттуда.

Синтаксис:
Используется glsl
Shader "Night Tonemapping aka Blue Shift" {
        Properties {
                _MainTex ("Base (RGB)", 2D) = "white" {}
                _Night("Night", Range(0.0,1.0)) = 0
        }
        SubShader {
                Tags { "RenderType"="Opaque" }
                LOD 200
               
                CGPROGRAM
                #pragma surface surf Lambert

                sampler2D _MainTex;
                float _Night;

                struct Input {
                        float2 uv_MainTex;
                };

                void surf (Input IN, inout SurfaceOutput o) {
                        half4 c = tex2D (_MainTex, IN.uv_MainTex);
                       
                        //конвертим цветовое пространство RGB в цветовое пространство XYZ
                        float X = dot(c.rgb,float3(0.4124, 0.3576, 0.1805));
                        float Y = dot(c.rgb,float3(0.2126, 0.7152, 0.0722));
                        float Z = dot(c.rgb,float3(0.0193, 0.1192, 0.9505));
                       
                        //считаем scotopic luminance
                        float V = Y*(1.33*(1+(Y+Z)/X) -1.68);
                       
                        //tint the scotopic luminance V with a blue shift
                        float nRed = V*1.05;
                        float nBlue = V*0.97;
                        float nGreen = V*1.27;
                       
                        c.rgb = lerp(c.rgb, half3(nRed,nGreen,nBlue), _Night);
                       
                        o.Albedo = c.rgb;
                        o.Alpha = c.a;
                }
                ENDCG
        }
        FallBack "Diffuse"
}
 
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

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

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