Sprite layer Mask

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Sprite layer Mask

Сообщение cruiz 19 апр 2014, 21:09

Есть слайдер, он будет двигать таблицу динамически с генерированных объектов. Нужно чтобы эти объекты были видны только в зоне действия маски, возможно ли это сделать без использования дополнительных камер.
Последний раз редактировалось cruiz 19 апр 2014, 21:36, всего редактировалось 1 раз.
cruiz
UNIт
 
Сообщения: 94
Зарегистрирован: 12 апр 2013, 19:22

Re: Sprite layer Mask

Сообщение waruiyume 19 апр 2014, 21:23

Переформулируйте Ваш вопрос.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Sprite layer Mask

Сообщение cruiz 19 апр 2014, 21:36

исправил
cruiz
UNIт
 
Сообщения: 94
Зарегистрирован: 12 апр 2013, 19:22

Re: Sprite layer Mask

Сообщение waruiyume 20 апр 2014, 06:34

Синтаксис:
Используется glsl
Shader "Cg/SpriteCrop"
{
        Properties
        {
                [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
                _Color ("Tint", Color) = (1,1,1,1)
                [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
                _Rect("Rect", Vector) = (0,0,1,1)
        }

        SubShader
        {
                Tags
                {
                        "Queue"="Transparent"
                        "IgnoreProjector"="True"
                        "RenderType"="Transparent"
                        "PreviewType"="Plane"
                        "CanUseSpriteAtlas"="True"
                }

                Cull Off
                Lighting Off
                ZWrite Off
                Fog { Mode Off }
                Blend SrcAlpha OneMinusSrcAlpha

                Pass
                {
                CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag
                        #pragma multi_compile DUMMY PIXELSNAP_ON
                        #include "UnityCG.cginc"
                       
                        struct appdata_t
                        {
                                float4 vertex   : POSITION;
                                float4 color    : COLOR;
                                float2 texcoord : TEXCOORD0;
                        };

                        struct v2f
                        {
                                float4 vertex   : SV_POSITION;
                                fixed4 color    : COLOR;
                                half2 texcoord  : TEXCOORD0;
                                half2 scrPos : TEXCOORD1;
                        };
                       
                        fixed4 _Color;
                        fixed4 _Rect;

                        v2f vert(appdata_t IN)
                        {
                                v2f OUT;
                                OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
                                OUT.texcoord = IN.texcoord;
                                OUT.color = IN.color * _Color;
                                #ifdef PIXELSNAP_ON
                                OUT.vertex = UnityPixelSnap (OUT.vertex);
                                #endif

                                OUT.scrPos = ComputeScreenPos(OUT.vertex).xy;

                                return OUT;
                        }

                        sampler2D _MainTex;

                        fixed4 frag(v2f IN) : COLOR
                        {
                                fixed sp = 1.0;

                                sp *= step(_Rect.x, IN.scrPos.x);
                                sp *= step(IN.scrPos.x, _Rect.z);
                                sp *= step(_Rect.y, IN.scrPos.y);
                                sp *= step(IN.scrPos.y, _Rect.w);

                                return tex2D(_MainTex, IN.texcoord) * IN.color*sp;
                        }
                ENDCG
                }
        }
}
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 23