यूनिटी में कस्टम टेरेन शेडर बनाना

इस ट्यूटोरियल में, हम आपके इलाके को ज़्यादा यथार्थवादी बनावट और रोशनी देने के लिए Unity में एक कस्टम टेरेन शेडर बनाएंगे। यह दृष्टिकोण बेहतर प्रदर्शन और इस बात पर नियंत्रण की अनुमति देता है कि इलाका रोशनी, छाया और अन्य पर्यावरणीय प्रभावों के साथ कैसे इंटरैक्ट करता है। हम शेडर को सेट अप करना, इसे यूनिटी के टेरेन सिस्टम के साथ उपयोग करना और इष्टतम प्रदर्शन के लिए समायोजन करना शामिल करेंगे।

1. भूभाग की स्थापना

शेडर निर्माण में आगे बढ़ने से पहले, आइए सबसे पहले Unity में टेरेन सेट अप करें:

  1. Unity में, GameObject मेनू पर जाएं और 3D ऑब्जेक्ट > टेरेन चुनें।
  2. इससे आपके सीन में एक नया टेरेन ऑब्जेक्ट जुड़ जाएगा। आप टेरेन इंस्पेक्टर में इसका आकार, ऊंचाई और अन्य सेटिंग्स समायोजित कर सकते हैं।
  3. एक बार जब भूभाग बन जाता है, तो आप इंस्पेक्टर में Paint Texture टूल का उपयोग करके उस पर पेंट कर सकते हैं। लेकिन अभी के लिए, इसे खाली छोड़ दें क्योंकि हम एक कस्टम शेडर लागू करेंगे।

2. टेरेन शेडर बनाना

अब चलिए कस्टम टेरेन शेडर बनाते हैं। इन चरणों का पालन करें:

  1. Project विंडो में राइट-क्लिक करें और Create > Shader > Standard Surface Shader चुनें।
  2. शेडर का नाम CustomTerrainShader रखें और इसे अपने पसंदीदा कोड संपादक में खोलें।

डिफ़ॉल्ट शेडर कोड को निम्नलिखित से बदलें:

Shader "Custom/TerrainShader"
{
    Properties
    {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _BumpMap ("Normal Map", 2D) = "bump" {}
        _Specular ("Specular", Color) = (0.2, 0.2, 0.2, 1)
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 200

        CGPROGRAM
        #pragma surface surf Standard fullforwardshadows

        sampler2D _MainTex;
        sampler2D _BumpMap;
        fixed4 _Specular;

        struct Input
        {
            float2 uv_MainTex;
            float3 worldNormal;
        };

        void surf (Input IN, inout SurfaceOutputStandard o)
        {
            fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
            o.Albedo = c.rgb;
            o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex));
            o.Specular = _Specular;
            o.Smoothness = 0.5;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

3. इलाके पर शेडर लागू करना

शेडर बनाने के बाद, आपको इसे टेरेन सामग्री पर लागू करना होगा:

  • प्रोजेक्ट विंडो में राइट-क्लिक करें और Create > Material चुनें। इस मटेरियल का नाम TerrainMaterial रखें।
  • मटेरियल इंस्पेक्टर में, Shader ड्रॉपडाउन पर क्लिक करें और Custom > TerrainShader चुनें।
  • मटेरियल इंस्पेक्टर में MainTex और BumpMap के लिए बनावट निर्दिष्ट करें।
  • अब, टेरेन ऑब्जेक्ट का चयन करके, टेरेन इंस्पेक्टर पर जाकर, और मैटेरियल्स अनुभाग के अंतर्गत टेरेनमटेरियल सेट करके इस सामग्री को अपने टेरेन को असाइन करें।

4. प्रदर्शन के लिए शेडर में बदलाव करना

यह सुनिश्चित करने के लिए कि शेडर सुचारू रूप से चले, विशेष रूप से बड़े भूभागों पर, हम कुछ सेटिंग्स में बदलाव कर सकते हैं:

  • GPU लोड को कम करने के लिए सामान्य मानचित्र का रिज़ोल्यूशन कम करें या सरलीकृत रिज़ोल्यूशन का उपयोग करें।
  • शेडर की उन सुविधाओं को अक्षम करें जिनका आप उपयोग नहीं कर रहे हैं (जैसे पैरालैक्स मैपिंग या अतिरिक्त प्रकाश प्रभाव)।
  • इलाके के दूरस्थ भागों पर विवरण के स्तर को गतिशील रूप से समायोजित करने के लिए यूनिटी के अंतर्निहित टेरेन LOD सिस्टम का उपयोग करें।

5. अंतिम समायोजन और परीक्षण

एक बार शेडर लागू हो जाने और टेरेन सेट हो जाने के बाद, इसे अलग-अलग प्रकाश स्थितियों में परखें। आप शेडर के Specular और Smoothness गुणों को समायोजित करके देख सकते हैं कि वे विभिन्न वातावरणों में आपके टेरेन के समग्र स्वरूप को कैसे प्रभावित करते हैं।

निष्कर्ष

कस्टम टेरेन शेडर के साथ, आप अपने टेरेन की विज़ुअल फ़िडेलिटी को बढ़ा सकते हैं और साथ ही प्रदर्शन पर नियंत्रण बनाए रख सकते हैं। डिटेल टेक्सचर, ट्रिपलैनर मैपिंग या टेसेलेशन जैसी अतिरिक्त सुविधाएँ जोड़कर इस शेडर का विस्तार करने के लिए स्वतंत्र महसूस करें।

लिंक
Unity 6