Bilgisayar Grafik Erciyes Üniversitesi Bilgisayar Mühendisliği 2 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..2 Fehim KÖYLÜ 2
Matematik temeller Temel cebir Vektör, matris cebiri Kuaterniyon (dördey) cebiri Geometri cebiri..2 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..2 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..2 Fehim KÖYLÜ 5
Problem & Uygulama Eğlence Oyun Sinema Reklam Eğitim Sanal gerçeklik Animasyon Bilimsel gösterim Bilgisayar destekli tasarım..2 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..2 Fehim KÖYLÜ 7
Grafik Kütüphaneleri Birinci Nesil Grafik API(97) Core Api İkinci Nesil API(98) Üçüncü Nesil API (99) DirectX OpenGL Dördüncü Nesil API(2) WPF Java3D http://design.osu.edu/carlson/history/timeline.html..2 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)..2 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..2 Fehim KÖYLÜ
Izgara Grafik (Raster) Çözünürlük: piksel/inç..2 Fehim KÖYLÜ
Izgara Grafik (Raster) Çözünürlük: 72pixel/inç..2 Fehim KÖYLÜ 2
Vektör Grafik Cornell Box Stanford Bunny Utah Teapot..2 Fehim KÖYLÜ 3
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,..2 Fehim KÖYLÜ 4
CAD - I Los Angeles Airport *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları..2 Fehim KÖYLÜ 5
CAD - II *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları Boeing 777..2 Fehim KÖYLÜ 6
Entertainment - I *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları Computer Graphics in movie industry..2 Fehim KÖYLÜ 7
Entertainment *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları..2 Fehim KÖYLÜ 8
Entertainment - II Games *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları..2 Fehim KÖYLÜ 9
Data Gloves, Head Mounted Display *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları..2 Fehim KÖYLÜ 2
*Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları..2 Fehim KÖYLÜ 2
HMD *Doç.Dr.Aybars Uğur,Eğe Ü. Bilg.G. Notları..2 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..2 Fehim KÖYLÜ 23
3 Boyutlu grafik Doku Kaplama Modelleme Işık-gölge Görünür yüzey 2B Ekran İzdüşüm..2 Fehim KÖYLÜ 24
Koordinat Sistemi 2 Boyutlu Kartezyen sistemi (X,Y eksenleri)..2 Fehim KÖYLÜ 25
Koordinat Sistemi 3 Boyutlu Kartezyen sistemi (X,Y,Z eksenleri) Sağ el kuralı koordinat uzayları Sol el kuralı koordinat uzayları..2 Fehim KÖYLÜ 26
Sol&Sağ el koordinat uzayları Bakış Sol el Sağ el Yönü +x +y -> +z +z -> -y -y -> -z Koordinat uzayı +y -> -z -z -> -y -y -> +z -z -> +y +z -> +y..2 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 x a = [ ] = [ y y y q p a a ]..2 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..2 Fehim KÖYLÜ 29
Matris Cebri Transpoz Toplama İki matris çarpma Skaler ile çarpma Vektör ile matris çarpma Determinantı Matris Tersi..2 Fehim KÖYLÜ 3
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...2 Fehim KÖYLÜ 3
Dönüşümler Taşıma Ölçekleme Döndürme Yansıtma [ x y]* T = [ x' y '] Nokta Dönüşüm Çarpanı Noktanın Yeni Konumu..2 Fehim KÖYLÜ 32
Taşıma [ x y] + [ t t ] = [ x' y x y ']..2 Fehim KÖYLÜ 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 c b d Ölçekleme Döndürme Dönüşüm a A cθ b sθ c -sθ d D cθ X eksenine göre yansıtma - Y ye göre yansıtma - O göre yansıtma Y=X doğrusuna göre yansıtma - -..2 Fehim KÖYLÜ 34
Ölçekleme 2 2..2 Fehim KÖYLÜ 35
Döndürme Noktalar; 2 2 θ=45 cos 45 sin 45 sin 45 cos 45 2,4,4,77,77 = *,4,77,77 2,4,4..2 Fehim KÖYLÜ 36
Döndürme θ=9 θ=8 *Saatin tersi yönde..2 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. [ x y ]* T = [ x' y' ] Nokta Dönüşüm matrisi Noktanın Yeni Konumu..2 Fehim KÖYLÜ 38
Düzgün Dönüşüm matrisi Affine transformation matrix [x y ] 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 kullanılır. Ölçekleme katsayıları a b c d e f Taşıma katsayıları g h Döndürme katsayıları Kısmi projeksiyon Genel ölçekleme..2 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 ] homojen biçiminde gösterilebilir. Ölçekleme Döndürme meyilleme Taşıma a d g t b e h u c f l v p q r s Projeksiyon (izdüşümü) Genel ölçekleme..2 Fehim KÖYLÜ 4
..2 Fehim KÖYLÜ 4 Genel ölçekleme 2 noktaya genel ölçekleme uygulanırsa; ] [ ] 5 5 [ 5 ]* [ ' ' ' 2 ' ' ' 2 2 2 2 2 2 z y x z y x z y x z y x z y x z y x = =,... 5 ' x x =
Bileşik dönüşüm matrisi Peş peşe birkaç dönüşüm işlemi gerçekleştirilmek istenirse; V * T = V V * T2 = V V * T3 = V Bunun yerine; T * T2 * T3 = T bileşik V * T bilesik = V..2 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...2 Fehim KÖYLÜ 43
3B Döndürme X ekseni etrafında döndürme; cosα sinα sinα cosα..2 Fehim KÖYLÜ 44
3B Döndürme Y ekseni etrafında döndürme; cos β sin β sin β cos β..2 Fehim KÖYLÜ 45
3B Döndürme Z ekseni etrafında döndürme; cosθ sinθ sinθ cosθ..2 Fehim KÖYLÜ 46
3B Döndürme Keyfi bir eksene göre döndürmek A=[l m n ] 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...2 Fehim KÖYLÜ 47
Projeksiyon En temel projeksiyon; 3 boyutlu uzaydan 2 boyutlu düzleme izdüşürmektir...2 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...2 Fehim KÖYLÜ 49
Projeksiyon Paralel Projeksiyon (izdüşüm) Perspektif Ortographic Lineer Perspektif Axononetric Bir nokta Trimetric Dimetric İki nokta Üç nokta Isometric Curvilineer perspektif Oblique Ters perspektif Cavalier Cabinet..2 Fehim KÖYLÜ 5
Projeksiyon temelleri İğne deliği (pin hole) kamera Pinhole Multiple rays of projection Film Plane..2 Fehim KÖYLÜ 5
Projeksiyon temelleri Nokta kamerada resim düzlemine izdüşüm Pinhole One ray of projection Film Plane..2 Fehim KÖYLÜ 52
Görünüm alanı Görünüm alanı (Field of view) Focal Length Pinhole Film Plane..2 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. Focal Length Pinhole Field of View Film Plane..2 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 Projection Plane..2 Fehim KÖYLÜ 55
Perspektif izdüşüm Tek nokta perspektif izdüşüm İki nokta perspektif izdüşüm..2 Fehim KÖYLÜ 56 http://www.sanford-artedventures.com/create/tech_2pt_perspective.html
Perspektif izdüşüm X View plane P (x, y, z) (,,) x =? Z d..2 Fehim KÖYLÜ 57
Perspektif izdüşüm [x y z ] noktasının düzleme izdüşümü..2 Fehim KÖYLÜ 58
Perspektif izdüşüm Yükseklik..2 Fehim KÖYLÜ 59
COP yer değişimi COP Perspektif izdüşüm COP COP, Orthographic View..2 Fehim KÖYLÜ 6
Perspektif izdüşüm..2 Fehim KÖYLÜ 6 *Wikipedia
Perspektif izdüşüm Perspektif izdüşüm 3 nokta resim izdüşüm düzlemini, diğer nokta kamera konumunu belirtir...2 Fehim KÖYLÜ 62
Perspektif izdüşüm Z=r düzlemine izdüşüm dönüşüm matrisi r..2 Fehim KÖYLÜ 63
..2 Fehim KÖYLÜ 64 Perspektif izdüşüm Projeksiyon merkezi (COP, kamera konumu) [,,-k] iken z= düzlemine izdüşüm (projeksiyon düzlemi) dönüşüm matrisi *Ders notu Sayfa 24 / k
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)..2 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..2 Fehim KÖYLÜ 66
Resim düzlemi Tepe görünüm Perspektif izdüşüm Kamera (x,y,z) konumunda iken, üst sağda verilen kamera görüntüsünde her bir noktanın(x,y) pozisyonu, sahne(x,y,z) konumundan perspektif izdüşümü ile elde edilir. Kamera (Xk,Yk,Zk) *X ekseni: (Kırmızı) Y ekseni: (Yeşil) Z ekseni: (Mavi) sahne..2 Fehim KÖYLÜ 67
Resim düzlemi Perspektif izdüşüm X Resim düzlemi (,,) y =? sahne Kamera (Xk,Yk,Zk) d P (x, y, z) *X ekseni: (Kırmızı) Y ekseni: (Yeşil) Z ekseni: (Mavi)..2 Fehim KÖYLÜ 68 Z
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...2 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 ) * ( T,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..2 Fehim KÖYLÜ 7
*KTÜ..2 Fehim KÖYLÜ 7
..2 Fehim KÖYLÜ 72
..2 Fehim KÖYLÜ 73
..2 Fehim KÖYLÜ 74
Perspektif izdüşüm Kameranın pozisyonuna göre her bir noktanın izdüşüm dönüşümleri yapmak için; X Resim Düzlemi P (x, y, z) (,,) x =? d y = d..2 Fehim KÖYLÜ 75 x = x z d y z 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...2 Fehim KÖYLÜ 76
Paralel v Perspektif Parallel Projection Perspective Projection..2 Fehim KÖYLÜ 77
Ortographic Paralel Projection Kamera arka düzlemi lens ile paraleldir. Sonsuz uzaklıkta odak noktası vardır...2 Fehim KÖYLÜ 78
..2 Fehim KÖYLÜ 79 Ortographic Paralel Projection Z=n düzlemi için Y=m düzlemi için n m
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..2 Fehim KÖYLÜ 8
Axonometric Projection Views: a. trimetric b. top c. side..2 Fehim KÖYLÜ 8
..2 Fehim KÖYLÜ 82 İzdüşüm matrisleri Z= (x-y)düzlemi ortografik -> z=n düzlemi ortografik-> Trimetrik axonometrik paralel->. x ekseninde 9 derece döndürülür 2. z= düzlemine projeksiyon yapılır. = T = n T = T = cos9 sin 9 sin 9 cos9 T
..2 Fehim KÖYLÜ 83 İzdüşüm matrisleri Dimetrik axonometrik paralel izdüşüm θ x = 2,75 θy= 22,28 [ ] [ ] = cosθ θ θ cosθ. cosθ sin θ θ cosθ. x x x x y y y y Sin Sin Sin z y x H z y x
..2 Fehim KÖYLÜ 84 İzdüşüm matrisleri izometrik axonometrik paralel izdüşüm θ x = 35,26 θy= 45 *Ders notu Sayfa 23 [ ] [ ] = cosθ θ θ cosθ. cosθ sin θ θ cosθ. x x x x y y y y Sin Sin Sin z y x H z y x
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)..2 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..2 Fehim KÖYLÜ 86
Euler Açıları Heading (y) Pitch(x) Bank (z) Başka bir isimlendirme Roll, pitch, yaw açıları..2 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...2 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..2 Fehim KÖYLÜ 89
Temsiller arası dönüşüm Euler -> Matris Matris -> Euler Quaternion -> Matris Matris -> Quaternion..2 Fehim KÖYLÜ 9