Transformasi Transformasi Grafika Komputer adalah proses transformasi dari

  • Slides: 15
Download presentation
Transformasi

Transformasi

Transformasi • Grafika Komputer adalah proses transformasi dari model 3 D obyek menjadi citra

Transformasi • Grafika Komputer adalah proses transformasi dari model 3 D obyek menjadi citra 2 D, ini sama dengan analogi kamera. • Sebelum memotret, apa yang dilakukan? – melakukan pengesetan kamera dalam bentuk setting lensa kamera (zoom in/out) – mengarahkan kamera ke obyek (ex: mengatur letak tripod) – mengatur letak obyek (ex: mengubah-ubah letak objek) – mengatur skala dan layout dari foto (ex : foto dengan orang di sisi pinggir)

Transformasi • Analogi di atas merupakan penjelasan dari jenis-jenis transformasi sbb: – melakukan pengesetan

Transformasi • Analogi di atas merupakan penjelasan dari jenis-jenis transformasi sbb: – melakukan pengesetan kamera dalam bentuk setting lensa kamera (Transformasi Proyeksi), – mengarah kamera ke obyek (Transformasi Viewing), – mengatur letak obyek (Transformasi Modeling), – mengatur skala dan layout dari foto (Transformasi Viewport) -> dengan gl. View. Port pada contoh sebelumnya

Transformasi Proyeksi • Digunakan untuk menentukan viewing volume. • Dua macam Transf. proyeksi yaitu

Transformasi Proyeksi • Digunakan untuk menentukan viewing volume. • Dua macam Transf. proyeksi yaitu Perspektif dan Orthogonal • Perspektif : objek yang jauh terlihat lebih kecil • Orthogonal : maps objects directly onto the screen without affecting their relative size

Transformasi Proyeksi terdiri dari a. Transformasi Orthogonal/Paralel (gambar atas) b. Transformasi Perspektif (mengerucut ke

Transformasi Proyeksi terdiri dari a. Transformasi Orthogonal/Paralel (gambar atas) b. Transformasi Perspektif (mengerucut ke satu titikproyeksi, gambar bawah)

Transformasi Viewing • Untuk menghasilkan gambar, kamera perlu diletakkan pada posisi yang tepat didepan

Transformasi Viewing • Untuk menghasilkan gambar, kamera perlu diletakkan pada posisi yang tepat didepan pemandangan yang diinginkan. • Secara default, dalam Open. GL kemera akan berada posisi (0, 0, 0) dengan menghadap ke arah z = -1 dengan sumbu y mengarah ke atas kamera. • Hal ini dapat dilakukan dengan menggunakan perintah glu. Look. At() dengan didahului proses merubah status Open. GL ke modelview dengan perintah gl. Matrix. Mode(GL_MODELVIEW).

 • • • #include <GL/gl. h> #include <GL/glut. h> • • • void

• • • #include <GL/gl. h> #include <GL/glut. h> • • • void init(void) { gl. Clear. Color (0. 0, 0. 0); gl. Shade. Model (GL_FLAT); } • • • void display(void) { gl. Clear (GL_COLOR_BUFFER_BIT); gl. Color 3 f (1. 0, 1. 0); gl. Load. Identity (); /* clear the matrix */ /* viewing transformation */ glu. Look. At (0. 0, 5. 0, 0. 0, 1. 0, 0. 0); gl. Scalef (1. 0, 2. 0, 1. 0); /* modeling transformation */ glut. Wire. Cube (1. 0); gl. Flush (); } • • void reshape (int w, int h) { gl. Viewport (0, 0, (GLsizei) w, (GLsizei) h); gl. Matrix. Mode (GL_PROJECTION); gl. Load. Identity (); gl. Frustum (-1. 0, 1. 5, 20. 0); gl. Matrix. Mode (GL_MODELVIEW); } • • • • int main(int argc, char** argv) { glut. Init(&argc, argv); glut. Init. Display. Mode (GLUT_SINGLE | GLUT_RGB); glut. Init. Window. Size (500, 500); glut. Init. Window. Position (100, 100); glut. Create. Window (argv[0]); init (); glut. Display. Func(display); glut. Reshape. Func(reshape); glut. Main. Loop(); return 0; }

Viewing Transformation - glu. Look. At() • After the matrix is initialized, the viewing

Viewing Transformation - glu. Look. At() • After the matrix is initialized, the viewing transformation is specified with glu. Look. At(). • The arguments for this command indicate where the camera (or eye position) is placed, where it is aimed, and which way is up. • The arguments used here place the camera at (0, 0, 5), aim the camera lens towards (0, 0, 0), and specify the up-vector as (0, 1, 0). The up-vector defines a unique orientation for the camera. • If glu. Look. At() was not called, the camera has a default position and orientation. By default, the camera is situated at the origin, points down the negative z-axis, and has an up-vector of (0, 1, 0).

 • Try This • Change the glu. Look. At() call in code to

• Try This • Change the glu. Look. At() call in code to the modeling transformation gl. Translatef() with parameters (0. 0, -5. 0). The result should look exactly the same as when you used glu. Look. At(). Why are the effects of these two commands similar?

GLU Quadrics • glu. Quadric. Texture(GLUquadric. Obj *obj, Glboolean mode) – Open. GL generates

GLU Quadrics • glu. Quadric. Texture(GLUquadric. Obj *obj, Glboolean mode) – Open. GL generates texture coordinates – GL_FALSE: no texture coordinates (default) • glu. Sphere(GLUquadric. Obj *obj, Gldouble radius, Glint slices, Glint • stacks) – creates a Sphere in the origin with the given radius • glu. Cylinder(GLUquadric. Obj *obj, Gldouble base, Gldouble top, Gldouble height, Gldouble slices, Gldouble stacks) – A centered cylinder with specified base and top radii • • • glut. Wire. Sphere(Gldouble radius, Glint slices, Glint stacks) glut. Solid. Sphere(Gldouble radius, Glint slices, Glint stacks) glut. Wire[Solid]Cone(Gldouble base, Gldouble height, Glint slices, Glint stacks) glut. Wire[Solid]Teapot (Gldouble size)

Modelling Transformation • You use the modeling transformation to position and orient the model.

Modelling Transformation • You use the modeling transformation to position and orient the model. For example, you can rotate, translate, or scale the model - or perform some combination of these operations. • Example 3 -1, gl. Scalef() is the modeling transformation that is used. The arguments for this command specify how scaling should occur along the three axes. If all the arguments are 1. 0, this command has no effect. In Example 3 -1, the cube is drawn twice as large in the y direction. Thus, if one corner of the cube had originally been at (3. 0, 3. 0), that corner would wind up being drawn at (3. 0, 6. 0, 3. 0). The effect of this modeling transformation is to transform the cube so that it isn't a cube but a rectangular box.

 • Try This • Change the glu. Look. At() call in Example 3

• Try This • Change the glu. Look. At() call in Example 3 -1 to the modeling transformation gl. Translatef() with parameters (0. 0, -5. 0). The result should look exactly the same as when you usedglu. Look. At(). Why are the effects of these two commands similar?

Viewport Transformation • Together, the projection transformation and the viewport transformation determine how a

Viewport Transformation • Together, the projection transformation and the viewport transformation determine how a scene gets mapped onto the computer screen.

 • Tambahkan animasi rotasi pada objek kubus dan inputan keyboard untuk translasi pada

• Tambahkan animasi rotasi pada objek kubus dan inputan keyboard untuk translasi pada sumbu z. Contoh coding pada pertemuan 2