Bilgisayar Grafik

advertisement
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
Download