Bilgisayar Grafik Erciyes Üniversitesi Bilgisayar Mühendisliği 2010 Güz Dönemi Araştırma Görevlisi Fehim KÖYLÜ Temeller • • • • • Kartezyen koordinat sistemi Çoklu koordinat sistemleri Vektörler Nokta, çizgi Doğrusal dönüşümler – Taşıma, dönderme, ölçekleme, yansıtma 11.10.2010 Fehim KÖYLÜ 2 Matematik temeller • • • • Temel cebir Vektör, matris cebiri Kuaterniyon (dördey) cebiri Geometri cebiri 11.10.2010 Fehim KÖYLÜ 3 Grafik Problemleri • • • • • • • Noktasal modelleme Parametrik modelleme Yüzey eğri fonksiyonları Bakış açısı görünür yüzey algoritmaları Renk Aydınlatma gölge algoritmaları Yüzey kaplama algoritmaları Hareket animasyon 11.10.2010 Fehim KÖYLÜ 4 3 Boyut Grafik Problemleri • Modelleme • Işıklandırma gölgelendirme – Doku kaplama, yumru kaplama, ışın izleme, gölgelendirme, yansıma, kırılım • Hareket ve fiziksel etkiler • Yorumlama (render) • Ekran izdüşüm gösterim 11.10.2010 Fehim KÖYLÜ 5 Problem & Uygulama • Eğlence – Oyun – Sinema – Reklam • Eğitim – Sanal gerçeklik – Animasyon – Bilimsel gösterim • Bilgisayar destekli tasarım 11.10.2010 Fehim KÖYLÜ 6 Problem & Uygulama • Sanal gerçeklik – Ergonomi ve sağlık – İnsan etkileşim – Arayüz ve bilgi iletimi tasarımı – Sanal gerçeklik benzetim – Artırılmış algı – Modelleme 11.10.2010 Fehim KÖYLÜ 7 Grafik Kütüphaneleri • Birinci Nesil Grafik API(1970) – Core Api • İkinci Nesil API(1980) • Üçüncü Nesil API (1990) – DirectX – OpenGL • Dördüncü Nesil API(2000) – WPF – Java3D http://design.osu.edu/carlson/history/timeline.html 11.10.2010 Fehim KÖYLÜ 8 Grafik’te gelişimin nedenleri • Gelişen donanım mimarileri – Konsollar, mobil cihazlar, yüksek kalite • Yeni programlama dilleri ve kolay kodlama – Daha fazla iş, daha kısa kod, yetersiz süreler • 3D interaktiflik üzerine yeni fikirler, ihtiyaçlar ve teknolojiler – Sanal gerçeklik, hayatı kolaylaştırmak için yenilikler • Önceki Apilere göre çok fazla uzmanlık istemeyen arayüz ihtiyaçları – Çözüm odaklı problemler(tıp, savunma, eğitim) 11.10.2010 Fehim KÖYLÜ 9 Grafik • Raster Grafik – Her piksel noktasının renk değeri tanımlanmış – Dosya boyutu büyük – Gösterimi hızlı • Vektör Grafik – Şekiller noktalar ve matematiksel denklemler ile tanımlanmış – Dosya boyutu küçük – Gösterim hesaplama işlemi yükü (render) *Wikipedia 11.10.2010 Fehim KÖYLÜ 10 Izgara Grafik (Raster) Çözünürlük: 1piksel/inç 11.10.2010 Fehim KÖYLÜ 11 Izgara Grafik (Raster) Çözünürlük: 72pixel/inç 11.10.2010 Fehim KÖYLÜ 12 Vektör Grafik • Cornell Box • Stanford Bunny • Utah Teapot 11.10.2010 Fehim KÖYLÜ 13 CAD (Computer Aided Design) *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları is the use of computer technology to aid in the design of a product. Some Fields of Use: • The Architecture, Engineering, and Construction Industry • Mechanical Engineering • • Product Design (Textile, Food, Computers, Electronic Devices, etc.) Automotive, Aerospace, … 11.10.2010 Fehim KÖYLÜ 14 CAD - I *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları Los Angeles Airport 11.10.2010 Fehim KÖYLÜ 15 CAD - II *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları Boeing 777 11.10.2010 Fehim KÖYLÜ 16 Entertainment - I *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları Computer Graphics in movie industry 11.10.2010 Fehim KÖYLÜ 17 Entertainment *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları 11.10.2010 Fehim KÖYLÜ 18 Entertainment - II *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları Games 11.10.2010 Fehim KÖYLÜ 19 Data Gloves, Head Mounted Display *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları 11.10.2010 Fehim KÖYLÜ 20 *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları 11.10.2010 Fehim KÖYLÜ 21 HMD *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları 11.10.2010 Fehim KÖYLÜ 22 3 Boyut Aşamaları *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları WORLD SCENE/OBJECT Modelling coordinates: - world coordinate system, - object coordinate system 3D MODELLING VIEWING 3D CLIPPING Camera coordinates PROJECTION Screen/Window coordinates RASTERIZATION Device coordinates 2D PIXELMAP DISPLAY 11.10.2010 Fehim KÖYLÜ 23 3 Boyutlu grafik Doku Kaplama Modelleme Işık-gölge Görünür yüzey 2B Ekran İzdüşüm 11.10.2010 Fehim KÖYLÜ 24 Koordinat Sistemi • 2 Boyutlu Kartezyen sistemi (X,Y eksenleri) 11.10.2010 Fehim KÖYLÜ 25 Koordinat Sistemi • 3 Boyutlu Kartezyen sistemi (X,Y,Z eksenleri) • Sağ el kuralı koordinat uzayları • Sol el kuralı koordinat uzayları 11.10.2010 Fehim KÖYLÜ 26 Sol&Sağ el koordinat uzayları Bakış Sol el Yönü +x +y -> +z +z -> -y -y -> -z -z -> +y 11.10.2010 Sağ el Koordinat uzayı +y -> -z -z -> -y -y -> +z +z -> +y Fehim KÖYLÜ 27 Vektörler • Vektör yönü ve büyüklüğü olan fiziksel bir değerdir. • Boyut; vektörün içerdiği değer sayısıdır. 2 Boyut [x,y] 3 Boyut [x,y,z] P (Xp,Yp) Q (Xq,Yq) xq − x p xa a =[ ]=[ ] yq − y p ya 11.10.2010 Fehim KÖYLÜ 28 Vektör cebiri • • • • • • • • Sıfır vektör Vektör büyüklüğü Sabit ile vektör çarpımı Normalleştirilmiş vektör Vektör toplama, çıkarma Vektör arası uzaklık Vektör nokta çarpım Vektörel çarpım 11.10.2010 Fehim KÖYLÜ 29 Matris Cebri • • • • • • • • Transpoz Toplama İki matris çarpma Skaler ile çarpma Vektör ile matris çarpma Determinantı Matris Tersi … 11.10.2010 Fehim KÖYLÜ 30 Nokta • Vektörel grafikler en temel nokta elemanı ile temsil edilir. • Nokta; – 2 boyutlu kartezyen sistemi x ve y değerleri; – 3 Boyutlu kartezyen sisteminde x, y ve z değerleri ile tanımlıdır. 11.10.2010 Fehim KÖYLÜ 31 Dönüşümler • • • • Taşıma Ölçekleme Döndürme Yansıtma y ] * T = [ x' [x Nokta 11.10.2010 Dönüşüm Çarpanı Fehim KÖYLÜ y '] Noktanın Yeni Konumu 32 Taşıma [x 11.10.2010 y ] + [t x t y ] = [ x' Fehim KÖYLÜ y '] 33 Dönüşüm matrisi • [x y] noktası üzerinde dönüşüm işlemi için aşağıdaki gibi bir matris tanımlanır. ⎡a b ⎤ ⎢c d ⎥ ⎦ ⎣ 11.10.2010 Dönüşüm a b c d Ölçekleme A 0 0 D Döndürme cθ sθ -sθ cθ X eksenine göre yansıtma 1 0 0 -1 Y’ye göre yansıtma -1 0 0 1 O göre yansıtma -1 0 0 -1 Y=X doğrusuna göre yansıtmaFehim KÖYLÜ 0 1 1 0 34 Ölçekleme ⎡2 0⎤ ⎢0 2⎥ ⎦ ⎣ 11.10.2010 Fehim KÖYLÜ 35 Döndürme • Noktalar; ⎡2 0⎤ ⎢1 1 ⎥ θ=45° ⎢ ⎥ ⎢⎣0 2⎥⎦ ⎡ cos 45 sin 45 ⎤ ⎢− sin 45 cos 45⎥ ⎦ ⎣ ⎡2 0⎤ ⎡ 1,41 1,41⎤ ⎢1 1 ⎥ * ⎡ 0,707 0,707⎤ = ⎢ 0 ⎥ 1 , 41 ⎢ ⎥ ⎢− 0,707 0,707⎥ ⎢ ⎥ ⎦ ⎢− 1,41 1,41⎥ ⎢⎣0 2⎥⎦ ⎣ ⎣ ⎦ 11.10.2010 Fehim KÖYLÜ 36 Döndürme θ=90° ⎡ 0 1⎤ ⎢ − 1 0⎥ ⎣ ⎦ θ=180° ⎡− 1 0 ⎤ ⎢ 0 − 1⎥ ⎣ ⎦ *Saatin tersi yönde 11.10.2010 Fehim KÖYLÜ 37 Dönüşüm matrisi • Taşıma işlemi için de kullanılabilecek; 2d genel bir dönüşüm matrisi tanımlayabilmek için; homojen koordinat gösterimi kullanılır ve homojen dönüşüm matrisi 3x3 boyutlarına getirilir. y 1] * T = [ x' [x Nokta 11.10.2010 Dönüşüm matrisi Fehim KÖYLÜ y ' 1] Noktanın Yeni Konumu 38 Düzgün Dönüşüm matrisi Affine transformation matrix • [x y 1] noktası üzerinde dönüşüm işlemi için aşağıdaki gibi bir matris tanımlanır. • Matris katsayıları uygun seçilerek bütün dönüşüm işlemleri için çarpım biçiminde Döndürme katsayıları kullanılır. ⎡a b c ⎤ Ölçekleme katsayıları Kısmi projeksiyon ⎢d e f ⎥ ⎢ ⎥ Taşıma katsayıları ⎢⎣ g h 1 ⎥⎦ Genel ölçekleme 11.10.2010 Fehim KÖYLÜ 39 3 Boyutlu Dönüşüm Matrisi • 3 boyutlu sistemde bir nokta vektörü[x y z] değeri ile tanımlıdır. • Bu vektör [x y z 1] homojen biçiminde gösterilebilir. ⎡ a b c p⎤ Ölçekleme Döndürme ⎢ ⎥ Projeksiyon (izdüşümü) d e f q meyilleme ⎢ ⎥ ⎢g h l r ⎥ ⎢ ⎥ Taşıma ⎣ t u v s ⎦ Genel ölçekleme 11.10.2010 Fehim KÖYLÜ 40 Genel ölçekleme • 2 noktaya genel ölçekleme uygulanırsa; ⎡1 0 0 0⎤ ⎢ ⎥ x1 y1 z1 1 ⎢0 1 0 0⎥ x1 y1 z1 5 [ ]* ] =[ x2 y 2 z 2 1 ⎢0 0 1 0 ⎥ x2 y 2 z 2 5 ⎢ ⎥ ⎣0 0 0 5 ⎦ =[ ' 1 ' 2 x x 11.10.2010 ' 1 ' 1 y y ' 1 ' 1 z z 1 ] 1 x1 x = ,... 5 ' 1 Fehim KÖYLÜ 41 Bileşik dönüşüm matrisi • Peş peşe birkaç dönüşüm işlemi gerçekleştirilmek istenirse; V * T1 = V’ V’ * T2 = V’’ V’’ * T3 = V’’’ • Bunun yerine; T1 * T2 * T3 = Tbileşik V * Tbilesik = V’’’ 11.10.2010 Fehim KÖYLÜ 42 3B Döndürme • 2B döndürme işlemi orjin noktası referans alınarak gerçekleştirilirken 3 boyutlu döndürme işlemi herhangi bir eksen(x, y, z) seçilerek gerçekleşir. 11.10.2010 Fehim KÖYLÜ 43 3B Döndürme • X ekseni etrafında döndürme; 0 ⎡1 ⎢0 cos α ⎢ ⎢0 − sin α ⎢ 0 ⎣0 11.10.2010 0 sin α cos α 0 Fehim KÖYLÜ 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎦ 44 3B Döndürme • Y ekseni etrafında döndürme; ⎡cos β ⎢ 0 ⎢ ⎢ sin β ⎢ ⎣ 0 11.10.2010 0 − sin β 1 0 0 cos β 0 0 Fehim KÖYLÜ 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎦ 45 3B Döndürme • Z ekseni etrafında döndürme; ⎡ cos θ ⎢− sin θ ⎢ ⎢ 0 ⎢ ⎣ 0 11.10.2010 sin θ cos θ 0 0 Fehim KÖYLÜ 0 0 1 0 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎦ 46 3B Döndürme • Keyfi bir eksene göre döndürmek • A=[l m n 1] noktasından geçen bir doğruya göre herhangi bir eksende(x,y,z) döndürmek istenirse; • Önce orjine taşınır. [-l –m –n ] • Döndürme gerçekleştirilir. • [l m n] ile tekrar taşınır. 11.10.2010 Fehim KÖYLÜ 47 Projeksiyon • En temel projeksiyon; 3 boyutlu uzaydan 2 boyutlu düzleme izdüşürmektir. 11.10.2010 Fehim KÖYLÜ 48 Projeksiyon • Herhangi bir düzlem üzerine izdüşürmek için diğer eksen değerleri sıfırlanır. • (x-y) için z • (y-z) için x • (x-z) için y sıfırlanır. 11.10.2010 Fehim KÖYLÜ 49 Projeksiyon Projeksiyon (izdüşüm) Perspektif Paralel Ortographic Lineer Perspektif Axononetric Bir nokta Trimetric İki nokta Dimetric Üç nokta Isometric Curvilineer perspektif Oblique Ters perspektif Cavalier Cabinet 11.10.2010 Fehim KÖYLÜ 50 Projeksiyon temelleri • İğne deliği (pin hole) kamera Pinhole Multiple rays of projection Film Plane 11.10.2010 Fehim KÖYLÜ 51 Projeksiyon temelleri • Nokta kamerada resim düzlemine izdüşüm One ray of projection Pinhole Film Plane 11.10.2010 Fehim KÖYLÜ 52 Görünüm alanı • Görünüm alanı (Field of view) Focal Length Pinhole Film Plane 11.10.2010 Fehim KÖYLÜ 53 Görünüm alanı • Odak uzunluğu ve görünüm alanı birbiri ile ters orantılıdır. Pinhole Focal Length Field of View Film Plane 11.10.2010 Fehim KÖYLÜ 54 Görünüm alanı • Lens eklenirse; düzlemi oynatmadan, görünüm alanının değiştirilmesi mümkün olur. • COP: İzdüşüm merkezi COP Center of projection 11.10.2010 Projection Plane Fehim KÖYLÜ 55 Perspektif izdüşüm • Tek nokta perspektif izdüşüm • İki nokta perspektif izdüşüm 11.10.2010 Fehim KÖYLÜ http://www.sanford-artedventures.com/create/tech_2pt_perspective.html 56 Perspektif izdüşüm View plane X P (x, y, z) x’ = ? (0,0,0) Z d 11.10.2010 Fehim KÖYLÜ 57 Perspektif izdüşüm • [x y z 1] noktasının düzleme izdüşümü 11.10.2010 Fehim KÖYLÜ 58 Perspektif izdüşüm Yükseklik 11.10.2010 Fehim KÖYLÜ 59 COP yer değişimi Perspektif izdüşüm COP COP ∞ COP ∞, Orthographic View 11.10.2010 Fehim KÖYLÜ 60 Perspektif izdüşüm 11.10.2010 *Wikipedia Fehim KÖYLÜ 61 Perspektif izdüşüm • Perspektif izdüşüm • 3 nokta resim izdüşüm düzlemini, diğer nokta kamera konumunu belirtir. 11.10.2010 Fehim KÖYLÜ 62 Perspektif izdüşüm • Z=r düzlemine izdüşüm dönüşüm matrisi ⎡1 0 0 0⎤ ⎢0 1 0 0 ⎥ ⎢ ⎥ ⎢0 0 0 r ⎥ ⎢ ⎥ ⎣0 0 0 1 ⎦ 11.10.2010 Fehim KÖYLÜ 63 Perspektif izdüşüm • Projeksiyon merkezi (COP, kamera konumu) [0,0,-k] iken z=0 düzlemine izdüşüm (projeksiyon düzlemi) dönüşüm matrisi ⎡1 ⎢0 ⎢ ⎢0 ⎢ ⎣0 0 1 0 0 0 0 ⎤ ⎥ 0 0 ⎥ 0 1/ k ⎥ ⎥ 0 1 ⎦ *Ders notu Sayfa 24 11.10.2010 Fehim KÖYLÜ 64 Perspektif izdüşüm Bakış açısına (kamera pozisyonuna) göre görünümü iz düşürmek için kullanılır. Uzaktaki cisimler yakındaki cisimlere göre daha küçük biçimde görünür. Derinlik hissi verir. Kamera noktasına yakın cisim daha geniş görünür. Çizgilerin paralelliği korunmaz (düzgün (affine) değil) 11.10.2010 Fehim KÖYLÜ 65 Perspektif izdüşüm • S noktası COP • M projeksiyon düzlemi • P,P2,P3 noktalar • T(P),T(P2),T(P3) İzdüşürülmüş nokta Konumları *Ders notu Sayfa 26 11.10.2010 Fehim KÖYLÜ 66 Resim düzlemi Perspektif izdüşüm • Kamera (x,y,z) konumunda iken, üst sağda verilen kamera görüntüsünde her Tepe görünüm bir noktanın(x,y) pozisyonu, sahne(x,y,z) konumundan perspektif izdüşümü ile elde edilir. Kamera (Xk,Yk,Zk) 11.10.2010 sahne *X ekseni: (Kırmızı) Y ekseni: (Yeşil) Z ekseni: (Mavi) FehimKÖYLÜ KÖYLÜ Fehim 67 Resim düzlemi Perspektif izdüşüm X Resi m düzl em i (0,0, 0) Kamera (Xk,Yk,Zk) P (x, y’ = ? d Z 11.10.2010 sahne FehimKÖYLÜ KÖYLÜ Fehim y, z) *X ekseni: (Kırmızı) Y ekseni: (Yeşil) Z ekseni: (Mavi) 68 • • • • • • • Bir sanal kamera üç boyutlu dünya koordinatlarında tanımlanmış göz noktası ve bakılan nokta olarak isimlendirilmiş iki nokta ile tanımlanabilir. Sanal kameranın tanımı için kullanılan bazı yaygın bilgisayar terimleri aşağıda açıklanmıştır. • Dünya Koordinat Sistemi (World Coodinate System , WCS ) : Bazen nesne uzayı olarak kullanılsa da nesnelerin temel koordinat sistemidir. • Bakış Düzlemi ( View Plane , VP ) : Üç boyutlu resmin izdüşümünün yapıldığı düzlem. Genellikle bilgisayar ekranı olarak alınır. • Bakış Düzlemi Koordinatları (View Plane Coordinates , VPC ) : Bilgisayar ekranı koordinat sistemidir. VP ile ilgilidir. • İlgilenilen Nokta ( Point of Interest , POI ) : Bakılan görüntü üzerindeki ilgilenilen merkez nokta. Bazen bakış pozisyonu olarak da tanımlanabilir. Eğer bu nokta değişirse ekrandaki görüntü direk olarak etkilenir. • Bakış Düzleminin Normali (View Plane Distance , VPN ) : Bakış düzleminden ilgilenilen noktaya yönlendirilmiş bir vektördür ve bakış düzlemine diktir. • Bakış Düzleminin Mesafesi (View Plane Distance , VPD ) : Bakış VPN boyunca POI ve VP arasındaki uzaklığa, bakış düzleminin mesafesi denir. • Bakış Noktası ( View Point , VPT ) : Göz noktası olarak da bilinir. WCS ile ilişkili olarak kamera pozisyonu veya bakış pozisyonunun üç boyutlu koordinat değerleri ile tanımlandığı noktadır. 11.10.2010 Fehim KÖYLÜ 69 • • • • • • • • • • • • • Kamera dünya koordinatlarında ( WCS ) yerleştirilmiştir. Bulunulan noktadan xy, yz, xz yüzeylerine dik olan mesafeler kamera pozisyonunu verir. Z ekseni yukarı bakış yönünü ve POIx, POIy, POIz değerleri dünya koordinat sistemi ( WCS ) ile ilişkili verilmiştir. Bakış noktası normali ( VPN ); kamera objektifi ile ilgilenilen noktayı ( POI ) birbirine bağlar ve bilgisayar ekranına diktir. Kamera yönü POI ya doğrudur. Bilgisayar ekranı üzerinde sol alt köşe orijin olarak ve XS noktaları sağa doğru, YS noktaları yukarı doğru alınmıştır. Bu dönüşümler kullanıldığında görüntü koordinatları, bilgisayar ekranı koordinat sistemine ( VPC ) dönüştürülmüş olur. Bu işlemler birkaç adımda gerçekleştirilir. İlk olarak orijin ilgi noktasına(POI) kaydırılır. Daha sonra P (XC, YC, ZC ) değerleri alınarak bakış noktasına çevrilir. XC ekseni üzerinde YC ekseni Z WCS yi kesene kadar koordinat sistemi çevrilir ve eksen sistemi de XC ekseni etrafında ZC ekseni ilgilenilen noktayı gösterene kadar döndürülür. Sonuçta koordinat sistemini sol-el koordinat sistemine dönüştürmek için XC ekseninin yönü ters çevrilir. Bu beş dönüşüm işlemi sırasıyla ayrı matris işlemleri biçiminde tanımlanır. Dönüşüm matrisleri içinde P ( XC, YC, ZC ) dünya koordinat sistemiyle ilişkilendirilmiş üç boyutlu kamera koordinatları tanımına uygun gelir. D doğrusu POI ile kamera koordinatlarını birleştirir. P ( X’, Y’, Z’ ) nün değerleri de aşağıdaki gibi hesaplanır. X’ = ( XC – XPOI ) Y’ = ( YC – YPOI ) Z’ = ( ZC – ZPOI ) Dünya koordinatlarında verilen bir P ( XW, YW, ZW ) noktası aşağıdaki formül ile kamera koordinatlarına dönüştürülebilir. P ( XC, YC, ZC ) = P ( XC, YC, ZC ) * T Yukarıda verilen dönüşüm işlemlerinin tümünü bir seri şeklinde gösteren dönüşüm matrisleridir. P ( XC, YC, ZC ) = P ( XW, YW, ZW ) * ( T1 ,T2, T3, T4 ) Verilmiş bir noktanın yukarıdaki gibi kamera koordinatlarının bulunmasından sonra ekran koordinat değerleri de hesaplanabilir. Bizim görüntümüzü oluşturan noktaların bütün koordinat değerleri yukarıda tanımlandığı şekliyle hesaplanır. Kullanıcı, kamera hareketlerini tanımladığı gibi bakış noktasını ve ilgilenilen noktayı da değiştirmekte serbesttir. Bu durum değişken bakış şartlarının ortaya çıkmasını sağlar. Her bir çerçevenin hesaplanması sırasında program gerekli dönüşüm parametrelerini kontrol eder ve eğer onlar değişirse bir sonraki çerçeve yeni tanımlanan parametrelere göre hesaplanır 11.10.2010 Fehim KÖYLÜ 70 *KTÜ 11.10.2010 Fehim KÖYLÜ 71 11.10.2010 Fehim KÖYLÜ 72 11.10.2010 Fehim KÖYLÜ 73 11.10.2010 Fehim KÖYLÜ 74 Perspektif izdüşüm • Kameranın pozisyonuna göre her bir noktanın izdüşüm dönüşümleri yapmak için; Resim Düzlemi X x’ = ? (0,0,0) d 11.10.2010 Fehim KÖYLÜ P (x, y, z) x x′ = ⎛z⎞ ⎜ ⎟ ⎝d ⎠ y′ y = d z 75 Z Paralel İzdüşüm Cisimleri tek düzlem üzerinde gösterir. Cisimlerin düzlem üzerinde olan birbirine olan uzaklıkları korunur. Cisimlerin düzleme dik uzaklıkları kaybolur. Uzaklığa bağlı olarak cisimlerin büyüklükleri değişmez. Mekanik gösterimler için kullanışlıdır. 11.10.2010 Fehim KÖYLÜ 76 Paralel v Perspektif Parallel Projection 11.10.2010 Perspective Projection Fehim KÖYLÜ 77 Ortographic Paralel Projection • Kamera arka düzlemi lens ile paraleldir. • Sonsuz uzaklıkta odak noktası vardır. 11.10.2010 Fehim KÖYLÜ 78 Ortographic Paralel Projection • Z=n düzlemi için • Y=m düzlemi için 11.10.2010 ⎡1 ⎢0 ⎢ ⎢0 ⎢ ⎣0 ⎡1 ⎢0 ⎢ ⎢0 ⎢ ⎣0 0 1 0 0 0 0 0 n 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ 0 0 0 m 0 0 1 0 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎦ Fehim KÖYLÜ 79 Axonometric Projection • Nesnenin fotoğrafik görüntüsünü elde etmek için birden fazla yüzünün görünmesini sağlayan paralel izdüşümdür. • Isometrik • Trimetrik • Dimetrik 11.10.2010 Fehim KÖYLÜ 80 Axonometric Projection Views: a. trimetric b. top c. side 11.10.2010 Fehim KÖYLÜ 81 İzdüşüm matrisleri • • • ⎡1 ⎢0 T =⎢ ⎢0 ⎢ 0⎤ ⎣0 ⎥ 0⎥ 0⎥ ⎥ 1⎦ Z=0 (x-y)düzlemi ortografik -> z=n düzlemi ortografik-> ⎡1 ⎢0 T =⎢ ⎢0 ⎢ ⎣0 0 1 0 0 0 0 0 n Trimetrik axonometrik paralel-> 1. x ekseninde 90 derece döndürülür 2. z=0 düzlemine projeksiyon yapılır. 0 0 0⎤ ⎡1 ⎡1 ⎢0 cos 90 sin 90 0⎥ ⎢0 ⎥⎯ T =⎢ ⎯→⎢ ⎢0 − sin 90 cos 90 0⎥ ⎢0 ⎢ ⎢ ⎥ 0 0 1⎦ ⎣0 ⎣0 11.10.2010 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ ⎡1 0 ⎢0 0 T =⎢ ⎢0 − 1 ⎢ ⎣0 0 0 0 0 0 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ Fehim KÖYLÜ 82 İzdüşüm matrisleri • Dimetrik axonometrik paralel izdüşüm • θx = 20,705° θy= 22,208 ° [x 11.10.2010 y z H ] = [x y ⎡cos θy ⎢ 0 z 1].⎢ ⎢ sin θy ⎢ ⎣ 0 0 − Sinθy 1 0 0 cos θy 0 0 Fehim KÖYLÜ 0 0 0⎤ ⎡1 0⎥⎥ ⎢⎢0 cos θx Sinθx . 0⎥ ⎢0 − Sinθx cos θx ⎥⎢ 1 ⎦ ⎣0 0 0 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ 83 İzdüşüm matrisleri • izometrik axonometrik paralel izdüşüm • θx = 35,26° θy= 45 ° [x y z H ] = [x y ⎡cos θy ⎢ 0 z 1].⎢ ⎢ sin θy ⎢ ⎣ 0 0 − Sinθy 1 0 0 cos θy 0 0 0 0 0⎤ ⎡1 0⎥⎥ ⎢⎢0 cos θx Sinθx . 0⎥ ⎢0 − Sinθx cos θx ⎥⎢ 1 ⎦ ⎣0 0 0 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ *Ders notu Sayfa 23 11.10.2010 Fehim KÖYLÜ 84 3B açısal dönüşüm • 3 boyutlu uzayda açısal dönüşüm 3 farklı yolla ifade edilebilir. – Matris formu – Euler açıları – Quaternion (dördey) 11.10.2010 Fehim KÖYLÜ 85 Matris formu • (+)Noktaların birebir dönüşümleri mümkündür. • (+)Grafik API’ler tarafından kullanılır. • (+)Göreceli olarak çoklu dönüşümleri birlikte kullanmaya imkan tanır. • (-)Fazla bellek ihtiyacı • (-)Anlaşılması zor 11.10.2010 Fehim KÖYLÜ 86 Euler Açıları • Heading (y) • Pitch (x) • Bank (z) Başka bir isimlendirme Roll, pitch, yaw açıları 11.10.2010 Fehim KÖYLÜ 87 Euler açıları • (+)Anlaşılması kolay • (+)Az sayı ile temsil • (-)Verilen dönüşüm için tek bir açı temsili yok. • (-)İki farklı açı seti arasında dönüşüm zor. 11.10.2010 Fehim KÖYLÜ 88 Dönüşüm Karşılaştırması İşlem Matris Euler Quad Koordinat uzaylarında nokta döndürme + - - Ardarda + dönüşüm birleşim - + Interpolasyon - + + Anlaşılabilir Zor Kolay Zor Bellek 9 sayı 3 sayı 4 sayı Bir dönüşüm için temsil Tekil Sonsuz üçlü bulunabilir İki temsil 11.10.2010 Fehim KÖYLÜ 89 Temsiller arası dönüşüm • • • • Euler -> Matris Matris -> Euler Quaternion -> Matris Matris -> Quaternion 11.10.2010 Fehim KÖYLÜ 90