Ошибка invalid subscript 'xy'

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

Ошибка invalid subscript 'xy'

Сообщение Chaz 27 июн 2015, 01:34

Прив. Есть простой код для накладывания текстурки, типа.
Синтаксис:
Используется glsl
Shader "sheidor" {
Properties {
        _MainTex ("Texture", 2D) = "white" { }
        _Mask ("Texture", 2D) = "white" { }
    }
    SubShader {
        Pass {

            CGPROGRAM

            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

                        sampler2D _MainTex;
                        sampler2D _Mask;
                        sampler2D _MainTex_ST;

            struct v2f {
                float4 pos : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            v2f vert (appdata_base v)
            {
                v2f o;
                o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
                o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 texcol = tex2D (_MainTex, i.uv);
                    return texcol;
            }
            ENDCG

        }
    }
}

Матюкается на строку
Синтаксис:
Используется glsl
 o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);

Грит
Shader error in 'sheidor': invalid subscript 'xy' at line 28 (on d3d11)

Чому так? У меня ж там вообще никаких xy нету.
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24

Re: Ошибка invalid subscript 'xy'

Сообщение kripto289 27 июн 2015, 04:17

Chaz писал(а):Прив. Есть простой код для накладывания текстурки, типа.
Синтаксис:
Используется glsl
Shader "sheidor" {
Properties {
        _MainTex ("Texture", 2D) = "white" { }
        _Mask ("Texture", 2D) = "white" { }
    }
    SubShader {
        Pass {

            CGPROGRAM

            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

                        sampler2D _MainTex;
                        sampler2D _Mask;
                        sampler2D _MainTex_ST;

            struct v2f {
                float4 pos : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            v2f vert (appdata_base v)
            {
                v2f o;
                o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
                o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 texcol = tex2D (_MainTex, i.uv);
                    return texcol;
            }
            ENDCG

        }
    }
}

Матюкается на строку
Синтаксис:
Используется glsl
 o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);

Грит
Shader error in 'sheidor': invalid subscript 'xy' at line 28 (on d3d11)

Чому так? У меня ж там вообще никаких xy нету.

Не "sampler2D _MainTex_ST", а "float4 _MainTex_ST;"
Аватара пользователя
kripto289
UNIверсал
 
Сообщения: 476
Зарегистрирован: 30 сен 2013, 03:30
Откуда: Екатеринбург
  • Сайт

Re: Ошибка invalid subscript 'xy'

Сообщение Chaz 27 июн 2015, 13:58

kripto289 писал(а):
Chaz писал(а):Прив. Есть простой код для накладывания текстурки, типа.
Синтаксис:
Используется glsl
Shader "sheidor" {
Properties {
        _MainTex ("Texture", 2D) = "white" { }
        _Mask ("Texture", 2D) = "white" { }
    }
    SubShader {
        Pass {

            CGPROGRAM

            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

                        sampler2D _MainTex;
                        sampler2D _Mask;
                        sampler2D _MainTex_ST;

            struct v2f {
                float4 pos : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            v2f vert (appdata_base v)
            {
                v2f o;
                o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
                o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 texcol = tex2D (_MainTex, i.uv);
                    return texcol;
            }
            ENDCG

        }
    }
}

Матюкается на строку
Синтаксис:
Используется glsl
 o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);

Грит
Shader error in 'sheidor': invalid subscript 'xy' at line 28 (on d3d11)

Чому так? У меня ж там вообще никаких xy нету.

Не "sampler2D _MainTex_ST", а "float4 _MainTex_ST;"

Вот блин, а я ведь недавно спрашивал за мейн тек ст, и забыл, что это флоат4 :-s
Пасибки!
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24


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

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

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