шейдер Flower

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

шейдер Flower

Сообщение gnoblin 26 окт 2010, 01:26

Шейдер садовника.

Синтаксис:
Используется glsl
/// Портировано с http://www.iquilezles.org/apps/shadertoy/
///Info: "'Flower' by iq (2010), The GLSL version of of love"

Shader "Flower" {
        Properties {
                //_MainTex ("Base (RGB)", 2D) = "white" {}
                _OffsetX ("Offset X", Float) = 0.5
                _OffsetY ("Offset Y", Float) = 0.5
                _Scale ("Scale", Float) = 0.5
        }
        SubShader {
                Tags { "RenderType"="Opaque" }
                LOD 200
               
                CGPROGRAM
                #pragma surface surf Lambert
                #pragma target 3.0
               
                //sampler2D _MainTex;
                float _OffsetX;
                float _OffsetY;
                float _Scale;
               
                struct Input {
                        float2 uv_MainTex;
                };
               
               
float u( float x ) { return 0.5+0.5*sign(x); }

//float u( float x ) { return (x>0.0)?1.0:0.0; }
//float u( float x ) { return abs(x)/x; }

                void surf (Input IN, inout SurfaceOutput o) {
                       
                        float2 p = (2.0*IN.uv_MainTex.xy-half2(_OffsetX,_OffsetY))/_Scale;

                        float time = 0.5;

                        float a = atan2(p.x,p.y);
                        float r = length(p)*.75;

                        float w = cos(3.1415927*time-r*2.0);
                        float h = 0.5+0.5*cos(12.0*a-w*7.0+r*8.0);
                        float d = 0.25+0.75*pow(h,1.0*r)*(0.7+0.3*w);

                        float col = u( d-r ) * sqrt(1.0-r/d)*r*2.5;
                        col *= 1.25+0.25*cos((12.0*a-w*7.0+r*8.0)/2.0);
                        col *= 1.0 - 0.35*(0.5+0.5*sin(r*30.0))*(0.5+0.5*cos(12.0*a-w*7.0+r*8.0));
                        float4 color = float4(
                                col,
                                col-h*0.5+r*.2 + 0.35*h*(1.0-r),
                                col-h*r + 0.1*h*(1.0-r),
                                1.0);
                       
                        o.Albedo = color.rgb;
                        o.Alpha = color.a;
                }
                ENDCG
        }
        FallBack "Diffuse"
}
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

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

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