Tworzenie prostego modułu cieniującego trawę w Unity

Ten samouczek poprowadzi Cię przez proces tworzenia podstawowego modułu cieniującego trawę w Unity. Moduły cieniujące trawę są powszechnie używane przy tworzeniu gier do symulacji wyglądu trawy na różnych powierzchniach, takich jak teren lub liście.

Krok 1: Utwórz nowy moduł cieniujący

W Unity przejdź do folderu Assets w swoim projekcie.

Kliknij prawym przyciskiem myszy i wybierz Utwórz -> Shader -> Standardowy Shader powierzchniowy.

Krok 2: Zmień nazwę i otwórz moduł cieniujący

Zmień nazwę modułu cieniującego na np. GrassShader.

Kliknij dwukrotnie moduł cieniujący, aby otworzyć go w preferowanym edytorze kodu.

Krok 3: Zdefiniuj właściwości modułu cieniującego

U góry kodu modułu cieniującego zdefiniuj właściwości, które chcesz udostępnić w celu dostosowania. Na przykład:

Properties {
    _MainTex ("Texture", 2D) = "white" {}
    _Color ("Color", Color) = (1,1,1,1)
}

Krok 4: Zadeklaruj dane wejściowe modułu cieniującego

Zadeklaruj struktury wejściowe dla shaderów wierzchołków i fragmentów:

struct appdata {
    float4 vertex : POSITION;
    float2 uv : TEXCOORD0;
};

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

Krok 5: Shader wierzchołków

Napisz moduł cieniujący wierzchołków, aby przekształcić wierzchołki i przekazać dane do modułu cieniującego fragmenty:

v2f vert (appdata v) {
    v2f o;
    o.vertex = UnityObjectToClipPos(v.vertex);
    o.uv = v.uv;
    return o;
}

Krok 6: Fragment Shader

Napisz moduł cieniujący fragmenty, aby obliczyć ostateczny kolor każdego piksela:

fixed4 frag (v2f i) : SV_Target {
    // Sample the texture
    fixed4 col = tex2D(_MainTex, i.uv);
    
    // Apply color tint
    col *= _Color;
    
    return col;
}

Krok 7: Skonfiguruj właściwości renderowania

Dodaj znaczniki na górze kodu modułu cieniującego, aby określić kolejkę renderowania i typ renderowania:

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

Krok 8: Zapisz i zastosuj moduł cieniujący

Zapisz plik modułu cieniującego.

Wróć do Unity i wybierz materiał, do którego chcesz zastosować shader trawy.

W Inspektorze materiałów przypisz moduł cieniujący do materiału.

Krok 9: Ulepszaj i dostosowuj

Pobaw się zdefiniowanymi wcześniej właściwościami modułu cieniującego, aby uzyskać pożądany efekt trawy.

Możesz dostosować kolory, tekstury i inne parametry, aby trawa wyglądała bardziej realistycznie lub stylowo.

Krok 10: Zastosuj do obiektów z trawy

Nałóż materiał za pomocą modułu cieniującego trawę na obiekty trawiaste w scenie.

Wniosek

Utworzyłeś podstawowy moduł cieniujący trawę w Unity. Eksperymentuj z różnymi ustawieniami i technikami, aby uzyskać pożądany wygląd trawy.

Sugerowane artykuły
Tworzenie efektu filtra taśmy VHS w Unity
Recenzja pakietu Unity Asset Store - Planet Shader i Shadowing System
Tworzenie ekranu ładowania w Unity
Utwórz efekt pianki do myjki ciśnieniowej w Unity
Implementowanie efektów cząsteczkowych w jedności
Poradnik postprocessingu efektów obrazu w trybie noktowizyjnym dla Unity
Efekt hologramu w jedności