06 Viewing Camera Imam Cholissodin imam cholissodingmail com

  • Slides: 45
Download presentation
06 | Viewing / Camera Imam Cholissodin| imam. cholissodin@gmail. com

06 | Viewing / Camera Imam Cholissodin| imam. cholissodin@gmail. com

Viewing / Camera : 1. 2. 3. 4. 5. 6. 7. 8. 9. What’s

Viewing / Camera : 1. 2. 3. 4. 5. 6. 7. 8. 9. What’s Viewing / Camera Parallel Projection Syntax Perspective Projection Syntax Activation Function Multiple View Taxonomy Projection Math for Computer Graphics

What’s Viewing / Camera Vertex Object Coordinates Modelview Matrix Eye Coordinates Projection Matrix Perspective

What’s Viewing / Camera Vertex Object Coordinates Modelview Matrix Eye Coordinates Projection Matrix Perspective Division Clip Coordinates GL_PROJECTION mode gl. Ortho() glu. Ortho 2 D() gl. Frustum() glu. Perspective() Normalized device Coordinates Viewport Transformation Window Coordinates gl. Viewport()

What’s Viewing / Camera • Cara mengatur pandangan objek 2 D maupun 3 D

What’s Viewing / Camera • Cara mengatur pandangan objek 2 D maupun 3 D dan mengontrol pergerakan kamera.

Parallel Projection • Proyeksi ini belum dapat menghasilkan objek 3 D yang nampak riil.

Parallel Projection • Proyeksi ini belum dapat menghasilkan objek 3 D yang nampak riil. D A D’ A’ C’ C B B’ Pusat Proyeksi pada titik tak terhingga Bidang Proyeksi • Pusat proyeksi pada objek akan bertemu di titik yang tak terhingga.

Parallel Projection Syntax • gl. Ortho(-15. 0, 20. 0, -10. 0, 15. 0, -50.

Parallel Projection Syntax • gl. Ortho(-15. 0, 20. 0, -10. 0, 15. 0, -50. 0, 70. 0); – Mendefinisikan besarnya sistem koordinat 3 D : dengan range sumbu x adalah [-15, 20], range untuk sumbu y adalah [-10, 15], range untuk sumbu z adalah [-50, 70] • glu. Ortho 2 D(-100, -200, 200); – Mendefinisikan besarnya sistem koordinat 2 D : dengan range sumbu x adalah [-100, 100] dan range untuk sumbu y adalah [-200, 200]

Perspective Projection • Untuk menciptakan pandangan perspektif, maka setting kamera perlu diubah dari gl.

Perspective Projection • Untuk menciptakan pandangan perspektif, maka setting kamera perlu diubah dari gl. Ortho() menjadi glu. Perspective(), dan gl. Frustum(). • Proyeksi Perspektif Vs Proyeksi Paralel: Proyeksi Perspektif Proyeksi Paralel

Perspective Projection Syntax • gl. Frustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top,

Perspective Projection Syntax • gl. Frustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far ) – left, right, top, and bottom define the boundaries of the near clipping plane – near and far specify how far from the viewpoint the near and far clipping planes are

Perspective Projection Syntax • glu. Perspective( GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far

Perspective Projection Syntax • glu. Perspective( GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far ) – fovy is the angle in the field of view (in range from [0. 0, 180]) – aspect is the aspect ratio of the frustrum (width of window over height of window) – near and far are the values between viewpoint and the near/far clipping planes

Angle

Angle

Aspect Ratio

Aspect Ratio

Viewing Volume

Viewing Volume

Perspective Projection Syntax • gl. Frustum and gluperspective does the same thing. Actually glu.

Perspective Projection Syntax • gl. Frustum and gluperspective does the same thing. Actually glu. Perspective probably calls gl. Frustum. It uses the angle you passed as well as your near clipping plane to calculate the left coodirnates then right = - left bottom = ratio*left; top = -bottom

Perspective Projection Syntax • glu. Look. At( GLdouble e_x, GLdouble e_y, GLdouble e_z, GLdouble

Perspective Projection Syntax • glu. Look. At( GLdouble e_x, GLdouble e_y, GLdouble e_z, GLdouble c_x, GLdouble c_y, GLdouble c_z, GLdouble u_x, GLdouble u_y, GLdouble u_z ) – e_x, e_y, and e_z specify the desired viewpoint (eye) – c_x, c_y, c_z specify some point along the desired line of sight (center) – u_x, u_y, and u_z define the up vector of our camera (up) note : glu. Look. At (Synthetic Camera)

Activation Function • glu. Perspective() : …………… gl. Matrix. Mode(GL_PROJECTION); gl. Load. Identity(); glu.

Activation Function • glu. Perspective() : …………… gl. Matrix. Mode(GL_PROJECTION); gl. Load. Identity(); glu. Perspective(Angle. View, Aspek Rasio, Near, Far); ……………………. . • glu. Look. At() : …………… gl. Matrix. Mode(GL_MODELVIEW); gl. Load. Identity(); glu. Look. At(mata_x, mata_y, mata_z, lihat_x, lihat_y, lihat_z, atas_x, atas_y, atas_z); ……………………. .

Multiple View • Satu objek 3 D dilihat dengan posisi mata yang berbeda yaitu

Multiple View • Satu objek 3 D dilihat dengan posisi mata yang berbeda yaitu posisi mata kanan dan mata kiri. • Didasarkan pada stereokopik alami dari sistem mata. • Masing-masing mata melihat objek dari lokasi yang berbeda. v • Pilih nilai D terbaik. n D D u look. At

Taxonomy Projection Proyeksi Planar Perspektif Paralel Oblique Cavalier Kabinet Ortografik Lain-lain Satu Titik Dua

Taxonomy Projection Proyeksi Planar Perspektif Paralel Oblique Cavalier Kabinet Ortografik Lain-lain Satu Titik Dua Titik Tiga Titik Aksonometrik Ortografik multi pandangan Isometrik Dimetrik Trimetrik

Taxonomy Projection • Proyeksi Ortografik (Pandangan Aksonometrik) a) Isometrik : Semua sumbu x, y

Taxonomy Projection • Proyeksi Ortografik (Pandangan Aksonometrik) a) Isometrik : Semua sumbu x, y dan z diset dengan panjang yang sama. b) Dimetrik : Dua dari tiga sumbu koordinat diset dengan panjang yang sama. c) Trimetrik : Semua sumbu x, y dan z diset dengan tidak sama y panjang. y y x z (a) x x z (b) z (c)

Taxonomy Projection

Taxonomy Projection

Taxonomy Projection

Taxonomy Projection

Taxonomy Projection • Proyeksi Oblique (Kombinasi Ortografi) – Proyeksi ini mempertahankan muka objek dan

Taxonomy Projection • Proyeksi Oblique (Kombinasi Ortografi) – Proyeksi ini mempertahankan muka objek dan memberikan kesan alami 3 D yang lebih baik. 1 1 Cavalier 1 3/4 1 2/3 1 Cabinet 1/2

Taxonomy Projection

Taxonomy Projection

Math for Computer Graphics Vektor Sistem Koordinat Homogen Translasi 2 D dan 3 D

Math for Computer Graphics Vektor Sistem Koordinat Homogen Translasi 2 D dan 3 D Skala 2 D dan 3 D Rotasi 2 D dan 3 D Kombinasi Transformasi (Misal objek 2 D : Translasi -> Rotasi -> Skala) • Math of Synthetic Camera • • •

Vektor • Besar Vektor Jika vektor u=(2, 2, 1), maka |u|= √(22+22+12)= √ 9

Vektor • Besar Vektor Jika vektor u=(2, 2, 1), maka |u|= √(22+22+12)= √ 9 = 3 • Dot Product a • b=|a||b|cos Ө a Ө b Contoh : Diketahui dua buah vektor a=[2 3] dan b=[3 -1], carilah sudut antara a dan b ! Jawab : |a|= √ 22+32= √ 13=3. 6 dan |b|= √ 32+(-1)2= √ 10=3. 16 a • b = (2 x 3) + (3 x(-1)) = 6 -3 = 3 Jadi Ө = arccos (0. 26) = 74. 930

Vektor • Cross Product |axb|=|a||b|sin Ө a axb b • Contoh : Diketahui dua

Vektor • Cross Product |axb|=|a||b|sin Ө a axb b • Contoh : Diketahui dua buah vektor a = [3 3 1] dan b =[2 2 -3]. Carilah vektor yang tegak lurus terhadap a dan b. Jawab :

Vektor • Cross Product |axb|=|a||b|sin Ө a axb b • Dot Product a •

Vektor • Cross Product |axb|=|a||b|sin Ө a axb b • Dot Product a • b=|a||b|cos Ө a Ө b

Math of Synthetic Camera • Model yang meniru cara kerja kamera. • Cara kerja

Math of Synthetic Camera • Model yang meniru cara kerja kamera. • Cara kerja kamera sintetik : v n Film u Cahaya y x z Lensa Objek Transformasi dari koordinat dunia ke koordinat UVN – Objek pada sistem koordinat dunia (x, y, z) – Lensa pada sistem koordinat UVN/kamera sintetik (u, v, n) – Film sebagai bidang proyeksi

Math of Synthetic Camera • Sistem koordinat kamera sintetik : y z u v

Math of Synthetic Camera • Sistem koordinat kamera sintetik : y z u v n t=(la x , la y , l VRP=(rx , ry , rz) Loo. A rx Mata =(eu , ev , en) az ) ry x rz – Sumbu n sebagai arah pandang kamera, dan ditentukan berdasarkan vektor normal (nx, ny, nz). – Sumbu v sebagai arah atas, sumbu u sebagai arah horisontal. (v ∟ n), (u ∟ n) dan (u ∟ v) – Titik tengah sumbu u, v, n disebut VRP (Viewing Reference Point), yang ditentukan oleh titik (rx, ry, rz) pada koordinat dunia.

Math of Synthetic Camera • Mendapatkan sumbu u, v dan n – User menentukan

Math of Synthetic Camera • Mendapatkan sumbu u, v dan n – User menentukan titik tengah view/ eye (VRP), pusat titik pandang objek /center (look. At) dan vektor atas (Up. Vector). Synthetic Camera di Open. GL : glu. Look. At(eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ) – n adalah vektor dari VRP menuju look. At. Lalu vektor n dinormalisasi. Contoh : Diketahui VRP di titik r(rx , ry , rz), look. At di titik la(lax , lay , laz) dan Up. Vector di titik up(upx, upy, upz). Sehingga,

Math of Synthetic Camera • Memindahkan titik koordinat dunia P(Px, Py, Pz) ke koordinat

Math of Synthetic Camera • Memindahkan titik koordinat dunia P(Px, Py, Pz) ke koordinat kamera sintetik Q(Qu, Qv, Qn). Titik Q dapat diperoleh melalui : – t(tx, ty, tz) = P - r – Qu = t • u, Qv= t • v dan Qn = t • n note : Qu = (P-r) • u = (P • u)-(r • u) • Contoh : Diketahui koordinat UVN dengan u=(-1, 0, 0), v=(0, 0. 8, 0. 6), n=(0, -0. 6, 0. 8) dan r = (2, 3, -1). Hitunglah lokasi Q(Qu, Qv, Qn) yang merupakan transformasi dari titik P(4, 7, 2) di koordinat dunia ! Jawab : t(tx, ty, tz) = P - r = (4 -2, 7 -3, 2 -(-1)) =(2, 4, 3) Qu = t • u =(2, 4, 3) • (-1, 0, 0) = 2*(-1)+4*(0)+3*(0)=-2 Qv = t • v =(2, 4, 3) • (0, 0. 8, 0. 6) = 2*(0)+4*(0. 8)+3*(0. 6)=5 Qn = t • n =(2, 4, 3) • (0, -0. 6, 0. 8) = 2*(0)+4*(-0. 6)+3*(0. 8)=0 Jadi titik Q terletak di koordinat (-2, 5, 0) pada sistem koordinat UVN.

Math of Synthetic Camera • Matrik transformasi dari koordinat dunia ke UVN : •

Math of Synthetic Camera • Matrik transformasi dari koordinat dunia ke UVN : • Setelah titik Q diketahui, maka langkah berikutnya adalah melakukan proyeksi perspektif terhadap titik Q, sehingga kita memperoleh titik T(u*, v*). • Proyeksi Q ke T dapat diperoleh dengan menggunakan rumus berikut : mata/eye terletak di (0, 0, en), dengan syarat en > nz dan en !=0.

Math of Synthetic Camera • Contoh : Dengan menggunakan Tabel 1 dan Tabel 2

Math of Synthetic Camera • Contoh : Dengan menggunakan Tabel 1 dan Tabel 2 berikut : (Sebagai informasi tentang vertex dan permukaan objek) Tabel 2 Tabel 1 Vertex X Y Z 0 0. 0 -1. 0 0. 0 1 1. 0 -1. 0 0. 0 2 1. 0 -1. 0 3 0. 0 -1. 0 4 0. 5 Surface Index 0 1 4 1 2 4 2 3 4 3 0 4 Diketahui synthetic camera berada di (2, 3, 1) dan melihat ke arah (0, 0, 0). Arah atas didefinisikan melalui up=(0, 1, 0). Hitung dan gambarkan lokasi vertex-vertex seperti yang dilihat oleh synthetic camera apabila en=6. • Jawab : Mencari sistem koordinat UVN

Math of Synthetic Camera • Jawab : Mencari sistem koordinat UVN : Transformasi vertex

Math of Synthetic Camera • Jawab : Mencari sistem koordinat UVN : Transformasi vertex ke sistem UVN :

Vektor • Cross Product |axb|=|a||b|sin Ө a axb b • Dot Product a •

Vektor • Cross Product |axb|=|a||b|sin Ө a axb b • Dot Product a • b=|a||b|cos Ө a Ө b

Math of Synthetic Camera 0 0. 0 Vertex • Jawab : Mencari sistem koordinat

Math of Synthetic Camera 0 0. 0 Vertex • Jawab : Mencari sistem koordinat UVN : X Y Z -1. 0 0. 0 1 1. 0 -1. 0 0. 0 2 1. 0 -1. 0 3 0. 0 -1. 0 4 0. 5 (-2*(-0. 46))+((-4)*(0. 01))+(-1*(0. 88)) Transformasi vertex ke sistem UVN : Vertex t. X=p-r t. Y=p-r t. Z=p-r Qu=t • u Qv=t • v Qn=t • n 0 0 -2=-2 -1 -3=-4 0 -1=-1 0 -0. 62 4. 53 1 -1 -4 -1 -0. 46 -1. 32 4 2 -1 -4 0 0. 42 -1. 7 3. 73 3 -2 -4 0 0. 88 -1 4. 26 4 -1. 5 -2. 5 -0. 5 0. 23 -0. 26 2. 93

Math of Synthetic Camera • Jawab : Mencari sistem koordinat UVN : 0/(1 -(4.

Math of Synthetic Camera • Jawab : Mencari sistem koordinat UVN : 0/(1 -(4. 53/6))=0/0. 25=0 Transformasi perspektif titik Q dengan mata/eye terletak di (0, 0, en=6) : Qu=t • u Qv=t • v Qn=t • n 0 -0. 62 -0. 46 Vertex u* v* 4. 53 0 0 -2. 53 -1. 32 4 1 -1. 38 -3. 96 0. 42 -1. 7 3. 73 2 1. 11 -4. 49 0. 88 -1 4. 26 3 3. 03 -3. 45 0. 23 -0. 26 2. 93 4 0. 45 -0. 51

Math of Synthetic Camera • Jawab : Gambar synthetic camera dari vertex hasil transformasi

Math of Synthetic Camera • Jawab : Gambar synthetic camera dari vertex hasil transformasi perspektif (u*, v*) : Vertex u* v* 0 0 -2. 53 1 -1. 38 -3. 96 2 1. 11 -4. 49 3 3. 03 -3. 45 4 0. 45 -0. 51 v* u*

Vertex (P) X Y Z 0 0. 0 -1. 0 0. 0 1 1.

Vertex (P) X Y Z 0 0. 0 -1. 0 0. 0 1 1. 0 -1. 0 0. 0 2 1. 0 -1. 0 Jika diketahui synthetic camera berada di r = (2, 3, 1) dan fokus view di arahkan ke titik la = (0, 0, 0). Kemudian arah atas camera didefinisikan melalui vektor up = (0, 1, 0). Hitung u* dan v* dan gambarkan lokasi vertex-vertex seperti yang dilihat oleh synthetic camera pada koordinat (u*, v*) apabila en = 6 !

Selesai Imam Cholissodin| imam. cholissodin@gmail. com

Selesai Imam Cholissodin| imam. cholissodin@gmail. com