3D Bilgisayar Grafikleri
Transkript
3D Bilgisayar Grafikleri
3D Bilgisayar Grafikleri "3D" (Three Dimension = Üç Boyut) terimi, birçoğumuza yabancı gelmemektedir. 3D bilgisayar grafikleriyle yaratılmış video, her gün TV programlarında, reklamlarda ve filmlerde görülebilir. Coke reklamındaki karıncalar, "Jurassic Park" filmindeki dinozorlar ve "Titanic"'in batışı; bunların hepsi bilgisayarlar tarafından modellenmiştir. Film ve TV programlarından başka; bilgisayar oyunları, 3D bilgisayar grafiklerinde yepyeni bir diyar yaratıyor. Buna ünlü bir örnek, "Tomb Raider" serisindeki Lara Croft'tur. Karakterin 3D bilgisayar grafik teknolojisi ile ince detaylarda modellenmesi, Lara'ya başarılı hareketler sergileme imkanı sunuyor. Herhangi birisi, TV veya filmlerdeki 3D sahneler ile oyunlardaki 3D grafikler arasındaki farkı kolaylıkla açıklayabilir. Video uygulamaları için "gerçeklik", en büyük kaygılardan birisidir. Yani amaç, izleyicilerin sahnedeki hangi nesnelerin bilgisayar tarafından oluşturulduğunu, hangilerinin gerçek olduğunu anlamalarını engellemektir. Bu da,izleyiciye sunulmadan önce, gayret ve süre gerektiriyor. Bu yüzden, 3D teknolojisi ancak gerçek zamanlı olmayan uygulamalarda kullanılabiliyor. Bilgisayar oyununun doğası ise tamamen farklı. Animasyonları pürüzsüz yapmak için bilgisayar, grafikleri modellerken yapabileceğinin en iyisini yapmaya çalışıyor ve bu yüzden de kuşkusuz zaman harcıyor. Sonuç olarak 3D bilgisayar oyunlarında "gerçek zamanlı modelleme", bir karşılaştırma yapıldığında "gerçeklik"ten daha önemli gözüküyor. Bilgisayar, 3D sahneleri meşgul bir biçimde modellerken neler yaptığını bilmek istediğiniz için, bu makale size, 3D bilgisayar grafikleri oluşturma aşamalarını daha iyi anlama şansı sunuyor. Şekil 1. Bir top yüzeyinde "Triangle Segmentation". Nesneler için 3D Modeller Yaratma Birçoğumuz için; 3D sahnedeki nesnelerin poligonlardan, hatta çoğunlukla üçgenlerden oluşması şaşırtıcı bir olgudur. Şekil 1'de de gösterildiği gibi, bir topun yüzeyi, onlarca üçgene bölünmüştür. Şekil 1, ayrıca şunları da gösteriyor: 1.Noktaların koordinatları (p1, p2, p3) 2.Noktaların renkleri (c1, c2, c3) 3.Noktaların vektörleri (v1, v2, v3) 4.Biçimlendirilmiş üçgenlerin normal vektörleri (v4) Noktaların vektörleri, yüzeyin eğim bilgilerini tutar. Şekil 2'de, üçgen noktalarının üç vektörüne göre; A Üçgeni ve B Üçgeni aynı şekilde olduğunu halde eğim yüzeylerinin farklı olduğunu biliyoruz. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org Şekil 2. Aynı şekilde ve boyutta olmalarına rağmen, A Üçgeni ve B Üçgeni farklı eğim yüzeylerine sahiptir. Üçgenler için normal vektörlerin amacı ne? Normal vektörler, nesnelerin harici yüzeylerine bir işaret olarak kullanılır. Bu vektörü ve temel vektör çarpma işlemi kullanılarak, herhangi bir üçgenin görüş noktasıyla karşı karşıya olup olmadığını anlamak çok kolaydır. Görüş noktasından uzak olan üçgenler için, ekranda görünmek mümkün değildir. Bu yüzden, üçgenler ihmal edildiği taktirde, modellemedeki zorluk önemli ölçüde düşer. Şekil 3'te gösterildiği gibi, C Üçgeni, topun arka yüzünde yer alıyor. Bu yüzden modelleme esnasında ihmal edilebilir. 3D bir nesneyi poligonlara bölmenin özel bir kuralı yoktur. 3D uygulama programlarının modellemesine göre farklılık gösterir. Bununla beraber, ana kural olan çok parçaya ayrılmış poligonlar, modellemenin inceliği ve tabii ki, daha güçlü hesaplama ve ölçümler gereklidir. Şekil 4'te, sağ taraftaki top, üçgenleri küçük küçük parçalamadan dolayı daha detaylıdır. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org Şekil 4. Sağ taraftaki top, üçgenleri küçük küçük parçalamadan dolayı daha detaylıdır. Koordinat Dönüşümü 3D nesne modellemeden sonra bütün 3D nesneler, Şekil 5'te de gösterildiği gibi, sanal 3D dünyaya yerleştirilir. Daha sonra, görüş noktası ve görüş doğrultusu tanımlanabilir. Şekil 5. 3D nesneleri sanal 3D dünyaya yerleştirme. Görüş noktasını bir kameranın lensi, görüş doğrultusunu da lensin doğrultusu olarak düşünebilirsiniz. Görüş noktasındaki orijinle 3D alanı ve z-ekseni olan görüş doğrultusu, kamera alanı olarak tanımlanır. Siz monitöre bakarken gözünüz, kamera alanının orijininde bulunmaktadır. Monitörün ekranına dik olan vektörler, z-ekseniyle aynı doğrultuyasahiptir. Görüş noktasına bağlı olan koordinat dönüşümü, görüş dönüşümü olarak isimlendirilir. "Perspektif Dönüşümü" (veya Projeksiyon Dönüşümü) olarak isimlendirilen bir diğer dönüşüm, koordinat dönüşümlerini tamamlamak için gereklidir. 10 santimetre ve 1 metre uzaklıktaki aynı 2 cisim, farklı boyutlarda gözükür. Buna "Perspektif Efekti" adı verilir. Şekil 6'da sağ üst köşe, perspektif efektini resimlemektedir. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org Şekil 6. Perspektif efektiyle görüş dönüşümü. Kırpma Görünebilir alan, kırpma aşamasına belirlenir. Bu, 3D alan içinde küçük bir oda inşa etmeye benzer. Sadece küçük odadaki nesneler ekranda görüntülenecektir. Bu çok kullanışlı bir işlemdir, çünkü görüş noktasına yakın olan nesneler ekranı kaplayabilir, ya da görüş noktasına çok uzak olan nesneler kırpma olmadığı taktirde sadece küçük bir nokta olarak görülebilir. Bunların hepsi, izleyiciler için istenmeyen durumlardır. Kırpmadan sonra, hesaplamanın karışıklığı tekrar azaltılmış olur. Şekil 7, kırpmanın bir örneğini gösterir, D Bloku kırpılmış görüntülenebilir alandır; Şekil 8 ise, D Blokunun modellenmesini resimlemektedir. Şekil 7. Görüntülenebilir alanı kırpma. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org Şekil 8. D Blokunun modellenmesi. Şimdi bütün 3D nesneleri renklendirmeye hazırız. Işıklandırma Genel olarak, bilgisayar grafiklerindeki ışık kaynakları, çevresel ve direk olarak ikiye ayrılabilir. Çevresel ışık, 3D alandaki bütün nesneleri, bütün yönlerden aynı parlaklığı vererek ışıklandırır. Bir stüdyodaki ışıklandırma, çevresel ışığa benzer. Bu ışık, tüm nesne yüzeylerine eş parlaklık verir. Şekil 9, çevresel ışığa bir örnek göstermektedir. Işığın, bütün nesnelere eşit parlaklık verdiğini görebilirsiniz. Direk ışık, çevresel ışıktan tamamen farklı karakteristiğe sahiptir. Direk ışık, belirli bir pozisyondan ve belirli bir doğrultuda gelir. Sadece, ışık kaynağının yoluna çıkan nesneleri ışıklandırır. Geri kalanlara parlaklık verilmez. Elektrik feneri (el feneri) ya da bir arabanın farı, direk ışık için iyi örneklerdir. Şekil 10, direk ışığın etkilerini göstermektedir. Şekil 9. Çevresel ışık. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org Şekil 10. Direk ışık. 3D nesnelerdeki materyaller, ışıklandırma efektlerini değiştirebilir. Farklı materyaller, farklı yansıma parametrelerine sahiptir. Örnek olarak metal, ışığın süzdüğünden çoğunu yansıtır veya kumaş, ışığın yansıttığı kısmından daha çoğunu süzer. Bu nedenle, materyal seçimi, yansıma ve süzmenin parametrelerini belirler. Işık kaynaklarını ve materyallerini belirledikten sonra, ışıklandırma işlemi tamamlanabilir. Bu aşamada, bütün noktaların renkleri, önceden tanımlanmış kurallara göre hesaplanır. Dikkat edilmesi gereken nokta, üçgenlerin iç kısmı, ışıklandırma aşamasında doldurulmaz. Gölgelendirme ve Doku Kaplama Gölgelendirme, üçgenin içindeki noktaları doldurma işlemidir. Noktaların renklerinin ışıklandırma işleminden sonra belirlendiğini, fakat iç kısımların daha renklendirilmediğini öğrenmiştik. Aşağıda, üçgen gölgelendirmenin bazı yollarını görebilirsiniz: 1.Düz Gölgelendirme:Bütün üçgeni doldurmak için bir renk belirlenir. Bütün üçgen için seçilecek rengi belirlemenin en iyi yolu, üç noktanın renk ortalamasını almak ya da üç noktanın renginden birisini seçmektir. Düz Gölgelendirme'nin etkileri için Şekil 11'e bakabilirsiniz. Şekil 11. Düz Gölgelendirme. 2.Gouraud Gölgelendirme:İsmini üreticisinden almıştır. Gouraud, renk interpolasyonunun iki ya da üç noktaya aynı ayna uygulanmasını önermiştir. Bunun anlamı, iki nokta arasındaki kenar renklerinin ağırlıklı ortalama kullanılarak tanımlanmasıdır. Ağırlık da, çizginin iki ucunun renklendirilecek olan noktaya uzaklıklarının oranlanmasıdır. Renk interpolasyonu, kenarlardaki noktaların renkleri hesaplandıktan sonra bütün üçgeni doldurmak için uygulanır. Şekil 12'deki nesneler Gouraud Gölgelendirme kullanılarak gölgelendirilmiştir. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org Şekil 12. Gouraud Gölgelendirme. 3.Phong Gölgelendirme:Phong Gölgelendirme, Phong tarafından bulunmuştur. Gouraud tarafından önerilen renk interpolasyonuna ek olarak Phong, nokta vektörlerinin de bütün üçgen içerisine eklenmesini önermiştir. Phong gölgelendirilmiş üçgenlerin içindeki her nokta, yüzeyin normal vektörünün doğrultusunda bir vektöre sahiptir. Bu sayede, ışıklandırma işlemi, daha doğru renk sunabilmek için üçgenin içindeki her noktaya uygulanabilir. Bununla birlikte, Phong Gölgelendirme tamamlanması çok karmaşık bir işlemdir ve mevcut hiçbir grafik işlemcisi bu özelliği desteklememektedir. Doku Kaplama ise, 3D nesneyi biçimlendiren poligonlara belirli bir şeklin (doku) yapıştırılması işlemidir. Bu işlem, örneğin ağaç damarlarının ağaçlara ya da kürkün hayvanlara yapıştırılması ile gerçekliği arttırır. Bu dokular sayesinde, nesnelerin neyden yapıldığın rahatlıkla kavranabilir. Şekil 13, doku kaplamaya bir örnek vermektedir. Şekil 13. Doku Kaplama. Çizgi Tagem Araştırma Geliştirme ve Eğitim Merkezi Cemal Sururi Cad. Halim Meriç İş Merkezi No: 15/C 34394 Şişli – İstanbul Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org