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

Slides:



Advertisements
Presentasi serupa
Pertemuan 03: Grafika Komputer: Windows dan Viewport
Advertisements

Dasar 3 Dimensi Spesifikasi Koordinat 3D
KULIAH MEDAN ELEKTROMAGNETIK
BAB 2 VEKTOR Besaran Skalar Dan Vektor
Transformasi geometri.  Pemindahan objek (titik, garis, bidang datar) pada bidang.  Perubahan yang (mungkin) terjadi: Kedudukan / letak Arah Ukuran.
Grafika Komputer (TIZ10)
Bab 1 Analisa Vektor.
D3 Manajemen Informatika 2 DB23
Transformasi Geometri 2 Dimensi
KOMPUTER GRAFIKA TRANSFORMASI 2D (ROTASI DAN SHEARING)
Grafika Komputer (Defiana Arnaldy, M.Si)
Imam Cholissodin| 04 |Transformations Imam Cholissodin|
Eriq Muhammad Adams J | 04 |Transformation Eriq Muhammad Adams J |
Grafika Komputer PS Teknik Informatika
Imam Cholissodin| 06 | Viewing / Camera Imam Cholissodin|
II. Kinematika Robot Pendahuluan Definisi :
12. Kesetimbangan.
MATA KULIAH MATEMATIKA LANJUT 1 [KODE/SKS : IT / 2 SKS]
TRANSFORMASI 2D.
VEKTOR 2.1.
BAB 1 Vektor.
Tri Rahajoeningroem,MT T. Elektro - UNIKOM
Transformasi Geometri Sederhana
Irma Damayantie, S.Ds., M.Ds Prodi Desain Interior - FDIK
Transformasi Geometri Sederhana
GEOMETRI SUDUT DAN BIDANG.
Transformasi 2D Grafika Komputer.
GEOMETRI Probolinggo SMK Negeri 2 SUDUT DAN BIDANG.
OPERASI VEKTOR Pertemuan 3
PERKALIAN VEKTOR Di sini ditanyakan apa yang dimaksud dengan fisika.
BAB 2 VEKTOR Pertemuan
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Anna Dara Andriana, S.Kom., M.Kom
Transformasi geometri
Konsep 3D dan Representasi Objek 3D
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
3D Elisabeth, S.kom.
Proyeksi.
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
VEKTOr Fisika I 4/30/2018.
PENCERMINAN ( Refleksi )
Transformasi 2D.
VEKTOR (2).
MEDAN ELEKTROMAGNETIK TF 2204
KOMPUTER GRAFIKA TRANSFORMASI 2D (ROTASI DAN SHEARING)
TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D)
SISTEM KOORDINAT SILINDER
Transformasi 3 Dimensi Disampaikan oleh: Edy Santoso, S.Si., M.Kom
BAB 3 VEKTOR 2.1.
TRANSFORMASI 2 DIMENSI Oleh : Hieronimus Edhi Nugroho, M.Kom
Oleh : Farihul Amris A, S.Pd.
Pertemuan 2 Aritmatika Vektor.
Transformasi 2 Dimensi.
BAB I ANALISIS VEKTOR 1.1 SKALAR DAN VEKTOR Skalar Vektor Medan skalar
Grafika Komputer Transformasi 2 Dimensi.
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
DIMENSI DUA transformasi TRANSLASI.
Irma Damayantie, S.Ds., M.Ds Prodi Desain Interior - FDIK
VEKTOR.
Pengantar Teknologi dan Aplikasi Elektromagnetik
Konsep 3D dan Representasi Objek 3D
Peta Konsep. Peta Konsep C. Penerapan Matriks pada Transformasi.
3D Viewing & Projection.
Transformasi Geometri 2 Dimensi
BAB 2 VEKTOR 2.1.
Transformasi Geometri 2 Dimensi
ULANGAN SELAMAT BEKERJA Mata Pelajaran : Matematika
SYNTHETIC CAMERA Hieronimus Edhi Nugroho, M.Kom 12/6/2018
MODUL-3 VEKTOR dan SKALAR
Transcript presentasi:

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

Viewing / Camera : What’s Viewing / Camera Parallel Projection Parallel Projection Syntax Perspective Projection Perspective Projection Syntax Activation Function Multiple View Taxonomy Projection Math for Computer Graphics Demos Program

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

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

Parallel Projection Syntax glOrtho(-15.0, 20.0, -10.0, 15.0, -50.0, 70.0); Mendefinisikan besarnya sistem koordinat 3D : dengan range sumbu x adalah [-15,20], range untuk sumbu y adalah [-10,15], range untuk sumbu z adalah [-50,70] gluOrtho2D(-100,100,-200,200); Mendefinisikan besarnya sistem koordinat 2D : 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 glOrtho() menjadi gluPerspective(), gluLookAt() dan glFrustum(). Proyeksi Perspektif Vs Proyeksi Paralel: Proyeksi Perspektif Proyeksi Paralel

Perspective Projection Syntax gluPerspective( 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

Perspective Projection Syntax glFrustum( 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 gluLookAt( 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 : gluLookAt (Synthetic Camera)

Activation Function gluPerspective() : ……………………… glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(AngleView, Aspek Rasio, Near, Far); ……………………………………….. gluLookAt() : ……………………… glMatrixMode(GL_MODELVIEW); gluLookAt(mata_x, mata_y, mata_z, lihat_x, lihat_y, lihat_z, atas_x, atas_y, atas_z); ………………………………………..

Multiple View Satu objek 3D 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. Pilih nilai D terbaik. v lookAt n D D u

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

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

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

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

Vektor Titik 2D -> Vektor 3D -> Matrik 3D -> Vektor 3D (Px,Py) -> [Px Py 1] -> Matrik 3D -> [Qx Qy 1] Titik 3D -> Vektor 4D -> Matrik 4D -> Vektor 4D (Px,Py,Pz)->[Px Py Pz 1] -> Matrik 4D -> [Qx Qy Qz 1]

Vektor Vektor adalah kumpulan nilai yang memiliki besaran dan arah. Operasi vektor : +, - Contoh : u + v , v - u Kombinasi vektor : Kombinasi Linier (a1u + a2v) Kombinasi Affine Jumlah semua komponennya 1. (a1+a2+…+an=1) Kombinasi Konvek Jumlah semua komponen 1, tetapi semua nilai koefisiennya adalah 0 ≤ ai ≤ 1. (a1+a2+…+an=1)

Vektor Besar Vektor Jika vektor u=(2,2,1), maka |u|= √(22+22+12)= √9 = 3 Dot Product 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 Unit Vektor : Ua = a/|a| = [2 3]/3.6 = [0.55 0.16] Ub = b/|b| = [3 -1]/3.16 = [0.95 0.32] cos Ө = Ua.Ub = (0.55x0.95) + (0.16x0.32) = 0.52 + 0.05 = 0.57 Jadi Ө = arccos (0.57) = 55.280 a•b=|a||b|cos Ө a Ө b normalisasi vektor, |Ua|=|Ub|=1

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

Sistem Koordinat Homogen Sistem koordinat yang memiliki satu dimensi lebih tinggi dari sistem koordinat yang ditinjau. Untuk menyatakan semua proses transformasi dengan konsep perkalian matrik, termasuk proses translasi, skala, rotasi maupun shear. Contoh : Translasi 3D -> 4D Translasi 2D -> 3D Koordinat Asal Koordinat Homogen

Translasi 2D Tentukan matrik translasi M untuk memindakan titik P(4,6) ke Q=(10,3) ! Jawab : dPx = 10-4 = 6 dan dPy = 3-6 = -3 Jadi matrik translasi M adalah

Translasi 3D Tentukan matrik translasi M untuk memindahkan titik P=(4,6,2) ke Q=(10,3,5) ! Jawab : dPx = 10-4 = 6, dPy = 3-6 = -3, dPz = 5-2 = 3 Jadi matrik translasi M adalah

Skala 2D Tentukan matrik skala untuk menskala titik P=(6,2) ke Q=(3,4). Jawab : sPx = 3/6 = 1/2 dan sPy = 4/2 = 2 Jadi matrik skala adalah

Skala 3D Tentukan matrik skala untuk menskala titik P=(6,2,9) ke Q=(3,4,3) Jawab : sPx = 3/6 = 1/2, sPy = 4/2 = 2, sPz = 3/9 = 1/3 Jadi matrik skala adalah

Rotasi 2D Rotasi titik P ke titik Q P(x,y)=(R cos Ө1, R sin Ө1) dan Q(x,y)=(R cos (Ө1 + Ө2 ) , R sin (Ө1 + Ө2 ) ) =(Px cos (Ө2)- Py sin (Ө2) , Px sin (Ө2) + Py cos (Ө2) ) Q y cos (Ө1 + Ө2 ) = cos(Ө1) cos (Ө2) - sin (Ө1) sin (Ө2) sin (Ө1 + Ө2 ) = sin(Ө1) cos (Ө2) + cos(Ө1) sin (Ө2) R P R y = R sin Ө1 Ө2 Ө1 x x = R cos Ө1

Rotasi 2D Rotasikan titik P=(3,2) dengan sudut rotasi 30 derajat. cos (30) = 0.86, cos (30) Jawab : Q(x,y)=(3 cos (30) - 2 sin (30) , 3 sin (30) + 2 cos (30) ) =(3(0.86)-2(0.5) , 3(0.5)+2(0.86)) =((2.58 - 1) , (1.5+1.72)) =(1.58,3.22)

Rotasi 2D Rotation about an arbitrary axis (Rotasi pada sembarang sumbu (Xr,Yr) dengan sudut Ө)

Rotasi 3D Roll Yaw Pitch y z x y z x y z x

sumbu putar sembarang titik (Ax,Ay,Az) Rotasi 3D Rotation about an arbitrary axis (Rotasi pada sembarang sumbu (Ax,Ay,Az) dengan sudut Ө) Perhatikan Gambar berikut : sumbu putar sembarang titik (Ax,Ay,Az) y x z

sumbu putar sembarang titik (Ax,Ay,Az) Rotasi 3D Perhatikan Gambar berikut : Diketahui bahwa sumbu putar membentuk sudut α dengan sumbu Y dan β dengan sumbu X. Untuk memutar suatu objek menggunakan sumbu putar sembarang tersebut, maka kita harus menghimpitkan sumbu putar dengan sumbu Y. sumbu putar sembarang titik (Ax,Ay,Az) Y α β X Z

sumbu putar sembarang titik (Ax,Ay,Az) Rotasi 3D Perhatikan Gambar berikut : Menghimpitkan sumbu putar sembarang dengan sumbu Y : Putar terhadap sumbu Y sebesar β. Sehingga mengakibatkan sumbu putar di bidang YX. Putar terhadap sumbu Z sebesar α. Sehingga mengakibatkan sumbu putar berhimpit dengan sumbu Y. Lakukan perputaran objek terhadap sumbu Y sebesar Ө. sumbu putar sembarang titik (Ax,Ay,Az) Y α β X Z

Rotasi 3D Proses menghimpitkan sumbu putar ke sumbu Y : Mengembalikan sumbu putar beserta objek yang sudah diputar ke kondisi awal. Dengan demikian untuk memutar benda menggunakan sumbu putar bebas yang dibentuk melalui sudut α terhadap sumbu Y dan β terhadap sumbu X, dapat dilakukan dengan rumus : Q = (Ry(β)*Rz(α)*Ry(Ө)* Rz(-α)*Ry(-β)) Y Y Y Ry(β) Rz(α) α α β X X X Z Z Z

sumbu putar s sembarang titik (Ax,Ay,Az) Rotasi 3D Apabila hanya diketahui salah satu titik yang berada di sumbu putar s : Bagaimana mendapatkan sudut α dan sudut β ? (Gunakan konsep vektor) Garis dari (0,0,0) menuju (Ax,Ay,Az) yang menjadi sumbu putar diwakili oleh vektor s. s = (Ax-0,Ay-0,Az-0) = (Ax,Ay,Az) sumbu putar s sembarang titik (Ax,Ay,Az) Y s s = (Ax,Ay,Az) u2= (0,1,0) u1= (1,0,0) u = (Ax,0,Az) u2 α u1 β X Z u (Ax,0,Az)

sumbu putar s sembarang titik (Ax,Ay,Az) Rotasi 3D sumbu putar s sembarang titik (Ax,Ay,Az) Dot product dari dua buah vektor s dan u2 dapat dituliskan sebagai berikut : s•u2=|s||u2|cos α , misal dengan u2=(0,1,0) dimana u2 adalah vektor yang berhimpit dengan sumbu Y. Y s = (Ax,Ay,Az) u2= (0,1,0) u1= (1,0,0) u = (Ax,0,Az) s u2 α u1 β X Z u (Ax,0,Az) Sudut α telah didapatkan

sumbu putar s sembarang titik (Ax,Ay,Az) Rotasi 3D sumbu putar s sembarang titik (Ax,Ay,Az) Dot product dari dua buah vektor u dan u1 dapat dituliskan sebagai berikut : u•u1=|u||u1|cos β , misal dengan u1=(1,0,0) dimana u1 adalah vektor yang berhimpit dengan sumbu X. Y s = (Ax,Ay,Az) u2= (0,1,0) u1= (1,0,0) u = (Ax,0,Az) s u2 α u1 β X Z u (Ax,0,Az) Sudut β telah didapatkan

Rotasi 3D Dengan demikian sudut α dan β dapat diperoleh, cukup dengan mengetahui salah satu titik yang dilewati sumbu putar. Anda juga dapat mengembangkan metode ini untuk menghitung sumbu putar yang ditentukan melalui dua buah titik misalnya s1=(Ax,Ay,Az) dan s2=(Bx,By,Bz). Sudut α telah didapatkan Sudut β telah didapatkan

Shearing 2D Sebelum Sesudah Shearing-x Shearing-y Sebelum Sesudah

Shearing 3D Shearing-x Shearing-y Shearing-z

Kombinasi Transformasi Jika (Px,Py)=(4,6) : Translasi(6,-3) -> Rotasi(60˚) -> Skala (0.5,2) (Cara 1 : Step by Step) Jadi (Qx,Qy) Akhir = (1.2,14.4)

Kombinasi Transformasi Jika (Px,Py)=(4,6) : Translasi(6,-3) -> Rotasi(60˚) -> Skala (0.5,2) (Cara 2 : Transformasi berturut-turut dapat dilakukan dengan mengalikan matrik-matrik transformasi sesuai dengan urutan) Jadi (Qx,Qy) Akhir = (1.2,14.4) Berapakah nilai (Qx,Qy) Akhir hasil pembalikan urutan Transformasi di atas !

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

Math of Synthetic Camera Sistem koordinat kamera sintetik : 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. u Mata =(eu , ev , en) y v VRP=(rx , ry , rz) n z LooAt=(lax , lay , laz) ry rx x rz

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

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 : 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 berikut : (Sebagai informasi tentang vertex dan permukaan objek) 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 Tabel 1 Tabel 2 Vertex X Y Z 0.0 -1.0 1 1.0 2 3 4 0.5 Surface Index 1 4 2 3

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

Math of Synthetic Camera Jawab : Mencari sistem koordinat UVN : Transformasi vertex ke sistem UVN : (-2*(0.46))+((-4)*(-0.01))+(-1*(-0.88)) Vertex tX=p-r tY=p-r tZ=p-r 0-2=-2 -1-3=-4 0-1=-1 1 -1 -4 2 3 -2 4 -1.5 -2.5 -0.5 Qu=t•u Qv=t•v Qn=t•n -0.62 4.53 0.46 -1.32 4 -0.42 -1.7 3.73 -0.88 -1 4.26 -0.23 -0.26 2.93

Math of Synthetic Camera Jawab : Mencari sistem koordinat UVN : Transformasi perspektif titik Q dengan mata/eye terletak di (0,0,en=6) : 0/(1-(4.53/6))=0/0.25=0 Qu=t•u Qv=t•v Qn=t•n -0.62 4.53 0.46 -1.32 4 -0.42 -1.7 3.73 -0.88 -1 4.26 -0.23 -0.26 2.93 Vertex u* v* -2.53 1 1.38 -3.96 2 -1.11 -4.49 3 -3.03 -3.45 4 -0.45 -0.51

Math of Synthetic Camera Jawab : Gambar synthetic camera dari vertex hasil transformasi perspektif (u*,v*) : v* Vertex u* v* -2.53 1 1.38 -3.96 2 -1.11 -4.49 3 -3.03 -3.45 4 -0.45 -0.51 u*

Imam Cholissodin| imam.cholissodin@gmail.com Selesai Imam Cholissodin| imam.cholissodin@gmail.com