Отражение изображения по горизонтали или вертикали [Решено]

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

Отражение изображения по горизонтали или вертикали [Решено]

Сообщение Valter 31 авг 2011, 18:48

Здравствуйте уважаемые форумчане. Вот возник вопрос как в шейдере отразить картинку, имеется шейдер (рабочий):
Синтаксис:
Используется glsl
Shader "test" {

        Properties {

                _MainTex ("Base (RGB)", 2D) = "white" {}

                _Mask ("Mask (RGB)", 2D) = "white" {}

        }

        Category {

                Tags { "RenderType"="Transparent" "IgnoreProjector"="True" "Queue"="Transparent" }

                ZWrite Off

                Blend SrcAlpha OneMinusSrcAlpha

                        SubShader {                            

                                CGPROGRAM

                                #pragma surface surf Lambert alpha

       

                                uniform sampler2D _MainTex;

                                uniform sampler2D _Mask;

                                uniform half _Transparent;

       

                                struct Input {

                                        float2 uv_MainTex;

                                        float2 uv_Mask;

                                };

       

                                void surf (Input IN, inout SurfaceOutput o) {

                                        float4 main_tex = tex2D (_MainTex, IN.uv_MainTex);

                                        float4 mask = tex2D(_Mask, IN.uv_Mask);

                                        o.Albedo = main_tex.rgb;

                                        o.Alpha = mask.r;

                                }

                                ENDCG

                        }

                FallBack "Transparent/Diffuse"

        }

}


 

А вот как это сделать не знаю, мне нужно сделать, чтобы результат был как в photoshop'е при Редактировать -> Отразить по вертикали | по горизонтали.
Если это сложно, то направте, всех благодарю за внимание.
С уважением, Андрей.
Последний раз редактировалось Valter 01 сен 2011, 07:36, всего редактировалось 1 раз.
Valter
UNец
 
Сообщения: 33
Зарегистрирован: 12 янв 2011, 18:51

Re: Отражение изображения по горизонтали или вертикали

Сообщение Neyl 31 авг 2011, 20:32

Если правильно понял вопрос, то достаточно будет просто заменить одну из текстурных координат на (1-координата)
Синтаксис:
Используется glsl
void surf (Input IN, inout SurfaceOutput o) {

                                         float4 main_tex = tex2D (_MainTex, float2(1-IN.uv_MainTex.x, IN.uv_MainTex.y));
                                         float4 mask = tex2D(_Mask, float2(1-IN.uv_Mask.x, IN.uv_Mask.y));
                                         o.Albedo = main_tex.rgb;
                                         o.Alpha = mask.r;
                                 }
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Отражение изображения по горизонтали или вертикали

Сообщение Valter 01 сен 2011, 07:29

Neyl спасибо именно то, что мне и нужно было.
Valter
UNец
 
Сообщения: 33
Зарегистрирован: 12 янв 2011, 18:51


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

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

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