KRDENİZ EKNİK ÜNİERSİESİ BİLGİSR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSR GRFİKLERİ LBORURI ers Perspekif Dönüşüm ile Doku Kaplama 1. Giriş Bu deneyde, genel haları ile paralel ve perspekif izdüşüm eknikleri, ers perspekif dönüşüm ile doku kaplama ve örüşme (aliasing) problemi üzerinde durulacakır. Deney sonunda öğrencilerin, gerekli maemaiksel ve geomeriksel bilgileri edinmeleri ve bu ür programlar gelişirebilmeleri amaçlanmakadır. 2. emel Grafiksel İşlemler 1.1. Öeleme (ranslaion) Bilgisayar grafiklerinde nesneler farklı koordina sisemlerine sahip olabilirler. Hesaplamaların doğru yapılabilmesi için bu koordina sisemleri arasındaki dönüşümün yapılması gerekmekedir. Bir nokanın cisim koordina siseminden gözlemci koordina sisemine dönüşümü Şekil-1 yardımı ile açıklanabilir. (X,,Z) cisim koordina siseminde bir P(X,,Z) nokası anımlansın. Bu noka daha sonra, uçakla hareke eden ve uçağın önüne doğru poziif, sağ kanadı boyunca poziif X ve uçağın üsünden aşağıya doğru poziif Z ile anımlanmış eksenlere sahip (X,, Z ) uçak sisemine çevrilir. Basilik için piloun hareke emediği ve gözünün pozisyonunun uçak sisemi ile aynı olduğu varsayılabilir. (Z) P(X,,Z) gözlem orijini (O E) ' 3 3 ( E) (Z E) (Z ) (X E) θ O α (X ) 2 1 ( ) β uçak orijini () O(0,0,0) Cisim koordina siseminin orijini (X) Şekil-1 Cisim ve gözlemci koordina sisemleri. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 1
Önce, manzaradaki her bir noka O merkezli gözlemci koordina siseminde anımlanmalıdır. Gözlemci ve cismin koordina sisemlerinin eksenlerinin paralel ve aynı doğruluda oldukları ve bir P(X,,Z) nokasının O (X,, Z ) merkezinden gözlendiği varsayılsın. P nokasının O merkezine göre yeri vekörü ile ifade edilirse: ( 1 ) yazılabilir. vekörleri sırasıyla O ve P nokalarını cisim koordina siseminde anımlayan vekörlerdir. Eğer vekörleri cisim sisemindeki koordinalar cinsinden ifade edilirse, vekörü için aşağıdaki bağını yazılabilir: 3 2 1 3 1 ve 2 1 ve 2 3 X X 1 2 Z Z X X X 3 Z Z Z ( 2 ) Burada kullanılan fark alma işlemi öeleme olarak adlandırılmakadır. Öeleme koordina sisemlerini çakışırmanın haricinde cismi/gözlemciyi yer değişirmede de kullanılmakadır. 1.2. Dönme (Roaion) Denklem (2) ile verilen öeleme dönüşümü yalnızca her iki koordina sisemindeki eksenlerin paralel ve aynı doğruluda olması durumunda geçerlidir. Faka gözlemci koordina siseminin 6-serbeslik derecesine sahip olması bir nokanın dönüşümünde öelemenin yanı sıra dönme dönüşümünü de gerekli kılmakadır. Gözlemci koordina siseminin eksenleri erafındaki dönmeler α, β ve θ ile verilirse, o zaman ekseni erafında saa ibreleri yönünde β açısı kadar dönme için aşağıdaki bağınılar yazılabilir (Şekil-2). P nokası polar koordina siseminde ifade edilirse aşağıdaki eşilikler yazılabilir: X r sin( ) cos( ) r cos( ) Z r sin( ) sin( ) (Z ) (Z' ) β P*(X,0,Z ) rsinφ 90- φ r P(X,,Z ) ρ O (X ) φ (X' ) ( ) β Şekil-2 ekseni erafında β kadarlık dönme. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 2
X r sin( ) cos( ) r sin( ) cos( ) cos( ) sin( ) sin( ) r sin( ) cos( ) cos( ) r sin( ) sin( ) sin( ) x cos( ) Z sin( ) Z r sin( ) sin( ) r sin( ) sin( ) cos( ) cos( ) sin( ) r sin( ) sin( ) cos( ) r sin( ) cos( ) sin( ) Z cos( ) X sin( ) Buradan P nokası marissel olarak aşağıdaki gibi ifade edilebilir : X cos( ) 0 sin( ) X 0 1 0 Z sin( ) 0 cos( ) Z ( 3 ) Gözlemci koordina siseminin X ve Z eksenleri erafındaki roasyonları için de denklem (3) e benzer bağınılar yazılabilir. Böylece cisim uzayındaki P nokası dönüşümden sonra P (X,, Z ) olarak denklem (4) ile verilebilir. X cos 0 sin 1 0 0 cos sin 0 X 0 1 0 0 cos sin sin cos 0 Z sin 0 cos 0 sin cos 0 0 1 Z 3. Paralel İzdüşüm eknikleri Paralel izdüşüm yönemleri nesneleri 3B uzaydan 2B görünü düzlemine paralel ışınlar boyunca izdüşürür. Diğer bir deyişle, l doğrusundan l' doğrusuna paralel izdüşüm, l deki her bir P nokasının l' de Φ(P) nokasına aandığı öyle bir Φ eşlemesidir ki her bir noka ve görünüsünü birleşiren doğrular birbirine paralel durmakadır. Paralel izdüşümler dik (orhographic), aksonomerik (axonomeric) ve eğik (oblique) olmak üzere 3 ana sınıfa ayrılırlar. 2.1. Dik İzdüşüm Paralel izdüşüm yönemlerinden en basiidir. na prensibi, nesneyi çevreleyen bir kuu varsayımına dayanır. Bu kuunun 6 kenarına nesnenin dik izdüşümleri alınarak işlem gerçekleşirilir. Eğer nesne basi bir şekle sahipse 3 ane birbirine dik kenar kullanmak da yeerli olabilir. Eğer nesne karmaşık ve alışılmamış bir şekle sahipse bölgesel bakışlar kullanılabilir. ( 4 ) Şekil-3 Dik izdüşüm örnekleri (a) 6 kenara (b) 3 kenara. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 3
Eğer çevreleyen kuunun bir kenarı xy düzlemi ise izdüşüm işlemi sadece z bileşeninin silinmesiyle gerçekleşirilebilir Benzer şekilde, diğer eksenler silinerek farklı izdüşümler de elde edilebilir. Dik izdüşümlerin en büyük avanajı açı ve uzunluk bilgisinin korunmasıdır. Bu yüzden eknik çizim yapanlar arafından yaygın olarak kullanılmakadır. 2.2. ksonomerik İzdüşüm Dik izdüşüm nesnenin sadece ek bir yüzünü gösermekedir. Bu yüzden 3 veya 6 izdüşüm gerçekleşirilir. Her bir izdüşüm deaylandırılabilir ve o yüz için şekli iyi emsil edebilir, faka nesnenin geri kalanı hakkında bilgi vermez. Bundan dolayı dik izdüşümleri yorumlamak deneyim gerekirir. Bu sorunu çözmek için daha kolay anlaşılabilir ve şekli ek bir görünü ile daha fazla yüzünü gösererek iyi emsil edebilecek izdüşümler düşünülmüşür. Bunun için, perpekif dönüşümden daha basi, izdüşüm ile gerçek dünya koordinaları arasında uyumu olan ve uzakaki nesneleri küçük gösermeyen bir izdüşüm yönemi gelişirilmişir. Çin izdüşümü olarak da adlandırılan bu yönem ufuk nokasının sonsuzda olduğu bir perspekif izdüşüm yönemi olarak düşünülebilir. Paralel doğrular perspekif izdüşümdeki gibi ufuk nokasında birleşmez, paralel devam eder. Şekil-4 ksonomerik izdüşüm örnekleri (a) rimeric (b) dimeric (c) isomeric. Bu izdüşüm yönemi isomeric, dimeric ve rimeric olmak üzere 3 sınıfa ayrılır. Isomeric izdüşüm, en yaygın kullanılan aksonomerik izdüşüm olup emel kenarlar veya eksenlerin izdüşüm düzleminin normali ile eşi açı yapığı biçimidir. Dimeric izdüşümde 3 emel nesne ekseninden 2 si izdüşüm düzleminin normali ile eşi açı yapmakadır. rimeric e ise büün açılar birbirinden farklı olmakadır. 2.3. Eğik İzdüşüm Eğik izdüşüm, izdüşüm ışınlarının görünü düzlemine dik gelmediği paralel izdüşümün özel bir durumudur. ksonomerik izdüşümde karşıdan bakıldığında derinlik bilgisi gözükmemekeydi. Eğik izdüşümde ışınlar eğik yollandığından görünü düzlemine paralel duran bir cisim 3 boyu bilgisi ile (genişlik, yükseklik ve derinlik) görülmekedir. Eğer cisim görünü düzlemine paralel durmazsa gerçek boyuları/ölçüleri hesaplamak için ek işlem yapılması gerekmekedir. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 4
4. Perspekif İzdüşüm Şekil-5 Eğik izdüşüme bir örnek. İnsan gözü bir manzaraya bakığı zaman uzakaki nesneleri yakındaki nesnelere göre daha küçük görür ve paralel doğruları ufuka birleşiyormuş gibi görür. Bu, perspekif olarak adlandırılır ve daha gerçekçi görünülerin üreilmesini sağlar. Paralel izdüşüm yönemlerinde ölçümlerin doğruluğunun korunmasına karşın bu özellikler bulunmamakadır. Perspekif izdüşüm şu şekilde gerçekleşirilir: Bir cismin üm nokaları görünü düzlemine izdüşürülür. İzdüşüm haları görünü düzlemini keserek gözlem nokasına ulaşır. Görünü koordina siseminin merkezi genellikle görünü düzleminin merkezi ile uyuşacak şekilde ve bakış nokasından bu merkeze gelen ha görünü düzlemine dik olacak şekilde seçilir. P(X,,Z ) ( ) P'(0,,Z ) (Z S) (X S) (Z ) Z X X S H Z S (X S) D W O (X,,Z ) (Z S) (X ) Şekil-6 Perspekif Projeksiyon Gözlemci, gözlemci koordina siseminin merkezinde ourmaka ve görünü düzleminden D kadar uzaklıka bulunmakadır (Şekil-6). Nesne nokalarına karşı düşen görünü nokaları benzer üçgenler vasıasıyla kolaylıkla belirlenebilir. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 5
X Z S S X D* Z D* ( 5 ) Görünü düzlemi olarak ekran kullanılırsa görünü nokalarının kolayca hesaplanabilmesi için koordinaların poziif olması gerekmekedir. yrıca ekseninin sağa doğru ekseninin de ekranın alına doğru olması görünü nokalarının koordina değerlerinin raser arama kuralına uygun olması için yararlıdır. eni düzenleme ile (5) denklemi aşağıdaki gibi yazılabilir. Z S X S X XS D* CX Z ZS D* CZ ( 6 ) 5. ers Perspekif Dönüşüm ers perspekif dönüşüm, normal perspekif dönüşümün ers yönde uygulanarak, ekran üzerindeki bir nokanın cisim koordina sisemine dönüşümünü gerekirir. Şekil-1'deki P(X,, Z) nokası şu şekilde ifade edilebilir: 2 1 3 1vekörü gözlemci koordina sisem merkezinin cisim koordina sisemine göre konumunu belirler. Bu nedenle herhangi bir roasyona uğramaz. vekörü ise P nokasının gözlemci koordina siseminin merkezine göre yeri olduğu için üç ayrı roasyona abidir. r 3 3 ers dönüşüm uygulanarak şu sonuç elde edilebilir. 1 1 1 r 3 3 3 O zaman 2 vekörü aşağıdaki şekilde yeniden yazılabilir: 1 1 1 r 2 1 3 r 2 vekörü, 3 ve gözlemci koordina merkezine göre görünü pikselinin yeri P arasında aşağıdaki ilişki oluşurularak ekran koordinaları olarak ifade edilebilir. X S r * * 3 K *P, P D Z S 2 1 1 1 1 * K*P KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 6
X X X S 1 1 1 K * D Z Z Z S ( 7 ) Bu formülle 3 boyulu dünya koordinalarını 2 boyulu ekran koordinalarından elde edebilmek için bir bilinmeyenin lineer bağımlı yapılması veya doğrudan verilmesi gerekir. Diğer bir deyişle bu yönem işlemsel olarak basi olmasına karşın x=5, y 2 +z 2 =r 2 gibi formülü bilinen yüzeyleri kaplayabilmekedir. Örnek olarak Z=0 yüzeyini (X- düzlemi) ele alalım. Her bir ekran koordinaı için (7) nolu denklemde Z=0 yazılarak K sabii bulunur. Bu, ekran üzerindeki her bir nokanın cisim koordina sisemindeki büyüklüğü arasındaki ilişkiyi ifade eder. Daha sonra K sabii yerine yazılarak X ve değerleri hesaplanır. Böylece ekrandaki her bir pikselin dünyadaki konumu hesaplanır. Burada bulunan (X,, Z) değerleri bize ers perspekif dönüşümün sonucunu verir. Ekran koordinalarının Xs ve Zs düzleminde doğrusal olarak aranması yerine açısal arama da gerçekleşirilebilir. Bu durumda (7) denklemi şu şekilde değişikliğe uğrar: X X an 1 1 1 K * 1 Z Z an (8) Burada λ yaay eksendeki arama açısını, γ da dikey eksendeki arama açısını ifade emekedir. 6. Doku Kaplama (exure Mapping) Bilgisayar grafiklerinde bir cismin yüzey ayrınıları doku olarak adlandırılır. uğlalardan örülmüş büyük bir duvara yeerli uzaklıkan bakığımız zaman duvardaki her bir uğlayı bir doku elemanı olarak düşünebiliriz. ma bu duvara yakından bakıldığında uğlalar arık ayrı cisimlerdir ve cisim üreme eknikleri ile üreilmelidir. Böyle yüzey ayrınılarının cisim üreme eknikleriyle üreilmesi gerçek-zamanlı sisemler için fazla hesaplama gerekirdiğinden uygun değildir. Doku, cisimlere doğal görünüm kazandırır. Doku, cisme yapışırılmalı ve cisimle aynı dönüşümleri geçirmelidir. Dokunun dönüşümü, doku elemanlarının (çimenli oramda oların veya ağaça yaprakların) dönüşümünü gerekirir. Doku 2-boyulu veri dizileridir. Bu veriler renk veya parlaklık bilgisi olabilir. Doku kaplamayı mahareli bir iş yapan asıl konu, dokuların dörgensel olmayan bölgelere de uygulanabilmesi olmuşur. Doku, farklı dönüşümlerin çokgenin görünüşü üzerindeki ekilerini karşılayacak şekilde bozulmaya uğrar. Boyu bir doğruluda uzarken, diğer doğruluda kısalabilir. Döndürüldüğü için orjinalinden farklı görünebilir. Dokunun büyüklüğüne, dörgenin bozulmasına ve ekrandaki görünüye bağlı olarak, piksellerin bazıları bir fragmandan fazlasına eşlenebilir, bazı fragmanlar da birden çok piksel arafından örülebilir. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 7
Doku kaplama bir doku görünüsünün ekrarlanması ile yapılabileceği gibi ek bir doku görünüsünün bir yüzeye lineer bağınılarla gerilmesi ile de yapılabilir. ers perspekif dönüşüm yönemiyle doku üreiminde doku örünüsünün karmaşıklığı hesaplama mikarını değişirmez. Öncelikle ekrandaki her bir pikselin gerçek dünyadaki karşılığı bulunur. Sonra isenilen bir yaklaşımla doku bu yüzey üzerine kaplanır. Örneğin z=a yüzeyi kaplanacak ise x ve y değerlerinin doğrudan kullanılması manıklı olur. Bu değerler (x, y), dokunun en ve boyuna göre mod işlemine abi uulur. Elde edilen doku konumlarından renk/parlaklık bilgisi alınarak ekrana basılmasıyla doku kaplama gerçekleşirilmiş olur. Faka yukarıda da bahsedildiği üzere bir nokaya birden çok doku nokasından oluşan bir bölge karşılık geldiğinde örüşme (aliasing) problemi oraya çıkar (Şekil-7.a). Bunu önlemek için ilgili bölgedeki piksellerin oralama renk/parlaklık bilgisi alınmalıdır. Burada oraya çıkabilecek problem işlem karmaşıklığının armasıdır. Mipmapping adı verilen yönemle doku pirami yapıda değerlendirilerek işlem yükü hafifleilebilmekedir. Lieraürde bundan başka birçok örüşme önleme (ani-aliasing) yönemi bulunmaka olup burada deaylandırılmayacakır. (a) (b) Şekil-7 Doku kaplamada örüşme problemi (a) örüşme önlenmiş (b) örüşme problemli görünü 7. Deney Hazırlığı Dönmede kullanılan formüllerin çıkarılışını inceleyiniz. Quaernion lar kavramını araşırınız ve dönmede kullanımını inceleyiniz. Paralel izdüşüm yönemlerini kavrayınız. Perspekif/ers perspekif dönüşüm ve izdüşüm kavramlarını anlamaya çalışınız. Örüşme yönemlerinden mipmapping hakkında araşırma yapınız. şağıdaki sorunun çözümünü araşırınız : (x, y, z) cisim uzayındaki bir küre dilimi y ekseni erafında -45 derece ve x ekseni erafında +35 derece döndürüldüken sonra orografik (dik) izdüşüm kullanılarak 32x32 piksellik bir (Px, Py) görünü uzayında görünülenmekedir. U, w düzlemindeki 64x64 piksellik basi bir ağ (grid) uygun bir dönüşüm ile bu küre dilimi üzerine yerleşirilmek iseniyor. 32x32 piksellik görünü uzayına karşılık düşen cisim uzayı penceresinin, 1 y ' 1 olduğu varsayılmakadır. Her piksel sol al köşesinin koordinaları ile anımlanmakadır. Px=22 Py=22 pikselinin 64x64 piksellik u, w uzayındaki konumunu bulmak için: (Px, Py) piksel değerleri ile (x, y, z ) koordinaları arasındaki geçişi sağlayan bağınıları bulunuz. ransformasyon marisini kullanarak (x, y, z) koorinalarını hesaplayınız. (Px, Py) pikseline ilişkin u, w koordinalarını hesaplayınız. 1 x' 1 KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 8
8. Deney asarımı ve Uygulaması Roasyon formüllerinin oluşumunu göseriniz. Paralel izdüşüm ürlerinin nasıl oluşurulduğunu ve nerelerde kullanıldığını kavrayınız. Dik (orografik) izdüşüm ile yarım küre üreerek doku ile kaplayınız. Perspekif dönüşüm ile silindir yüzeyi kaplama kodlarını yazınız. ers perspekif dönüşüm manığı ile silindir yüzeyini kaplayınız. Z=0 yüzeyini ers perspekif dönüşüm ile kaplayacak kodları yazınız. ynı yüzeyi açısal arama manığı ile kaplayınız. Bu yüzey için örüşme önleme kodlarını gelişiriniz. Deneye hazırlık kısmındaki örnek soruda belirildiği gibi dik izdüşüm ile üreiğiniz yarım küreden bir küre dilimi seçerek bu küre dilimine dokuyu geriniz. KÜ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laborauarı 9