Unity'de VHS Bant Filtresi Efekti Oluşturma

Oyun geliştirme alanında, retro görsellerin nostaljik özünü yakalamak popüler bir trend haline geldi. İzleyicileri büyülemeye devam eden ikonik görsel stillerden biri de VHS bant filtre efektidir. Bu efekt, eski VHS kasetlerin analog kusurlarını taklit ederek VCR ve video kaset çağında büyüyenler için bir nostalji duygusu uyandırıyor. Bu efekti Unity'de uygulamak, oyununuza ekstra bir sürükleyicilik katmanı ekleyerek geçmişi hatırlatan bir estetik yaratabilir.

Unity'de VHS bant filtre efektini elde etmek için görselleri değiştirmek amacıyla gölgelendiriciler kullanacağız. Gölgelendiriciler, GPU'daki grafiklerin gerçek zamanlı olarak değiştirilmesine olanak tanır ve bu da onları VHS bozulması ve aksaklık gibi efektler oluşturmak için ideal kılar. Aşağıda, bu etkiyi Unity projenizde uygulama adımları konusunda size rehberlik edeceğim.

1. Projenin Kurulumu

Koda dalmadan önce bir Unity projenizin kurulu olduğundan emin olun. Yeni bir proje oluşturun veya VHS bant filtresi efektini uygulamak istediğiniz mevcut bir projeyi açın.

2. Gölgelendiriciyi Oluşturma

İlk olarak, VHS efektini işlemek için oluşturulacak yeni bir gölgelendirici oluşturacağız. Proje pencerenize sağ tıklayın ve 'Create -> Shader -> Unlit Shader''e gidin. Gölgelendiriciye VHSTapeEffect gibi bir ad verin.

Yeni oluşturulan gölgelendirici dosyasını açın. VHS bant efektini elde etmek amacıyla görselleri değiştirmek için kod ekleyeceğiz. Aşağıda, VHS bant efektini simüle etmek için distorsiyon, pikselleşme, gürültü ve kaplama ekleyen temel bir gölgelendirici örneği verilmiştir:

Shader "Custom/VHSTapeEffect"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _DistortionStrength ("Distortion Strength", Range(0, 1)) = 0.1
        _NoiseStrength ("Noise Strength", Range(0, 1)) = 0.2
    }

    SubShader
    {
        Tags { "Queue"="Overlay" "RenderType"="Opaque" }

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

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

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

            sampler2D _MainTex;
            float _DistortionStrength;
            float _NoiseStrength;

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

            fixed4 frag (v2f i) : SV_Target
            {
                float2 uv = i.uv;
                uv += sin(uv * 500) * _DistortionStrength;
                uv += (frac(sin(dot(uv, float2(12.9898, 78.233))) * 43758.5453) - 0.5) * _NoiseStrength;

                fixed4 col = tex2D(_MainTex, uv);
                return col;
            }
            ENDCG
        }
    }
}

3. Gölgelendiriciyi Uygulamak

Gölgelendiriciyi bir malzemeye uygulamak için yeni bir malzeme oluşturun veya mevcut olanı kullanın. "VHSTapeEffect" gölgelendiriciyi malzemenin gölgelendirici yuvasına sürükleyin.

4. Kameraya Görüntü Efekti Uygula

Yeni bir boş oyun nesnesi oluşturun ve ona bir komut dosyası ekleyin. Komut dosyasına aşağıdaki kodu ekleyin:

using UnityEngine;

[RequireComponent(typeof(Camera))]
public class VHSTapeEffectController : MonoBehaviour
{
    public Material VHSMaterial;

    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        Graphics.Blit(source, destination, VHSMaterial);
    }
}
  • Bu betiği boş oyun nesnesine ekleyin ve oluşturduğunuz materyali betik denetçisindeki "VHSMaterial" alanına atayın.

5. Sahnenizi Test Edin

Son olarak Unity'de oynat tuşuna basın ve sahnenize uygulanan VHS bant efektini kamera aracılığıyla gözlemleyin.

Çözüm

Bu adımlarla Unity'de VHS bant filtresi efektini başarıyla uyguladınız. Oyununuzun nostaljik atmosferini daha da geliştirmek için farklı ayarlar ve ek özelliklerle denemeler yapın.

Önerilen Makaleler
Unity'de Basit Bir Çim Gölgelendirici Oluşturma
Unity'de Duraklatma Menüsü Oluşturma
Unity'de Yükleme Ekranı Oluşturma
Unity için Gece Görüşü Görüntü Efekti İşlem Sonrası Eğitimi
Unity'de Kazanan Ekran Kullanıcı Arayüzü Oluşturma
Unity'de Uçuş Simülatörleri Oluşturma
Unity Oyunlarına Zombi Nasıl Eklenir?