CodeBlanks Logo Icon CodeBlanks

Vertex ve fragment

Vertex ve fragment fonksiyonlarının rollerini öğrenirsin.

Vertex Shader'ın Rolü

Vertex Shader, grafik boru hattının ilk programlanabilir aşamasıdır. 3D nesnenin her bir köşe noktası (vertex) için bir kez çalışarak köşeleri yerel model uzayından ekran izdüşüm uzayına taşır (MVP dönüşümü).

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

Dalgalanan bayraklar, rüzgarda eğilen ağaçlar veya karakter deformasyonları vertex shader aşamasında konum değiştirilerek yapılır.

Fragment Shader ve Piksel Renklendirme

Köşeler işlendikten sonra rasterizer aşaması yüzeyi ekrandaki piksellere (fragment) böler. Ardından Fragment Shader devreye girerek her bir pikselin nihai RGBA rengini hesaplar.

#pragma fragment frag
fixed4 frag (v2f i) : SV_Target
{
    fixed4 col = tex2D(_MainTex, i.uv);
    return col;
}

Doku örnekleme, parlama efektleri, sis ve renk tonlamaları fragment shader aşamasında hesaplanarak monitöre yansıtılır.

Uygulama Vertex ve fragment boru hattı

Bir Start metodu tanımla. İçinde int vertexSayisi = 4; tanımla ve konsola "Kose sayisi: " + vertexSayisi yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class PipelineLogger : MonoBehaviour
{
    // Start icinde vertexSayisi tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class PipelineLogger : MonoBehaviour
{
    void Start()
    {
        int vertexSayisi = 4;
        Debug.Log("Kose sayisi: " + vertexSayisi);
    }
}

Beklenen çıktı

Kose sayisi: 4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir 3D nesnenin köşe noktalarını model uzayından ekran izdüşüm uzayına dönüştürmekten hangi shader aşaması sorumludur?

  • Fragment Shader
  • Vertex Shader Doğru cevap
  • Audio Mixer
  • Collider2D

Açıklama: Köşe noktalarının konum dönüşümü ve geometrik deformasyonları Vertex Shader aşamasında gerçekleştirilir.

2 Fragment direktifi

Soru
#pragma ____ frag
Cevap
#pragma fragment frag

Açıklama: Fragment shader fonksiyonunu derleyiciye bildirmek için '#pragma fragment' direktifi kullanılır.

3 Boru hattı kavramları

Kavram Anlamı
Vertex Shader Köşe konumlarını dönüştürür
Rasterizer Geometriyi piksellere böler
Fragment Shader Piksel renklerini hesaplar
SV_Target Nihai renk çıktısı semantiği

İleri seviye bölümündeki tüm dersler