Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Bilgisayar Grafikleri
Kaynak Kitaplar : Mathematical Elements for Computer Graphics David F.Rogers, J.Alan Adams McGraw-Hill Publishing Company Procedural Elements for Computer Graphics David F.Rogers McGraw-Hill Publishing Company
Konular
-OpenGL’e giriş
-2D ve 3D nokta ve cisim tanımı
-2D Temel işlemler
-2D uzay eğrileri
-3D Temel işlemler
-Projeksiyon
-3D uzay yüzeyleri
-Saklı yüzey
-Saklı kenar
-Kaplama
-Aydınlatma
OpenGL’e giriş OpenGL’in Avantajları
• Tüm OpenGL uygulamaları, işletim sistemi ne olursa olsun, OpenGL API uyumlu donanımlar üzerinde mükemmel görsel sonuçlar üretebilir. • Grafik donanımlarının yeni gelişmiş özellikleri, OpenGL tarafından, geliştirme mekanizması (extension mechanism) sayesinde kullanılabilir. Yani OpenGL, donanımaözel, gelişmiş özellikleri kullanmak için API fonksiyonları içerebilir. • OpenGL temelli grafik uygulamaları, çok çeşitli sistemler üzerinde koşulabilir. (tüketici elektroniği – consumer electronics, PC, iş istasyonu – workstation, süper bilgisayarlar gibi) • OpenGL grafik kütüphanesi kullanılarak, çok daha az bir kod satırıyla daha yüksek performansa sahip uygulamalar geliştirmek mümkündür. • OpenGL grafik kütüphanesine dair teknik bilgi içeren birçok kaynak mevcuttur.(internet, kitaplar, vs.) • Birçok programlama dili (C, C++, Fortran, Ada, Java gibi) OpenGL tabanlı uygulama geliştirmemize olanak sağlar.
OpenGL Söz dizimi
Opengl komutları, gl öneki ile başlarlar. (örnek; glClearColor()).
Benzer şekilde OpenGL tarafından tanımlı sabitler de GL_ öneki
ile başlarlar ve kelimeler birbirinden _ ile ayrılacak şekilde büyük
harfle yazılırlar.
(örnek; GL_COLOR_BUFFER_BIT).
glColor3f komutundaki 3 sayısı da 3 parametre alacağı anlamına
gelmektedir. f ise verilen parametrelerin float olacağı anlamına
gelmektedir.
glVertex2i(1,3); ya da
glVertex2f(1.0,3.0); gibi
2D ve 3D nokta ve cisim tanımı
İki boyutlu uzayda bir noktayı şu şekilde tanımlarız: Bu gösterim bir A(x,y) noktası için, satır ya da sütun şeklinde tanımlanabilir. Bu matris gösterimi ilerideki işlemlerde temel matris olarak alınacaktır. Birden fazla nokta olması durumunda bu noktalar, bu matrise aynı formda alt alta ekleneceklerdir. Örneğin, A(x1,y1) ve B(x2,y2) olmak üzere iki nokta ile tanımlama yapıldığında sözkonusu matris şu şekilde olacaktır:
yx
22
11
yx
yxX nokta
2D Temel işlemler
-Öteleme
-Ölçekleme
-Yansıtma
-Döndürme
-Herhangi bir nokta etrafında döndürme
-Herhangi bir doğruya göre yansıtma
ndybxy
mcyaxx
*
*
Homojen Koordinat sistemindeki işlemler:
1
0
0
][
nm
dc
ba
T Dönüşüm Matrisi
]1[
1
010
001
]1[]1[ ** nymx
nm
yxyx
Öteleme :
Ölçekleme :
]122[
100
020
002
]1[]1[ ** yxyxyx
Yansıtma :
]1[
100
010
001
]1[]1[ ** yxyxyx
]1[
100
010
001
]1[]1[ ** yxyxyx
]1[
100
010
001
]1[]1[ ** yxyxyx
y-eks göre
x-eks göre
y= - x göre
Döndürme :
P = [x y] = [rcosҨ rsinҨ] P* = [x* y*] = [rcos(Ҩ+Ө) rsin(Ҩ+Ө)] P* = [x* y*] = [r(cosҨcosӨ-sinҨsinӨ) r(cosҨsinӨ+sinҨcosӨ] P* = [x* y*] = [xcosӨ-ysinӨ xsinӨ+ycosӨ] x*= xcosӨ-ysinӨ y*= xsinӨ+ycosӨ
100
0cossin
0sincos
]1[]1[
]][[][
**
*
yxyx
RXX
Herhangi bir nokta etrafında döndürme :
1
010
001
100
0cossin
0sincos
1
010
001
11**
nmnm
yxyx
Herhangi bir doğruya göre yansıtma :
1
010
001
100
0cossin
0sincos
100
010
001
100
0cossin
0sincos
1
010
001
11**
nmnm
yxyx
2D Uzay Eğrileri 1- Parabol uydurma:
Bezier Eğrisi :
Cubic Spline Eğrisi :
=P2
=P2’
Örnek: P1[0,0], P2[1,1], P3[2,-1], P4[3,0], P’1[1,1], P’4[1,1]
Standart Cubic Spline:
Ara noktalardaki türev değerlerinin hesabı
Normalize edilmiş cubic spline:
Uç noktaları selbest bırakılmış cubik spline:
Normalize edilmiş ve uç noktaları selbest bırakılmış cubic spline :
(a)-Noktasal (b)-Doğrusal (c)-Normalize edilmiş (d)-Standart
B-Spline Eğrisi :
n=4
k=3, n=3
k=2, n=3
3D Temel işlemler
-Öteleme
-Ölçekleme
-Yansıtma
-Döndürme
-Herhangi bir doğru etrafında döndürme
-Herhangi bir düzleme göre yansıtma
Ölçekleme=
Döndürme=
Yansıtma=
Öteleme=
Herhangi bir doğru etrafında döndürme=
Herhangi bir düzleme göre yansıtma=
Projeksiyon(izdüşüm)
3D Uzay Yüzeyleri Kaydırma Yüzeyi :
Döndürme Yüzeyi :
Döndürme Yüzeyi :
Döndürme Yüzeyi :
Kaydırma Yüzeyi :
Kaydırma Yüzeyi :
Bezier Yüzeyi :
(0,0)
(1,1)
(1,0)
(0,1)
4x4 nokta matrisi
5x3 nokta matrisi
B-Spline Yüzeyi :
Saklı Yüzey
Saklı Kenar
Tamamen görünür.
Tamamen görünür.
1
2
Nokta matrisleri :
Kenar Matrisleri :
Yüzey Matrisleri :