יצירת הצללת שטח מותאמת אישית באחדות

במדריך זה, ניצור הצללה שטח מותאמת אישית ב-Unity כדי לתת לשטח שלך טקסטורות ותאורה מציאותיים יותר. גישה זו מאפשרת ביצועים טובים יותר ושליטה על האופן שבו השטח מקיים אינטראקציה עם אורות, צללים והשפעות סביבתיות אחרות. נסקור את הגדרת הצללה, השימוש בו עם מערכת השטח של Unity, וביצוע התאמות לביצועים מיטביים.

1. הגדרת השטח

לפני שנצלול לתוך יצירת הצללה, בוא נתקין תחילה את השטח ב Unity:

  1. ב-Unity, עבור לתפריט GameObject ובחר 3D Object > Terrain.
  2. זה יוסיף אובייקט שטח חדש לסצנה שלך. אתה יכול להתאים את הגודל, הגובה והגדרות אחרות שלו במפקח השטח.
  3. לאחר יצירת השטח, ניתן לצייר עליו באמצעות הכלי Paint Texture במפקח. אבל לעת עתה, השאר אותו ריק מכיוון שנחיל הצללה מותאמת אישית.

2. יצירת הצללת השטח

עכשיו בואו ניצור את הצללת השטח המותאמת אישית. בצע את השלבים הבאים:

  1. לחץ לחיצה ימנית בחלון Project ובחר Create > Shader > Standard Surface Shader.
  2. תן שם ל-shader 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. החלת ה-Shader על השטח

לאחר יצירת הצללה, עליך ליישם אותו על חומר השטח:

  • לחץ לחיצה ימנית בחלון הפרויקט ובחר Create > Material. תן שם לחומר זה TerrainMaterial.
  • ב-Material Inspector, לחץ על התפריט הנפתח Shader ובחר Custom > TerrainShader.
  • הקצה טקסטורות עבור MainTex ו-BumpMap ב-Material Inspector.
  • כעת, הקצה את החומר הזה לשטח שלך על ידי בחירת אובייקט השטח, מעבר ל-מפקח השטח, והגדרת ה-TerrainMaterial תחת הקטע Materials.

4. התאמה של ה-Shader לביצועים

כדי להבטיח שההצללה תפעל בצורה חלקה, במיוחד בשטחים גדולים, אנו יכולים לשנות כמה הגדרות:

  • הורד את הרזולוציה של המפה הרגילה או השתמש במפה פשוטה כדי להפחית את עומס ה-GPU.
  • השבת את כל התכונות של הצללה שאינך משתמש בהן (כמו מיפוי פרלקס או אפקטי תאורה נוספים).
  • השתמש במערכת Terrain LOD המובנית של Unity כדי להתאים באופן דינמי את רמת הפירוט בחלקים מרוחקים של השטח.

5. התאמות ובדיקות סופיות

לאחר החלת הצללה והקמת השטח, בדוק אותו בתנאי תאורה שונים. אתה יכול להתאים את המאפיינים Specular ו-Smoothness של הצללה כדי לראות כיצד הם משפיעים על המראה הכללי של השטח שלך בסביבות שונות.

מַסְקָנָה

עם הצללה שטח מותאמת אישית, אתה יכול לשפר את הנאמנות החזותית של השטח שלך תוך שמירה על שליטה על הביצועים. אל תהסס להרחיב על הצללה זו על ידי הוספת תכונות נוספות כמו מרקמי פרטים, מיפוי תלת מישורי, או טסל.