Bilgisayar Grafiklerioguzhanoztas.com/bg/bilg_grafik_1.pdf · -2D Temel işlemler -2D uzay...

Preview:

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 :