CodeBlanks Logo Icon CodeBlanks

Baked ve realtıme

Baked ve realtıme ışık arasındaki farkı öğrenirsin.

Baked ve Realtime

Işıklar iki şekilde hesaplanabilir: Realtime (gerçek zamanlı) ve Baked (pişirilmiş). Realtime ışık her karede yeniden hesaplanır ve hareket eden nesnelere anında tepki verir. Baked ışık ise oyun başlamadan önce bir kez hesaplanır ve bir lightmap dosyasına yazılır.

isik.lightmapBakeType = LightmapBakeType.Realtime;
isik.lightmapBakeType = LightmapBakeType.Baked;

Baked ışık oyun sırasında değişmez ama çok daha hızlı çalışır.

Lightmap

Lightmap, pişirilmiş ışık ve gölgelerin saklandığı dokudur. Baked ışık bu dokuya yazılır ve oyun sırasında sadece okunur. Böylece sahne ne kadar karmaşık olursa olsun ışık hesapları oyunu yavaşlatmaz.

isik.lightmapBakeType = LightmapBakeType.Baked;
// result: Lightmap file

Değişmeyen nesneler için Baked, hareketli nesneler için Realtime uygundur.

Uygulama Işık modunu ayarla

IsikModu sınıfında public string mod alanını "Realtime" değeriyle tanımla ve int kare alanını ekle. Start metodu içinde mod değerini "Baked" yap ve Debug.Log ile "Pisirme modu: " metnini mod ile birleştirerek yazdır. Update metodu içinde kare sayacını her karede bir artır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class IsikModu : MonoBehaviour
{
    // public string mod alanini "Realtime" degeriyle tanimla
    // int kare alanini tanimla

    void Start()
    {
        // mod degerini "Baked" yap
        // "Pisirme modu: " metnini mod ile birlestirip yazdir
    }

    void Update()
    {
        // kare sayacini bir artir
    }
}

Örnek çözüm

Player.cs
using UnityEngine;

public class IsikModu : MonoBehaviour
{
    public string mod = "Realtime";
    int kare;

    void Start()
    {
        mod = "Baked";
        Debug.Log("Pisirme modu: " + mod);
    }

    void Update()
    {
        kare++;
    }
}

Beklenen çıktı

Pisirme modu: Baked

Soru ve cevaplar

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

1 Oyun sırasında hareket eden bir karakterin gölgesinin anında değişmesi isteniyorsa hangi ışık hesaplaması kullanılmalıdır?

  • Lightmap dosyası
  • Ambient ışık
  • Realtime ışık Doğru cevap
  • Baked ışık

Açıklama: Realtime ışık her karede yeniden hesaplandığı için hareketli nesnelerin gölgeleri anında güncellenir.

2 Işığı pişirilmiş yap

Soru
isik.lightmapBakeType = LightmapBakeType.____;
Cevap
isik.lightmapBakeType = LightmapBakeType.Baked;

Açıklama: LightmapBakeType.Baked, ışığın oyun başlamadan pişirilmesini sağlar.

3 Işık hesaplama türleri

Kavram Anlamı
Realtime ışık Her karede yeniden hesaplanır
Baked ışık Oyun başlamadan bir kez hesaplanır
Lightmap Pişirilmiş ışığın saklandığı doku
Hareketli nesne Realtime ışık kullanır

Orta seviye bölümündeki tüm dersler