Transformasi Obyek (Lanjutan)

dokumen-dokumen yang mirip
Transformasi Obyek (Kasus 2D)

Gambar 1. Viewport pada layar

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan

PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing)

TRANSFORMASI. Tujuan transfomasi adalah:

Tutorial 04 Modeling & Transformasi Proyeksi

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan

Pengertian. Transformasi geometric transformation. koordinat dari objek Transformasi dasar: Translasi Rotasi Penskalaan

Praktikum Komputer Grafik [MODUL] Genap 2013/2014. Laboratorium Multimedia 1/47

MODUL 7 OBJEK 3D A. KOMPETENSI DASAR

Gambar 1. Viewport pada layar

Topik bahasan: 1. Membuat objek mudah dan kompleks dengan jaring poligon 2. Merender jaring poligon sebagai wireframe dan atau pejal dengan OpenGL

Laboratorium Teknologi Informasi & Aplikasi. Praktikum Komputer Grafik [MODUL] Genap 2014/2015. Lab TIA 1/58

Esther Wibowo

Laboratorium Teknologi Informasi & Aplikasi. Praktikum Komputer Grafik [MODUL] Genap 2015/2016. Lab TIA 1/59

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

Praktikum Komputer Grafik [MODUL] Genap 2012/2013. Laboratorium Multimedia 1/35

DAFTAR PUSTAKA. (diakses 1 maret 2016)

BAB V TRANSFORMASI 2D

OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS Created by: Gideon

Grafika Komputer. Evangs Mailoa

Grafika Komputer. Evangs Mailoa

PENGANTAR GRAFIKA KOMPUTER

BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL

PRIMITIVE DRAWING. Achmad Basuki Nana Ramadijanti

Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL

GRAFIKA GAME. Aditya Wikan Mahastama. Rangkuman Transformasi Dua Dimensi UNIV KRISTEN DUTA WACANA TEKNIK INFORMATIKA GENAP 1213

LAMPIRAN SOURCE CODE

BAB-7 TRANSFORMASI 2D

SILABUS MATAKULIAH. Indikator Pokok Bahasan Aktifitas Pembelajaran

Transformasi Geometri Sederhana. Farah Zakiyah Rahmanti 2014

Computer Graphics PENGANTAR GRAFIKA 3D

Transformasi Geometri Sederhana

Pengantar Grafika 3D E D I T A N

Transformasi Datum dan Koordinat

Geometri, Koordinat Homogen, dan Transformasi Affine. Computer Graphics #03#04#05

Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL

PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL

Modul 1 Primitif Drawing

Program 1 /* Menampilkan Bayangan sebuah obyek sumber file */

BAB IV IMPLEMENTASI DAN PENGUJIAN

Tutorial 09. Lighting

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

20. TRANSFORMASI. A. Translasi (Pergeseran) ; T = b. a y. a y. x atau. = b. = b

Gambar 1. Contoh tekstur makrostruktur

Perulangan, Percabangan, dan Studi Kasus

BAB I PENGENALAN OPENGL

LAPORAN PRAKTIKUM KOMPUTER GRAFIK

Konsep Dasar Struktur Data. Struktur Data

/*Bismillahirrohmanirrohim _Fatimah_Rombel 2_Projek_Akhir_Komgraf*/ #include <stdio.h> #include <stdlib.h> #include <string.

Tutorial 06. Texture Mapping & Blending

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

RENCANA PEMBELAJARAN SEMESTER (RPS)

19. TRANSFORMASI A. Translasi (Pergeseran) B. Refleksi (Pencerminan) C. Rotasi (Perputaran)

PETEMUAN KE-3 PRIMITIVE DRAWING 2

apa yang terjadi?. Kemudian lakukan pengantian beberapa bagian seperti sintak

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

DIAN PRATIWI. ST, MTI

Matriks Sebagai Representasi Orientasi Objek 3D

LAPORAN PRATIKUM KOMPUTER APLIKASI

Swakalibrasi Kamera Menggunakan Matriks Fundamental

Viewing 3D. Tujuan: memberi kesan pada viewer bahwa ia melihat foto 3D dengan cara yg sama saat kita memotret obyek 3D ke film 2D.

SATUAN ACARA PERKULIAHAN

Aljabar Linear. & Matriks. Evangs Mailoa. Pert. 7-8

Penerapan Transformasi Lanjar pada Proses Pengolahan Gambar

SPREADSHEET EXCEL UNTUK PEMBELAJARAN KONSTRUKSI GEOMETRI TEKNIK OPERASI SIMULTAN MENGGUNAKAN FORMULA ARRAY

Grafika Komputer. Evangs Mailoa

Pengolahan Citra Digital FAJAR ASTUTI H, S.KOM., M.KOM

Simulasi Transformasi Linier pada Bidang 2D Dengan Menggunakan OpenGL API

SEBUAH TELAAH ELIPS DAN LINGKARAN MELALUI SEBUAH PENDEKATAN ALJABAR MATRIKS

BAB III ANALISIS DAN PERANCANGAN SISTEM PROGRAM SIMULASI PERAMBATAN GETARAN MENGGUNAKAN FRAKTAL 3D

TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar dan interaksi 2 dimensi

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Tutorial 08. Fog. mensimulasikan efek kabut membatasi ruang pandang pengguna agar komputasi grafis yang diperlukan dapat dibatasi.

Pertemuan 7. REVIEW dan QUIS

ANALISIS STRUKTUR METODE MATRIX. Pertemuan ke-3 SISTEM RANGKA BATANG (PLANE TRUSS)

1.1. Definisi, Notasi, dan Operasi Vektor 1.2. Susunan Koordinat Ruang R n 1.3. Vektor di dalam R n 1.4. Persamaan garis lurus dan bidang rata

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

BAHAN AJAR. GRAFIKA KOMPUTER MMS 2604 / 3 sks

Aplikasi Matriks dalam Pengolahan Gambar

BAB 2. STRUKTUR DATA

MATEMATIKA. Sesi TRANSFORMASI 2 CONTOH SOAL A. ROTASI

ALGORITMA MIDPOINT UNTUK PENGGAMBARAN GRAFIK BERKECEPATANG TINGGI

MODUL MATEMATIKA SMA IPA Kelas 11

Praktikum Komputer Grafik [MODUL] Ganjil 2012/2013. Laboratorium Multimedia 1/41

BAB 2 Pemodelan Standar 3ds Max

Kurikulum Qt. { Basic OOP } Chapter 3. Array dan String

Pertemuan 2 ARRAY DIMENSI 1 & 2

Minggu ke-14 Typedef, Struct & Command Line Argument

P06 Pointer dan Fungsi

Interpretasi Geometri Dari Sebuah Determinan

TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar 2 dimensi. Penggunaan aplikasi pengolah grafis 3D

TRANFORMASI 2 DIMENSI

BAB 2 LANDASAN TEORI

PERANCANGAN POLIHEDRA DENGAN METODE JARING POLIGON

ARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.

SATUAN ACARA PERKULIAHAN MATA KULIAH : ALJABAR LINIER JURUSAN : TEKNIK KOMPUTER JUMLAH SKS : Definisi, Notasi, dan Operasi Vektor 2.

BAB III ANALISIS DAN PERANCANGAN

Transkripsi:

Transformasi Obek (Lanjutan) Grafika Komputer Semester Ganjil 28 Teknik Informatika ITS Ann Yuniarti - 28

Kompetensi. Mampu memahami konsep transformasi 3D 2. Mampu mengimplementasikan konsep transformasi menggunakan fungsi-fungsi dari OpenGL Teknik Informatika ITS Ann Yuniarti - 28 2

Referensi Computer Graphics using OpenGL, 3rd Edition, b: F.S. Hill, Jr. and Stephen M. Kelle Chapter 5 Computer Graphics ith OpenGL, 3rd Edition, b: Donald Hearn and M.Pauline Baker Chapter 5 http://.cs.virginia.edu Teknik Informatika ITS Ann Yuniarti - 28 3

Pokok Bahasan. Transformasi 3D 2. Fungsi Transformasi Geometrik pada OpenGL Teknik Informatika ITS Ann Yuniarti - 28 4

Transformasi 2D 3D Melibatkan koordinat Posisi 3D dalam koordinat homogen direpresentasikan sebagai vektor kolom 4-elemen. Matriks transformasi 4 4 a e i m b f j n c g k o d h l p Teknik Informatika ITS Ann Yuniarti - 28 5

Teknik Informatika ITS 6 Ann Yuniarti - 28 Basic 3D Transformations t t t s s s Identit Scale Translation Mirror about Y/Z plane

Basic 3D Transformations Rotate around Z ais: cos sin sin cos cos sin Rotate around Y ais: sin cos Rotate around X ais: cos sin sin cos Teknik Informatika ITS Ann Yuniarti - 28 7

OpenGL Transformation Functions Transformasi dispesifikasikan dalam 3 dimensi. Posisi 2D direpresentasikan dengan matriks kolom 4 elemen dengan komponen =. Matriks translasi 4 4 dibentuk dengan fungsi: gltranslate*(t, t, t); Untuk aplikasi 2D, set t=. Matriks rotasi 4 4: glrotate*(theta, v, v, v); Contoh: glrotatef (9.,.,.,.); menghasilkan matriks untuk rotasi 9 pada sumbu. Matriks scaling 4 4 terhadap titik (,, ): glscale*(s, s, s); Contoh: glscalef (2., -3., 2.); menghasilkan matriks untuk penskalaan sebesar 2 pada arah, 3 pada arah dan pencerminan terhadap sumbu. Teknik Informatika ITS Ann Yuniarti - 28 8

OpenGL Matri Operations Untuk membentuk matriks transformasi 4 4, digunakan matriks modelvie: glmatrimode(gl_modelview) Untuk mengeset matriks ang sedang aktif menjadi matriks identitas: glloadidentit(); Apabila diinginkan matriks dengan elemen tertentu: glloadmatri*(elements6); Teknik Informatika ITS Ann Yuniarti - 28 9

OpenGL Matri Operations Contoh glmatrimode(gl_modelview); GLfloat elems[6]; Glint k; for (k=; k<6; k++) elems[k]=float(k); glloadmatrif(elems); akan menghasilkan matri. 4. 8. 2. M. 2. 5. 6. 9.. 3. 4. 3. 7.. 5. Teknik Informatika ITS Ann Yuniarti - 28

OpenGL Matri Operations Untuk membentuk matriks hasil perkalian dari current matri dengan matriks tertentu : glmultmatri*(otherelements6); Sehingga, apabila current matri adalah matriks modelvie, M, maka matriks modelvie ang sudah ter-update adalah M = M M, dimana M adalah matriks lain ang elemenna direpresentasikan dengan otherelements6. Fungsi diatas dapat digunakan untuk mengeset urutan transformasi, contoh: glmatrimode(gl_modelview); glloadidentit(); glmultmatrif(elemsm2); glmultmatrif(elemsm); menghasilkan matriks modelvie M = M 2 M Transformasi pertama ang dieksekusi adalah transformasi terakhir ang dispesifikasikan di program. Teknik Informatika ITS Ann Yuniarti - 28

OpenGL Matri Operations Notes on OpenGL Matri Operations Stack analog The last operation specified is the first one applied Column-major order m jk refers to the element in column j and ro k Teknik Informatika ITS Ann Yuniarti - 28 2

OpenGL Matri Stacks OpenGL me-maintain sebuah matri stack. Aalna, setiap stack berisi sebuah matriks identitas. Setelah dispesifikasikan beberapa transformasi geometrik, bagian paling atas dari stack matriks modelvie berupa matriks 4 4 hasil kombinasi transformasi. Pada beberapa kasus, dibutuhkan beberapa urutan transformasi dan setiap urutan disimpan di matriks composite ang berbeda-beda. Perintah pada OpengL untuk menentukan jumlah posisi ang tersedia pada suatu stack modelvie adalah glgetintegerv (GL_MAX_MODELVIEW_STACK_DEPTH, stacksie); ang mengembalikan sebuah nilai integer ke arra stacksie. Perintah untuk mendapatkan jumlah matriks ang ada saat ini di stack: glgetintegerv (GL_MODELVIEW_STACK_DEPTH, nummats); Teknik Informatika ITS Ann Yuniarti - 28 3

OpenGL Matri Stacks Pada aalna stack modelvie hana berisi sebuah matriks identitas. Ada dua fungsi untuk pemrosesan matriks di stack glpushmatri(); Salin current matri ang ada di bagian paling atas stack ang aktif dan simpan salinanna di posisi kedua dari stack glpopmatri(); Hapus matriks di posisi paling atas stack dan matriks kedua dari stack menjadi current matri. Perintah ini bisa dieksekusi bila minimal ada dua matriks di dalam stack. Teknik Informatika ITS Ann Yuniarti - 28 4

Teknik Informatika ITS Ann Yuniarti - 28 5

#include <indos.h> #include <GL/glut.h> void ais(double length){ //dra a -ais, ith cone at end glpushmatri(); glbegin(gl_lines); glverte3d(,,);glverte3d(,,length); glend(); gltranslated(,,length-.2); glutwirecone(.4,.2,2,9); glpopmatri(); } void displawire(void){ glmatrimode(gl_projection); glloadidentit(); glortho(-2.*64/48.,2.*64/48.,-2.,2.,.,); glmatrimode(gl_modelview); glloadidentit(); glulookat(2.3,.3,2.,.,.25,.,.,.,.); glclear(gl_color_buffer_bit); //clear the screen glcolor3d(,,); //dra black lines ais(.5); //-ais glpushmatri(); glrotated(9,,.,); ais(.5); //-ais glrotated(-9.,,,); ais(.5); //-ais glpopmatri(); glpushmatri(); gltranslated(.5,.5,.5); //big cube at (.5,.5,.5) glutwirecube(.); glpopmatri(); glpushmatri(); gltranslated(.,.,); //sphere at (,,) glutwiresphere(.25,,8); glpopmatri(); glpushmatri(); gltranslated(.,,.); //cone at (.,,.) glutwirecone(.2,.5,,8); glpopmatri(); } glpushmatri(); gltranslated(,,); //teapot at (,,) glutwireteapot(.2); glpopmatri(); glpushmatri(); gltranslated(,,); //torus at (,,) glrotated(9.,,,); glutwiretorus(.,.3,,); glpopmatri(); glpushmatri(); gltranslated(.,,); glscaled(.5,.5,.5); glutwiredodecahedron(); glpopmatri(); glpushmatri(); gltranslated(,.,.); glutwirecube(.25); glpopmatri(); glpushmatri(); gltranslated(,,.); //clinder at (,,) GLUquadricObj *qobj; qobj = glunequadric(); gluquadricdrastle(qobj,glu_line); gluclinder(qobj,.2,.2,.4,8,8); glpopmatri(); glflush(); void main(int argc, char **argv){ glutinit(&argc,argv); glutinitdisplamode(glut_single GLUT_RGB); glutinitwindoposition(,); glutinitwindosie(64,48); glutcreatewindo("transformation Test - ireframes"); glutdisplafunc(displawire); glclearcolor(.f,.f,.f,.f); glvieport(,,64,48); glutmainloop(); }