Bilgisayar Grafiklerinin Matematiksel Temelleri

Bilgisayar üzerinde grafik ve modelleme çalışmalarının tamamının temelinde, Bilgisayar – Grafik mantığının matematiksel modeller üzerine inşa edilmesi durumu vardır. Her bilgisayar grafiği birim olarak noktalardan oluşur. Eğer doğru renge sahip noktalar, uygun sırada bir araya getirilirse kullanıcı için anlamlı bilgisayar grafikleri oluşur. Bu yolla çizgiler, nesneler oluşturulabilir. Her grafik ya da şekil, kendisini oluşturan noktalar kullanılarak biçimlendirilir. Bu işlemlerin gerçekleştiği yer bilgisayar olunca, işlem temeli sadece matematiksel modellerdir. Örnek olarak iki boyutlu bir bilgisayar grafiğini (çizgi) oluşturan noktaların matematiksel gösterimi Şekil 1’de gösterilmiştir. Bilgisayar üzerinde görülen basit bir çizgiden, karmaşık grafiklere kadar her görüntü o görüntüyü oluşturan çizgiler ve o çizgileri belirleyen koordinat noktalarından oluşur. Her noktanın iki ya da üç boyutlu uzayda bulunduğu yeri belirleyen Satır ve Sütun adı verilen iki değerden oluşan ve [X Y] biçiminde gösterilen koordinatları vardır. Boyut üçe çıktığında ise, bu bilgilere Derinlik eklenir ve [X  Y  Z] biçiminde gösterilir. İki ve üç boyutlu grafikler noktaları aracılığı ile uzayda biçim değiştirirler.

Şekil 1. İki Noktadan Oluşan İki Boyutlu Bir Bilgisayar Grafiği (Çizgi)

Yer değiştirme, ölçekleme ve açısal dönme gibi birçok işlem iki boyutlu grafikler üzerinde olduğu gibi üç boyutlu grafiklerde de noktalar üzerinden gerçekleşir. Denklem 1, doğruyu oluşturan noktaların iki boyutlu uzaydaki biçim değiştirme matrisi ile çarpılarak, yeni nokta koordinatının elde edilme işlemini göstermiştir. Yer değiştiren noktaların tekrar birleştirilmesiyle, Şekil 1’deki iki noktadan oluşan doğru tekrar elde edilir. (Mathematical Elements For Computer Graphics, Rogers & Adams, 2nd Edition, 1990).

Nokta koordinatlarının basit bir biçim değiştirme matrisi ile çarpılması sonucunda, nokta, bulunduğu uzayda yer değiştirir. İki veya üç boyutlu grafiklerde bu işlem mantığından yararlanılarak animasyon yazılımları ya da modelleme uygulamaları geliştirilir. Şekil 2, üç boyutlu uzayda bir cismin konumlandırılmasını ve kendisini oluşturan noktaları göstermiştir.

Şekil 2. Üç Boyutlu Uzayda Konumlandırılmış Altı Noktalı Cisim (Prizma)

Üç boyutlu cisim grafiklerinin, uzayda yer değiştirmesi için kullanılan hesap matrisi, iki boyutlu grafiklerden biraz daha farklıdır. Kullanım şekli ve biçimi Denklem 2’de gösterilmiştir. Şekil 2’deki üç boyutlu cismi oluşturan tüm nokta koordinatları dizisi, tek tek şeklin yeni biçimini sağlayacak olan dönüşüm matrisi ile çarpıldıktan sonra, elde edilen yeni nokta koordinatları tekrar birleştirildiğinde, cismin istenen dönüşüme ulaştığı görülür (Mathematical Elements For Computer Graphics, Rogers & Adams, 2nd Edition, 1990).

İki ve üç boyutlu noktasal biçim değiştirme formüllerinde verilmiş olan, anahtar matrisler içerisinde kullanılan değişkenlerin her biri, kullanıldığı uzay modelinde farklı anlamlar taşır. Böylece nokta koordinat bilgileri üzerinde, matrislerdeki değişken değerlerini değiştirerek düzenlemeler gerçekleştirilir. Değişen nokta koordinatları, orijinal şekilde olduğu gibi yeniden ve sıra ile birleştirilen yeni noktalar, biçim değiştirme işleminin sonucu olan yeni iki ya da üç boyutlu görüntüyü oluştururlar. Üç boyutlu modellemelerde dikkat edilmesi gereken bir nokta, cismi oluşturan yüzeylerin boyanma sırasıdır. Şekil 2’deki prizma göz önüne alınırsa, P0, P1, P2, P3 noktaları bir yüzey oluşturur. Benzer mantıkla diğer noktalar da, cismi oluşturan diğer yüzeyleri belirler. Yüzeylerin birleşmesinden ise cisimler oluşturulur. Yüzeylerin belirlenip boyanması işleminde ise, öyle bir sıra belirlenmelidir ki, kullanıcının tamamen ya da kısmen gördüğü yüzeyler doğru bir şekilde tespit edilmeli ve o şekilde boyanmalıdır. Bu işlem Yüzey Eliminasyonu olarak adlandırılabilir. Cismi oluşturan yüzeyler doğru bir sırada boyanır. Kendisini oluşturan noktaların Derinlik (Z) değerleri ortalaması alındığında ilk çizilecek yüzey, derinlik (Z) ortalaması en küçük olandır. Diğer bir ifadeyle, kullanıcıya en uzak olan ve en geride olan yüzey ilk sırada çizilir. Diğer yüzeyler de sırası geldikçe, çakışan yerler birbiri üzerine gelecek şekilde çizilmeye devam edilir. Yüzey eliminasyonu işleminde amaç, çakışan bölgelerde hangi yüzeyin hakim olacağını belirlemektir. İşletilen görsel bir mantık yardımı ile bu problem ortadan kalkar. Yüzeylerin çizim sırası ne kadar doğru belirlenirse, cisim gerçeğe o kadar yakın görüntülerle elde edilir. Şekil 3, iki ve üç boyutlu grafik modelleme tekniklerinin uygulama sonuçlarını göstermiştir.

Aşağıda, C++ kaynak kod parçaları ile ifade edilen kısımda, üç boyutlu bir katı modelin derece birimi ile açısal parametre transferi yoluyla, radyan dönüşümü sağlanarak, X-Y-Z eksenleri etrafında dönüşüm matrisleri ile çarpılması ve elde edilen yeni nokta koordinatlarının Sonuc matrisinden Sekil3B matrisine tekrar geri yüklenmesi gösterilmiştir. Orijinal Sekil3B matrisinin yerini alan yeni dönüşüm verilerini içeren matris, isteğe bağlı olarak, yüzeyler boyalı veya sadece çizili biçimde olan ekran görüntüsü Şekil 4 te gösterilmiştir. Bu matematiksel ve mantıksal temeller kullanılarak ticari veya eğitim amaçlı birçok yazılım geliştirilebilir.

Şekil 4.a. Üç Boyutlu Modelin Yüzey Eliminasyonu ile Ekranda Çizimi

Şekil 4.b. Üç Boyutlu Modelin (Küresel Harmonikler) Yüzey Eliminasyonu ile Ekranda Çizimi

EMRE UZUN