Rasterizasyon, Ray Tracing ve Dahası - Bilgisayarlarda Görüntü İşleme Teknikleri

Günümüzde bilgisayarlar hayatın her alanında kullanılmaktadır. Bilgisayarlarda en önemli tekniklerden biri de görüntü işleme teknikleridir. Bilgisayarda görüntü işleme teknikleri, bilgisayarlar tarafından her tür görüntünün(oyun, resim, video vs.) oluşturulması, işlenmesi ve görüntülenmesi için kullanılan tekniklerdir. Zaman ilerledikçe daha farklı ihtiyaçlar ortaya çıkmış ve yeni teknikler geliştirilmiştir. Özellikle Nvidia'nın RTX 20 serisi ile beraber tanıttığı Ray Tracing teknolojisi ile beraber insanların bilgisayarlarda görüntü tekniklerine olan ilgisi artmıştır. Bugün ise günümüzde kullanılan bilgisayar işleme tekniklerini size anlatacağım. Görüntü işlebilmek için üzerinde çalışabileceğiniz nesnelere ihtiyacımız var. O yüzden görüntü işleme tekniklerini anlatmadan önce daha iyi kavrayabilmek için bilgisayarda nesnelerin nasıl oluşturulduğuna ve algılandığına kısaca bakalım;

download.jpg

Üçgenler ile modellenmiş bir tavşan. Kullanılan şekil sayısı arttırılarak detay da arttırılabilir.

Günümüzde bilgisayarlar nesnelerin şeklini oluşturmak için üçgen, kare, daire, küp, silindir gibi basit şekillerden faydalanır. Bu basit şekillerin geneline primitive(ilkel) şekiller denir. Bu şekillerden en çok üçgen şekli çeşitli alanlarda kullanılır. Üçgenler ise bilişim alanında "triangle" olarak da isimlendirilebilir. Bu basit şekiller birleştirilerek istenen nesne ortaya çıkarılır. Bu tekniğin kullanılmasının en büyük sebebi sistem kaynaklarını daha verimli kullanmasıdır. Şekiller ile oluşturulan nesneler diğer tekniklere göre çok daha az işlem gücü harcar ve bu sayede görüntülerin gerçek zamanlı işlenmesi gereken oyun gibi durumlarda görüntü gerçek zamanlı olarak akıcı görüntüler oluşturulabilir. Dezavantajı ise o modellenen nesnenin tasarlanması için çok daha fazla zaman gerektirmesidir. Özellikle detaylar arttıkça daha fazla şekil kullanılması gerektiğinden modellenmek istenen nesnenin bir insan tarafından çizilip tasarlanması uzun zaman alabilir, bazı durumlarda istenen nesneyi istenen şekilde modelleyebilmek için bir nesne için birden fazla kez modelleme yapmak gerekebilir. Buna rağmen hızlı işlenmesi nedeniyle en çok kullanılan teknik budur. Nesnelerin modellenmesi için başka teknikler de bulunmaktadır fakat diğer teknikler çok fazla sistem kaynağı harcadığı için film endüstrisi veya mühendislik gibi alanlarda tercih edilmektedir. Biz ise daha çok günlük hayatta kullandığımız alanlardan yola çıkarak açıklayacağız. Görüntü oluşturulurken ise az önce anlattığım şekilde oluşturulan nesneler üzerine aşağıda bahsedeceğim teknikler uygulanarak görüntünün oluşturulması sağlanır. Nesnelerin nasıl oluşturulduğunu anladığımıza göre şimdi görüntünün nasıl oluşturulduğuna bakalım;

1- Rasterizasyon(Rasterization)

raytracing-raster2.png

Rasterizasyon tekniğini gösteren bir görsel. Çıkan görüntü çok basit olduğu için sonradan işlenerek gölgelendirme ve yansıma gibi diğer efektler uygulanır.

Rasterizasyon, ilkel şekillerden oluşturulmuş üç boyutlu nesnelerin iki boyutlu düzleme(Burada bu düzlem sizin ekranınız oluyor.) yansıtılması olarak tanımlanabilir. Özellikle işlem gücünden tasarruf ettiği için en çok kullanılan yöntemdir. Nesneleri oluşturan ilkel şekillerin köşeler seçilir ve iki boyutlu düzleme aktarılır. İki boyutlu düzlemde köşeler birleştirilir ve içi doldurularak görüntü elde edilir. Bu yöntem çok basit bir yöntem olup sadece nesnenin şeklini verir yani sadece üç boyutlu düzlemdeki görüntüyü iki boyutlu düzleme aktarır. Ortaya çıkan görüntüde yansımalar veya gölgeler görüntüyü oluşturan detaylar bulunmaz. Shader gibi ek işlemlerden sonra ortaya çıkan görüntüye gölgeler ile yansımalar eklenir ve istenen görüntü ortaya çıkar. Diğer görüntü işleme tekniklerine göre daha az detay sunar.

2- Işın Yansıtma(Ray Casting)

figure1.gif

Işın yansıtma tekniğini gösteren bir görsel. Işınlar ekrana şekli rasterizasyon tekniğine göre daha doğru bir şekilde oluştursa da gölgelendirme gibi efektler sonradan farklı teknikler yardımıyla yapılması gereklidir.

Işın Yansıtma, her bir piksel için bir ışın göndererek görüntüyü oluşturma olarak tanımlanabilir. Işın İzleme yönteminin ilkel hali olarak da düşünülebilir. Bu yöntemde ekranınızdaki her bir piksel için bir ışın oluşturulur ve sahneye doğru gönderilir, çarptığı yerdeki kaplamaya ve piksel ile çarpan nokta arasındaki uzaklık hesaplanarak ekranda görüntü oluşturulur. Rasterizasyondan farkı, rasterizasyonda nesnenin köşeleri iki boyutlu düzleme aktarılıp doldurulurken ışın yansıtmada ise her piksel için ayrı bir ışın gönderilip aradaki uzaklık ve renk ile görüntünün oluşturulmasıdır. Işın izleme tekniği ile farkına değinecek olursak; ışın izlemede gönderilen ışın, ışık kaynağına dönene kadar tekrar tekrar hesaplanır iken ışın yansıtma tekniğinde ise ışın çarptığı yerden sonra tekrar işlenmez, çarptığı yer baza alınarak işlenir. Işın yansıtma tekniğinde nesneler ekrana daha yüksek doğrulukla çizilse de bu teknikle yansımalar ve gölgeler oluşturulamaz. Rasterizasyonda olduğu gibi shader gibi tekniklerle oluşturulan görüntünün tekrar işlenmesi gereklidir. Eski Wolfenstein ve Comanche oyun serilerinde kullanılmıştır fakat uygulaması kolay olsa da etkili bir yöntem olmadığı için günümüzde kullanılmamaktadır/kullanım alanı çok sınırlıdır.

3- Işın İzleme(Ray Tracing)

Illustration-of-basic-ray-tracing.png

Işın izleme tekniğini gösteren bir görsel. Görseldeki kamera monitörü, çizgiler ise ışınları göstermektedir. Bu görselde ışınlar ışık kaynağından kameraya doğru gitmekte fakat günümüzde işlem gücünden tasarruf etmek ve ekrana gelmeyen gereksiz ışınları işlememek için tam tersi şekilde gönderilir.

Işın İzleme, her bir piksel için bir ışın oluşturup, gönderip nesnelere çarpa çarpa ışık kaynağına ulaşana kadar hesaplayarak görüntüyü oluşturma tekniğidir. Işın yansıtma tekniğinden farklı olarak gönderilen ışın, ışık kaynağına kadar takip edildiği için nesnelerle beraber gölgelendirmenin ve yansımanın da oluşmasını sağlar. Işınların her çarptığı noktadan ışık kaynağına/kaynaklarına ayrıca ışınlar göndererek her ışının sektiği noktaların ışık kaynakları tarafından nasıl etkilendiği hesaplanır ve hesaplanan renk ekranda gösterilir. Işığın hareketi de hesaplandığı için ve ışık kaynağı gibi birçok etken alındığı için çok daha iyi görüntüler ortaya çıkarabilir. Işın izleme tekniği ile ışığın kırılması, ışığın yansıması ve sert gölgeler oluşturulabilirken yumuşak gölgeler üretemez. Yumuşak gölgelendirme için küresel aydınlatma gibi hilelerden faydalanılır. Çok fazla işlem gücü istediği için film endüstrisi gibi profesyonel alanlarda kullanılır. Oyun sektöründe ise ışın izleme tekniği gerçek zamanlı işlenemeyecek kadar güç gerektirdiği için çok kısıtlı olarak sadece yansımalarda kullanılır. Sahnenin çoğunluğu eskiden olduğu gibi rasterizasyon tekniği ile oluşturulur, yansımalarda ise efekt olarak ayrıca uygulanır. Hem ışık kaynağından ekrana, hem de ekrandan ışık kaynağına doğru ışınlar gönderilebilir. Işık kaynağından gönderilen ışınların hepsi ekrana ulaşmayacağı için hesaplanması boşa işlem gücü tükettiğinden ışınlar ekrandan gönderilerek ışık kaynağına ulaştırılır.

4- Yol İzleme(Path Tracing)

Illustration-of-path-tracing.png

Yol izleme tekniğini gösteren bir görsel. Işın izlemeden farklı olarak önceki seken noktaların hesaplamaları ve ışığın boyutu gibi etkenler de hesaba katılarak daha gerçekçi görüntüler oluşturulabiliyor.

Yol İzleme, her bir piksel için ışın oluşturup, gönderip nesnelere çarpa çarpa ışık kaynağına kadar ulaşana kadar fakat önceden gelen bilgileri de hesaplayarak görüntüyü oluşturma tekniğidir. Işın izleme tekniği ile çok benzer olsa da ışın izleme tekniğinde ışığın sektiği her nokta için ayrı ayrı hesaplama yapılırken ve önceki ışınların hesaplaması sonraki ışınların hesaplamasını etkilemez iken yol izleme tekniğinde seken noktalarda önceden seken ışınlar için yapılan hesaplamalar da(örnek olarak önceki seken noktada ışık ne renk, yüzey nasıl gibi bilgiler) işlemin içine katılarak hesaplama yapılır. Yol izleme tekniğinde sadece ışık kaynağının yeri değil, ışığın boyutu gibi etkenleri de dikkate alarak hesaplama yapar. Eklenen bu detaylar ile günümüzde ışığın en doğru şekilde işlenmesini sağlayan tekniktir. Bu teknikle yumuşak gölgelendirme yapmakta mümkündür. Işın izleme teknolojisinden de fazla kaynak istediği için çok büyük film şirketleri tarafından yüksek kalite animasyonlarda kullanılmaktadır. Aynı şekilde ışın izleme tekniğinde olduğu gibi ışık kaynağından gönderilen ışınların hepsi ekrana ulaşmayacağı için hesaplanması boşa işlem gücü tükettiğinden ışınlar ekrandan gönderilerek ışık kaynağına ulaştırması tercih edilir.

Yazımı okuduğunuz için teşekkür ederim. Lütfen yazımı değerlendirmeyi, sorularınız varsa sormayı, eksiklerim veya yanlışlarım varsa bildirmeyi unutmayın. Diğer blog yazılarımı okumak istiyorsanız bu cümleye tıklayarak ulaşabilirsiniz.

Son incelemeler

Harika makale. Kısa ve öz anlatılmış.
Son düzenleyen: Moderatör:

Yorumlar

Gösterilecek yorum bulunamadı.

Blog girdisi detayları

Ekleyen
Cruslan
Görüntüleme
117
İncelemeler
1
Son güncelleme
Değerlendirme
5,00 yıldız 1 değerlendirme

Teknoloji kategorisindeki diğer girdiler

Cruslan adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Yukarı