Unity3D में shader में अल्फ़ा जोड़ें

5
ATHellboy 2015-09-01 11:52.

मुझे shader प्रोग्रामिंग के बारे में कोई जानकारी नहीं है, लेकिन अभी मुझे उस shader में अल्फ़ा जोड़ने की आवश्यकता है जिसे मैं उपयोग करना चाहता हूँ। वास्तव में मैं अपने स्प्राइट को फीका और फीका करना चाहता हूं लेकिन यह उस छाया में नहीं है जिसका मैं उपयोग करता हूं।

शेडर:

Shader "Sprites/ClipArea2Sides"
{
    Properties
    {
        _MainTex ("Base (RGB), Alpha (A)", 2D) = "white" {}
        _Length ("Length", Range(0.0, 1.0)) = 1.0
        _Width ("Width", Range(0.0, 1.0)) = 1.0
     }

    SubShader
    {
        LOD 200

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

        Pass
        {
            Cull Off
            Lighting Off
            ZWrite Off
            Offset -1, -1
            Fog { Mode Off }
            ColorMask RGB
            Blend SrcAlpha OneMinusSrcAlpha

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            sampler2D _MainTex;
            float4 _MainTex_ST;
            float _Length;
            float _Width;

            struct appdata_t
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
            };

            struct v2f
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
            };

            v2f vert (appdata_t v)
            {
                v2f o;
                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                o.texcoord = v.texcoord;
                return o;
            }

            half4 frag (v2f IN) : COLOR
            {
                if ((IN.texcoord.x<0) || (IN.texcoord.x>_Width) || (IN.texcoord.y<0) || (IN.texcoord.y>_Length))
                {
                    half4 colorTransparent = half4(0,0,0,0) ;
                    return colorTransparent ;
                }
                else
                    return tex2D(_MainTex, IN.texcoord) ;
            }
            ENDCG
        }
    }
}

कुछ इस तरह shader: http://wiki.unity3d.com/index.php/UnlitAlphaWithFade

और मुझे प्रदर्शन के कारण मोबाइल के लिए अनुकूलित अल्फा की आवश्यकता है।

उत्तर

अनस इकबाल को बहुत धन्यवाद।

यह एक ऐसा शेड है जिसमें क्लिप एरिया + कलर टिंट है:

Shader "Sprites/TestShader"
{
    Properties
    {
        _Color ("Color Tint", Color) = (1,1,1,1)
        _MainTex ("Base (RGB), Alpha (A)", 2D) = "white" {}
        _Length ("Length", Range(0.0, 1.0)) = 1.0
        _Width ("Width", Range(0.0, 1.0)) = 1.0
     }

    SubShader
    {
        LOD 200

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

        Pass
        {
            Cull Off
            Lighting Off
            ZWrite Off
            Offset -1, -1
            Fog { Mode Off }
            ColorMask RGB
            Blend SrcAlpha OneMinusSrcAlpha

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            sampler2D _MainTex;
            float4 _MainTex_ST;
            float _Length;
            float _Width;
            half4 _Color;

            struct appdata_t
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
            };

            struct v2f
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
                half4 color : COLOR;
            };

            v2f vert (appdata_t v)
            {
                v2f o;
                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                o.texcoord = v.texcoord;
                o.color = _Color;
                return o;
            }

            half4 frag (v2f IN) : COLOR
            {
                if ((IN.texcoord.x<0) || (IN.texcoord.x>_Width) || (IN.texcoord.y<0) || (IN.texcoord.y>_Length))
                {
                    half4 colorTransparent = half4(0,0,0,0) ;
                    return colorTransparent;
                }
                else
                {
                    half4 tex = tex2D(_MainTex, IN.texcoord);
                    tex.a = IN.color.a;
                    return tex;
                }
            }
            ENDCG
        }
    }
}

1 answers

3
Anas iqbal 2015-09-02 12:45.

इस लाइन को अपने में जोड़ें Properties

_Color ("Color Tint", Color) = (1,1,1,1)

फिर नीचे इस पंक्ति को जोड़ें float _Width;

half4 _Color;

अपना अद्यतन करें struct v2fऔर इसमें एक रंग चर जोड़ें।

struct v2f
{
    float4 vertex : POSITION;
    float2 texcoord : TEXCOORD0;
    half4 color : COLOR;
};

तो आप इसे v2f vertइस तरह से उपयोग कर सकते हैं :

o.color = _Color

या यदि आप केवल आरजीबी और अल्फा से अलग से खेलना चाहते हैं

o.color.rgb = _Color.rgb
o.color.a = _Color.a

या

o.color.r = _Color.r
o.color.g = _Color.g
o.color.b = _Color.b
o.color.a = _Color.a

उसके बाद आप अपनी half4 frag (v2f IN) : COLORविधि में रंग मान वापस कर सकते हैं

// do something with your color if you want
// you can also play with alpha here
return IN.color;

Related questions

MORE COOL STUFF

जाना दुग्गर: प्यार के बारे में उसने जो कुछ कहा है और 'एक' को खोजने के लिए उसकी 5 साल की अवधि

जाना दुग्गर: प्यार के बारे में उसने जो कुछ कहा है और 'एक' को खोजने के लिए उसकी 5 साल की अवधि

जाना दुग्गर प्यार की तलाश के बारे में खुलकर बात करती रही हैं। यहां वह सब कुछ है जो उसने विषय और शादी के लिए पांच साल की अवधि के बारे में कहा है।

सैम ह्यूगन को ठीक-ठीक पता है कि वह 'आउटलैंडर' सेट से क्या लेंगे - 'जब मैं उन्हें पहनता हूं तो मुझे ऐसा लगता है जैसे मैं जेमी हूं'

सैम ह्यूगन को ठीक-ठीक पता है कि वह 'आउटलैंडर' सेट से क्या लेंगे - 'जब मैं उन्हें पहनता हूं तो मुझे ऐसा लगता है जैसे मैं जेमी हूं'

'आउटलैंडर' स्टार सैम ह्यूगन ने हाल ही में खुलासा किया कि वह सेट से जेमी फ्रेजर को याद करने के लिए क्या लेंगे, जिस भूमिका ने उन्हें स्टार बनाया था।

फैब फोर इनसाइडर के अनुसार, शुरुआती बीटल्स गाना बैंड के 'सबसे रोमांचक प्रदर्शनों' में से एक था।

फैब फोर इनसाइडर के अनुसार, शुरुआती बीटल्स गाना बैंड के 'सबसे रोमांचक प्रदर्शनों' में से एक था।

'शी लव्स यू' एक घंटे में लिखा गया, एक दिन में रिकॉर्ड किया गया और यह द बीटल्स का उनके करियर का सर्वश्रेष्ठ प्रदर्शन वाला गाना था।

डॉली पार्टन ने अपनी 'अमान्य' दादी की मदद की, जब अन्य पोते-पोतियों में से कोई भी ऐसा नहीं करता था—वह उसके साथ मज़ाक भी करती थी

डॉली पार्टन ने अपनी 'अमान्य' दादी की मदद की, जब अन्य पोते-पोतियों में से कोई भी ऐसा नहीं करता था—वह उसके साथ मज़ाक भी करती थी

डॉली पार्टन और उनकी दादी बेसी के बीच एक विशेष रिश्ता था। दादी पार्टन बहुत बीमार थीं, लेकिन उसने डॉली को उनके साथ मज़ाक करने से नहीं रोका।

विश्व की सबसे कठोर लकड़ी कौन सी है?

विश्व की सबसे कठोर लकड़ी कौन सी है?

आप सोच सकते हैं कि ओक या हिकॉरी कठोर होती है, लेकिन जब दुनिया की सबसे कठोर लकड़ी की बात आती है, तो वे उसके आसपास भी नहीं फटकतीं।

समुद्र की गहराई में छिपे 10 सबसे डरावने समुद्री जीव

समुद्र की गहराई में छिपे 10 सबसे डरावने समुद्री जीव

समुद्र खूबसूरती से भरपूर है, लेकिन इसमें धरती के कुछ सबसे डरावने समुद्री जीव भी छिपे हैं। इनमें से कई जीव समुद्र की सतह से बहुत नीचे, गहरे समुद्र की अंधेरी, उच्च दबाव वाली दुनिया में छिपे रहते हैं।

Minecraft में 10 सर्वश्रेष्ठ तलवार जादू

Minecraft में 10 सर्वश्रेष्ठ तलवार जादू

अगर आप दुश्मन भीड़ से लड़ रहे हैं या PvP परिदृश्यों के लिए तैयारी कर रहे हैं, तो Minecraft में उपलब्ध सर्वोत्तम तलवारों के जादू को जानना आपको एक बड़ी बढ़त दिला सकता है। तलवारों पर जादू करने से आप ज़्यादा नुकसान पहुँचा सकते हैं, भीड़ पर पड़ने वाले प्रभाव को बढ़ा सकते हैं और अपनी तलवार की टिकाऊपन बढ़ा सकते हैं।

13 समाजवादी देश जो एक-दूसरे से बिल्कुल अलग दिखते हैं

13 समाजवादी देश जो एक-दूसरे से बिल्कुल अलग दिखते हैं

जब लोग समाजवादी देशों की बात करते हैं, तो अक्सर उनकी कल्पना पूर्ण सरकारी नियंत्रण और निजी स्वामित्व के अभाव की होती है। लेकिन व्यवहार में, समाजवादी अर्थव्यवस्थाएँ व्यापक रूप से भिन्न होती हैं।

द बियर रिकैप: क्या मार्कस शिकागो का सबसे दयालु, सबसे कोमल, सबसे ईमानदार आदमी है?

द बियर रिकैप: क्या मार्कस शिकागो का सबसे दयालु, सबसे कोमल, सबसे ईमानदार आदमी है?

'चिल्ड्रन' में एक बड़े नाम की कैमियो और कुछ विनाशकारी खबरें सामने आईं

क्या आप 9,800 डॉलर में इस सात-सीटर 2008 टोयोटा RAV4 में इसे पैक करेंगे?

क्या आप 9,800 डॉलर में इस सात-सीटर 2008 टोयोटा RAV4 में इसे पैक करेंगे?

दावा किया जाता है कि यह RAV4 उत्कृष्ट स्थिति में है और म्यूजिकल चेयर के खेल के लिए तैयार है।

ह्यूस्टन की गर्मी के दौरान अमेज़न डिलीवरी वैन में भीषण विस्फोट

ह्यूस्टन की गर्मी के दौरान अमेज़न डिलीवरी वैन में भीषण विस्फोट

ड्रोन फुटेज में अग्निशमन कर्मियों को आग बुझाने के लिए संघर्ष करते हुए देखा गया।

मार्वल का ब्लैक पैंथर शो अब तक का सबसे महत्वपूर्ण एनिमेटेड शो होगा

मार्वल का ब्लैक पैंथर शो अब तक का सबसे महत्वपूर्ण एनिमेटेड शो होगा

आइज़ ऑफ वकांडा सीधे तौर पर MCU से जुड़ा हुआ है, साथ ही इसमें एक्स-मेन '97, व्हाट इफ..., डेयरडेविल, आदि पर अपडेट भी शामिल हैं।

जॉन क्लीज़ की पत्नी कौन हैं? जेनिफर वेड के बारे में सब कुछ जानें

जॉन क्लीज़ की पत्नी कौन हैं? जेनिफर वेड के बारे में सब कुछ जानें

जॉन क्लीज़ ने 2012 में अपनी पत्नी जेनिफर वेड से विवाह किया। जॉन क्लीज़ की पत्नी जेनिफर वेड के बारे में जानने योग्य सब कुछ यहां है।

पैटन ओसवाल्ट की पत्नी कौन है? मेरेडिथ सेलेन्गर के बारे में सब कुछ

पैटन ओसवाल्ट की पत्नी कौन है? मेरेडिथ सेलेन्गर के बारे में सब कुछ

पैटन ओसवाल्ट ने 2017 में अपनी पत्नी, साथी अभिनेत्री मेरेडिथ सालेंगर से शादी की। यहां पैटन ओसवाल्ट की पत्नी मेरेडिथ सालेंगर के बारे में जानने योग्य सब कुछ है।

माइकल सी. हॉल की पत्नी कौन है? मॉर्गन मैकग्रेगर के बारे में सब कुछ

माइकल सी. हॉल की पत्नी कौन है? मॉर्गन मैकग्रेगर के बारे में सब कुछ

माइकल सी. हॉल की शादी 2016 से उनकी पत्नी मॉर्गन मैकग्रेगर से हुई है। माइकल सी. हॉल की पत्नी के बारे में जानने के लिए यहां सब कुछ है।

जॉन ओलिवर की पत्नी कौन है? केट नोर्ले के बारे में सब कुछ

जॉन ओलिवर की पत्नी कौन है? केट नोर्ले के बारे में सब कुछ

जॉन ओलिवर और उनकी पत्नी केट नोर्ले की शादी 2011 से हुई है। जॉन ओलिवर की पत्नी के बारे में जानने के लिए यहां सब कुछ है।

सर्वनाम सुपर डरावने हैं

यह मुझ पर अचानक प्रहार करता है जैसा कि यह अक्सर करता है यह फिर से बीच का रास्ता है <नहीं, वह नहीं जो प्रशांत में आप मैरून हैं, जो कार्निवल में है> हर हेडलाइन जोर से… ..

अपने लेखन कौशल में सुधार करने के 3 सिद्ध तरीके

ऐसा करने में आपकी मदद करने के लिए लेखन के लाभ, और रणनीतियाँ

अपने लेखन कौशल में सुधार करने के 3 सिद्ध तरीके

2022 में, GPT-3 के जारी होने के साथ, लेखन कौशल कम महत्वपूर्ण होता जा रहा है। एआई के साथ, खराब लेखन वाले लोग भी गुणवत्तापूर्ण कर्मचारी तैयार कर सकते हैं।

द स्लो इरोसियन: अनवीलिंग द वे तरीके पीपल वेस्ट अवे अवे करियर

द स्लो इरोसियन: अनवीलिंग द वे तरीके पीपल वेस्ट अवे अवे करियर

आज की तेज-तर्रार और प्रतिस्पर्धी दुनिया में, किसी का करियर व्यक्तिगत विकास, वित्तीय स्थिरता और समग्र जीवन संतुष्टि में महत्वपूर्ण भूमिका निभाता है। हालांकि, कई लोग खुद को ठहराव और असंतोष के एक अथक चक्र में फंसा हुआ पाते हैं, धीरे-धीरे अपने पेशेवर जीवन को बर्बाद कर रहे हैं।

क्या एक पॉडकास्ट प्रभावशाली बनाता है?

क्या एक पॉडकास्ट प्रभावशाली बनाता है?

पिछले हफ्ते मैंने एक प्रेस विज्ञप्ति देखी, जिसे PressGazette (एक ब्रिटिश मीडिया समाचार वेबसाइट) के माध्यम से भेजा गया था। लेख ने घोषणा की कि एकास्ट, स्कैंडी पॉडकास्ट होस्टिंग और विज्ञापन कंपनी, पॉडकास्टिंग में "शायद सबसे प्रभावशाली" प्रकाशकों के एक संघ का नेतृत्व करेगी।

Language