Ray Tracing (ışın izleme) Microsoft'un değil. Animasyon yapımında çok uzun yıllardır kullanılan, bir kaç stüdyo tarafından geliştirilmiş, eski bir matematiksel yaklaşım. Microsoft'un yaptığı şey, bunu alıp oyunlarda kullanilabilsin diye DirectX kütüphanelerine dahil etmek. Böylece bir oyun firması oyununa Ray Tracing ekleyince hesaplamaları ekran kartına yaptırmak (hem de ek yazılım yüklemeden) mümkün olacak. Aksi takdirde DirectX içinde olmayan bir grafik hesabı ancak işlemci ile yapılmak zorunda olduğu için çok çok yavaş, ve hatta imkansız olurdu.
Ancak ışını "izlemenin" ya da gideceği yeri hesaplamanın bir sürü farklı yöntemi var. Yani matematik problemi gibi düşünürsek, çözüme ulaşmanın birden fazla yolu var. O da hesabı yapacak oyun ve firmaya kalmış bir şey.
DirectX kütüphaneleri sadece input alırlar ve input'un karşılığını yaparlar. Örneğin, DirectX gölgenin nasıl yapılacağını biliyor olsun. Artık ihtiyacı olan; ona birinin gelip "şuraya, şu boyutta, şu şekilde, şuradan şuraya uzayan, kenarları % şu kadar bulanık, karanlık yüzdesi şu kadar bir gölge çiz" demesi.
Şöyle düşünün; siz 3 boyutlu bir dikdörtgenler prizmasını nasıl resmedeceğinizi biliyorsunuz, bense onun boyutlarını hesaplıyorum. Size dönüp, "köşe koordinatları a, b, c, d, e, f, g, h olan prizmayı çizin" diyorum. Siz tarife göre çiziyorsunuz. Ben sizin 3 boyutlu bir şey kafanızda nasıl canlandırdığınızı, onu 2 boyutlu bir kağıda nasıl çizdiğinizi bilmiyorum, bununla ilgilenmiyorum. O sizin hüneriniz. Hesapları yapmak da benim işim. Siz de bana o sayıları nereden bulduğumu sormuyorsunuz.
Directx de bunu yapar, hesaplama işine karışmaz. O, matematiksel sonucu görüntüye dönüştürme yöntemlerini içerir ve ekran kartı sürücüsü ile ortak çalışıp görüntünün son halini çıkarır.
DirectX içindeki Ray Tracing de öyle. Siz ona "buradan buraya kadar şu tonda açılan bir kırmızı ışık düşüyor" diye bilgiyi verirsiniz. O da ekran kartı ile ortak çalışıp o rengi oraya işler. Işığın oraya nasıl düştüğünü nasıl ve hangi yöntemle hesapladığınızı sormaz.
Eğer dilerseniz, kullanmanız üzere kendi kaynak kodunda türlü yöntemlerin doküman ve tavsiyelerini içerir, ama kullanıp kullanmamak size kalmıştır.
Nvidia da hesap için kendi yöntemini (ve donanımını) kullanıyor. Hatta yöntemin çalışma biçimi, bugün bütün oyunlarda poligon bazlı iç içe geçme hesabına (particle collision) çok benzer bir metod. İlk Doom oyunu zamandan beri, kurşunun düşmana ulaşıp ulaşamadığını belirlemek için kullanılıyor. Işık her ilerlediğinde geometrik alanın arka tarafı hesaptan çıkarıldığı için (çok basite indirgeyip anlattım, aslında fazlası var ama konu dışı olmasın) her yeni hesaplama, bir öncekinin yarısı kadar zorlu oluyor. Yani ışığın varacağı yere doğru hesap iyice kolaylaşıyor. Bunu da özel bir donanımla yapınca işlem nispeten hızlı bir şekilde sonuca ulaşıyor.
Cry Engine demosunda kullanılan Ray Tracing teki ışığın yönünü hesaplama yöntemi, Nvidia'nın kullandığı yöntem değil. CryTek'e patentli, başka bir yöntem. Sonuç aynı olsa da gidiş yolu farklı yani