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

Ukuran: px
Mulai penontonan dengan halaman:

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

Transkripsi

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

2 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata Kuliah Prasyarat : - Dosen Penanggung Jawab : Yonathan Ferry Hendrawan, S.T., M.I.T. Dosen Penyusun Modul : Yonathan Ferry Hendrawan, S.T., M.I.T. Semester / Th Ajaran : Genap / Hari Pertemuan / Jam : Sesuai Jadwal Praktikum Tempat Pertemuan : Laboratorium Common Computing Gambaran Umum : Praktikum ini merupakan bagian dari kuliah Komputer Grafik. Dalam praktikum ini, praktikan dikenalkan dengan beberapa aspek yang berkaitan dalam pemrograman komputer grafik. Praktikum ini memuat beberapa modul yang berisi tentang struktur program OpenGL (Open Graphics Library): primitif drawing, kurva, transformasi, animasi, pencahayaan pada OpenGL. Modul-modul ini harus dapat dikuasai oleh mahasiswa sebagai dasar penguasaan Komputer Grafik. Mahasiswa diharapkan dapat: Mampu membuat dan memanfaatkan output primitif (titik, garis, segiempat, kurva, lingkaran, elips, fill area, dan teks). Mampu membuat dan memanfaatkan kurva. Mampu membuat dan memanfaatkan transformasi. Mampu membuat dan memanfaatkan animasi. Mampu membuat dan memanfaatkan pencahayaan pada OpenGL. Tujuan Pembelajaran Praktimum Mahasiswa mampu memahami dan menerapkan aplikasi komputer grafik menggunakan bahasa pemrograman OpenGL. Rumusan Kompetensi Dasar Mahasiswa mampu memahami dan mengaplikasikan sistem grafik pada komputer. Mahasiswa mampu memahami dan mengaplikasikan berbagai teknik dan komponen komputer grafik. Mahasiswa mampu memahami dan mengaplikasikan visualisasi obyek. 2/35

3 Referensi / Bahan Bacaan E. Angel, Interactive Computer Graphics: A Top-Down Approach Using OpenGL, Fourth Edition, Pearson Education Inc., R. S. Wright, N. Haemel, G. Sellers and B. Lipchak, OpenGL Superbible: Comprehensive Tutorial and Reference, Fifth Edition, Pearson Education Inc., /35

4 Modul 1 Primitif Drawing I. Tugas Pendahuluan 1. Jelaskan secara singkat sejarah OpenGL! 2. Sebutkan beberapa contoh software yang menggunakan OpenGL! 3. Apa guna glbegin() dan glend()? 4. Jelaskan apa itu vertex! II. Pengantar Komputer grafik telah menunjukkan kemajuan yang pesat dari berbagai sisi: algoritma, software, dan hardware. Cakupannya juga telah meluas ke berbagai bidang: kedokteran, sains, engineering, bisnis, industri, seni, hiburan, iklan, dan lain-lain. Salah satu tools/library pembuatan aplikasi grafik adalah OpenGL (Open Graphics Library). OpenGL adalah suatu standar grafik yang menyediakan fungsi-fungsi low-level untuk pembuatan berbagai gambar pada komputer. Sebagai API (Application Programming Interface), OpenGL bersifat platformindependent/tidak tergantung pada piranti dan platform yang digunakan. Hal inilah yang membuat OpenGL dapat berjalan pada berbagai sistem operasi: Windows, UNIX, Mac, Android, dll. OpenGL pada awalnya didesain untuk digunakan oleh bahasa pemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga digunakan oleh bahasa pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Primitif Drawing OpenGL memiliki beberapa obyek dasar yang disebut primitif. Gambar-gambar kompleks dibuat dari kombinasi obyek-obyek primitif ini. Primitif mudah digambar pada layar monitor karena menggunakan persamaan geometrik sederhana. Contoh primitif / grafik dasar adalah : o Titik o Garis o Segitiga o Polygon Perintah OpenGL OpenGL memiliki daftar fungsi yang banyak. Untuk saat ini, praktikan hanya perlu fokus pada beberapa perintah dasar yang tertera pada tabel berikut ini: 4/35

5 Tabel 1.1 Perintah dasar OpenGL III. Program Berikut ini adalah program yang menggambar obyek primitif. void display(void) /* bersihkan layar dari titik pixel yang masih ada */ glclear (GL_COLOR_BUFFER_BIT); /* gambar 5 titik di layar */ glcolor3f (1.0, 1.0, 0.0); /* posisi vertex */ glbegin(gl_points); glvertex3f (0.0, 0.0, 0.0); glvertex3f (0.0, 0.8, 0.0); glvertex3f (0.8, 0.0, 0.0); glvertex3f (0.0, -0.8, 0.0); glvertex3f (-0.8, 0.0, 0.0); glend(); glflush (); void kunci(unsigned char key, int x, int y) switch (key) /* aplikasi berhenti ketika tombol q ditekan */ case 27 : case 'q': exit(0); glutpostredisplay(); 5/35

6 int main(int argc, char *argv[]) glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutinitdisplaymode(glut_rgb GLUT_SINGLE); glutcreatewindow("primitif"); glutdisplayfunc(display); glutkeyboardfunc(kunci); glutmainloop(); return 0; Program 1.1 Menggambar 5 titik Program diatas jika dijalankan akan menampilkan 5 titik berwarna kuning pada latar belakang hitam. Posisi titik didefinisikan pada tiap pemanggilan glvertex3f. Ukuran window mengambil nilai default yang disediakan oleh OpenGL: (-1,-1) untuk titik kiri bawah dan (1,1) untuk titik kanan atas. IV. Percobaan 1. Gantilah sintak program yang berwarna merah bold untuk membuat berbagai macam primitive drawing. Lakukan pengamatan apa yang terjadi glbegin(gl_points); glbegin(gl_line_strip); glbegin(gl_line_loop); glbegin(gl_lines); glbegin(gl_triangles); glbegin(gl_triangle_fan); glbegin(gl_triangle_strip); glbegin(gl_quads); glbegin(gl_quad_strip); glbegin(gl_polygon); 2. Lakukan penyisipan glcolor3f (X, X, X); pada tiap vertex, kemudian amati lagi apa yang terjadi. 3. Lakukan pengaturan ketebalan titik dan garis dengan perintah glpointsize(x); dan gllinewidth(x); kemudian amati apa pengaruhnya terhadap titik dan garis. V. Tugas 1. Cobalah program diatas lakukan percobaan sesuai dengan perintah diatas. 2. Buat Pelangi horisontal yang terdiri dari 7 warna menggunakan GL_POLYGON. 3. Buat Pelangi vertikal yang terdiri dari 7 warna menggunakan GL_POLYGON. 4. Ulang soal nomor 3 dan 4 menggunakan glrect(). 6/35

7 I. Tugas Pendahuluan Modul 2 Kurva 1. Apa perbedaan antara GL_LINES, GL_LINE_STRIP, dan GL_LINE_LOOP? 2. Gambarkan grafik persamaan y = 2x + 1! 3. Gambarkan grafik persamaan y = (x-1)(x-2)! 4. Gambarkan grafik persamaan y = 2sin(2x)! II. Pengantar Menurut Wikipedia, kurva adalah garis yang tidak harus lurus. Contoh kurva: lintasan parabola, grafik sinus, grafik persamaan logaritma, dll. Menurut definisi ini, garis lurus dapat disebut juga sebagai kurva jenis khusus. Mendefinisikan Kurva Menggunakan Persamaan Polynomial Polynomial adalah persamaan matematika dalam bentuk: Dimana a 0, a 1, a 2, a L adalah koefisien/konstanta. Derajat sebuah persamaan polynomial ditentukan dari pangkat tertinggi dari variabel x. Kurva Polynomial derajat 1 Persamaan polynomial derajat 1 disebut juga sebagai persaman linear. Jika digambar, persamaan linear menghasilkan garis lurus. Sebagai contoh, sebuah kurva yang memiliki representasi parametrik P(t) = a 0 +a 1 t adalah sebuah garis lurus yang melewati titik a 0 pada waktu t = 0, dan melewati titik a 0 + a 1 pada waktu t = 1. Dalam dunia 2 dimensi, P(t) terdiri dari dua persamaan: satu persamaan untuk sumbu x: x(t), dan satu persamaan untuk sumbu y: y(t). Dalam dunia 3 dimensi P(t) memiliki pula z(t). Berikut adalah program untuk memplot persamaan linear P(t) dimana: x(t) = t; y(t) = 0. void display(void) /* bersihkan layar */ glclear (GL_COLOR_BUFFER_BIT); glcolor3f (1.0, 1.0, 0.0); float t = 0.0; glbegin(gl_points); for(t = -1.0; t<=1.0; t+=0.01) /* x(t) = t; y(t) = 0 */ 7/35

8 glvertex3f ( *t, 0.0, 0.0); glend(); glflush (); void kunci(unsigned char key, int x, int y) switch (key) /* aplikasi berhenti ketika tombol q ditekan */ case 27 : case 'q': exit(0); glutpostredisplay(); int main(int argc, char *argv[]) glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutinitdisplaymode(glut_rgb GLUT_SINGLE); glutcreatewindow("primitif"); glutdisplayfunc(display); glutkeyboardfunc(kunci); glutmainloop(); return 0; Program 2.1 Memplot persamaan linear Program diatas akan menaruh titik-titik disepanjang persamaan P(t) dengan interval Kurva Polynomial derajat 2 Persamaan polynomial derajat 2 disebut juga persamaan kuadrat. Persamaan kuadrat menghasilkan grafik parabola. Berikut adalah program yang menggambar x(t) = t; y(t) = t atau y = x pada interval -1.0 sampai 1.0. void display(void) /* bersihkan layar */ glclear (GL_COLOR_BUFFER_BIT); glcolor3f (1.0, 1.0, 0.0); float t = 0.0; glbegin(gl_points); for(t = -1.0; t<=1.0; t+=0.01) /* x(t) = t; y(t) = 0 */ glvertex3f (t, -0.5+t*t, 0.0); 8/35

9 glend(); glflush (); void kunci(unsigned char key, int x, int y) switch (key) /* aplikasi berhenti ketika tombol q ditekan */ case 27 : case 'q': exit(0); glutpostredisplay(); int main(int argc, char *argv[]) glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutinitdisplaymode(glut_rgb GLUT_SINGLE); glutcreatewindow("primitif"); glutdisplayfunc(display); glutkeyboardfunc(kunci); glutmainloop(); return 0; Program 2.2 Menggambar persamaan kuadrat Program diatas akan menampilkan kurva parabola sesuai persamaan y = x pada interval -1.0 sampai 1.0. Kurva Polynomial derajat 3 atau lebih Persamaan polynomial derajat 3 atau lebih memiliki sifat dan implementasi yang mirip seperti persamaan polynomial derajat2, hanya saja grafiknya lebih kompleks. Berikut adalah program yang menggambar y = (x+4)(x+1)(x-1)(x-3)/ void myinit() glclearcolor(0.0, 0.0, 0.0, 1.0); glcolor3f(1.0, 0.0, 0.0); glmatrixmode(gl_projection); glloadidentity(); gluortho2d(-10.0, 10.0, -10.0, 10.0); glmatrixmode(gl_modelview); void display(void) /* bersihkan layar */ glclear (GL_COLOR_BUFFER_BIT); glcolor3f (1.0, 1.0, 0.0); 9/35

10 float t = 0.0; //f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) glbegin(gl_points); for(t = -10.0; t<=10.0; t+=0.1) glvertex3f (t, (t+4)*(t+1)*(t-1)*(t-3)/ , 0.0); glend(); glbegin(gl_lines); glvertex3f(-10.0,0.0,0.0); glvertex3f(10.0,0.0,0.0); glvertex3f(0.0,-10.0,0.0); glvertex3f(0.0,10.0,0.0); glend(); glflush (); void kunci(unsigned char key, int x, int y) switch (key) /* aplikasi berhenti ketika tombol q ditekan */ case 27 : case 'q': exit(0); glutpostredisplay(); int main(int argc, char *argv[]) glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutinitdisplaymode(glut_rgb GLUT_SINGLE); glutcreatewindow("primitif"); glutdisplayfunc(display); glutkeyboardfunc(kunci); myinit(); glutmainloop(); return 0; Program 2.3 Menggambar persamaan polynomial derajat 4 Program diatas akan menampilkan kurva polynomial derajat 4 sesuai persamaan y = 1/14 (x+4)(x+1)(x-1)(x-3) pada interval sampai Kurva Trigonometri Kurva trigonometri adalah kurva yang dihasilkan dari fungsi-fungsi trigonometri: sinus, cosinus, tangen. Berikut adalah program yang menggambar grafik fungsi sinus. //Supaya bisa menggunakan fungsi sin(), program perlu include Math.h #include <Math.h> 10/35

11 void myinit() glclearcolor(0.0, 0.0, 0.0, 1.0); glcolor3f(1.0, 0.0, 0.0); glmatrixmode(gl_projection); glloadidentity(); gluortho2d(-1.0, 10.0, -2.0, 2.0); glmatrixmode(gl_modelview); void display(void) /* bersihkan layar */ glclear (GL_COLOR_BUFFER_BIT); glcolor3f (1.0, 1.0, 0.0); float x = 0.0; glbegin(gl_points); //perhitungan sudut di opengl menggunakan radian, bukan derajat for(x=0.0; x<=6.28; x+=0.1) glvertex2f(x,sin(x)); glend(); glbegin(gl_lines); glvertex3f(-10.0,0.0,0.0); glvertex3f(10.0,0.0,0.0); glvertex3f(0.0,-10.0,0.0); glvertex3f(0.0,10.0,0.0); glend(); glflush (); void kunci(unsigned char key, int x, int y) switch (key) /* aplikasi berhenti ketika tombol q ditekan */ case 27 : case 'q': exit(0); glutpostredisplay(); int main(int argc, char *argv[]) glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutinitdisplaymode(glut_rgb GLUT_SINGLE); glutcreatewindow("primitif"); glutdisplayfunc(display); glutkeyboardfunc(kunci); myinit(); 11/35

12 glutmainloop(); return 0; Program 2.4 Menggambar fungsi sinus. III. Percobaan Berikut adalah yang harus dilakukan selama sesi lab: 1. Copy contoh-contoh program diatas, jalankan, dan amati output yang ditampilkan. 2. Ubah program 2.1, 2.2, 2.3, dan 2.4 dari GL_POINTS untuk menggambar kurva menjadi GL_LINES, GL_LINE_STRIP, dan GL_LINE_LOOP! Amati perubahan tampilan yang terjadi. Mana yang menurutmu sebaiknya digunakan dan sebaiknya dihindari dalam menggambar kurva? 3. Modifikasi program 2.4 dari fungsi sinus menjadi fungsi tangen. Karena header file Math.h tidak mempunyai definisi fungsi tangen, gunakan formula tg() = sin()/cos(). IV. Tugas Selesaikan pertanyaan-pertanyaan berikut ini: 1. Ubah persamaan linear pada program 2.1 menjadi x(t): t; y(t) = t. 2. Ubah program 2.2 supaya bisa menampilkan plot seperti berikut: Gambar yang dihasilkan tidak harus persis sama, tetapi harus dibuat semirip mungkin. Jangan gunakan teknik transformasi(modul 3), gunakan pendekatan persamaan matematis untuk menghasilkan gambar tersebut. 3. Modifikasi program 2.3 untuk menampilkan fungsi berikut: f(x) = (x-3)(x-2)(x- 1)(x)(x+1)(x+2)(x+3). Sesuaikan viewport supaya kurva dapat terlihat jelas di dalam jendela program. 12/35

13 4. Fungsi sinus memiliki bentuk baku sebagai berikut: y = A Sin(Bx + C) + D dimana: - A menentukan tinggi rendahnya grafik yang dihasilkan pada sumbu y - B menentukan berapa kali perulangan grafik dalam satu interval - C menentukan pergeseran sudut inputan sinus - D menentukan pegeseran grafik sinus pada sumbu y. Modifikasi program 2.4 supaya bisa mengakomodasi bentuk baku ini. Hint: buat variabel untuk A, B, C, dan D. Program tidak perlu mempunyai fasilitas menerima inputan ketika dijalankan. Sebagai contoh, berikut ini adalah gambar grafik sinus dengan A = 4, B = 5, C = 0.3, D = 1. 13/35

14 Modul 3 Transformasi I. Tugas Pendahuluan 1. Jelaskan dengan singkat apa yang disebut sebagai translasi, scaling, dan rotasi dalam transformasi geometri! 2. Gambarkan grafik transformasi titik (2, 3) yang ditranslasi sejauh (3, - 4)! 3. Gambarkan grafik transformasi titik (3, 3) yang dirotasi sejauh 90 derajat terhadap sumbu koordinat! 4. Gambarkan grafik transformasi titik (3, 2) yang di-scaling sebesar (2, 1.5) terhadap sumbu koordinat! II. Pengantar Transformasi Dalam matematika, transformasi adalah fungsi yang memetakan suatu set X ke set yang lain ataupun ke set X sendiri. Terdapat banyak jenis operasi transformasi: translasi, refleksi, rotasi, scaling, shearing. Dalam dunia komputer grafik, set X (yang mengalami proses transformasi) biasanya berupa strukur geometri. Berikut adalah perintah-perintah transformasi di OpenGL: a. gltranslated(a, b, c): melakukan operasi translasi/pergeseran sejauh a pada sumbu x, sejauh b pada sumbu y, dan sejauh c pada sumbu z. Contoh: jika ingin menggeser obyek sejauh 4 pada sumbu x dan -3 pada sumbu y, maka perintahnya adalah: gltranslated(4.0, -3.0, 0.0). b. glscaled(d, e, f): melakukan penskalaan sebesar d pada sumbu x, sebesar e pada sumbu y, sebesar f pada sumbu z. Contoh: jika ingin memperbesar obyek pada sumbu x sebesar 2 kali dan memperkecil obyek menjadi seperempatnya, maka perintahnya adalah: glscaled(2.0, 0.25, 0.0). c. glrotated(alpha, i, j, k): melakukan rotasi sebesar alpha. Alpha ada dalam satuan derajat, bukan radian. I, j, dan k mewakili sumbu rotasi x, y, dan z. Set nilainya menjadi 1.0 pada sumbu yang diingikan. Contoh: jika ingin merotasi obyek sebesar 90 derajat pada sumbu x, maka perintahnya adalah: glrotated(90.0, 1, 0, 0). Proses transformasi di OpenGL bersifat melekat: sekali sebuah perintah transformasi dieksekusi, perintah tersebut akan selalu dilakukan untuk semua perintah yang ada dibawahnya. Contoh: jika pada program terdapat perintah gltranslated(10.0, 0.0, 0.0) 14/35

15 pada baris ke 25, maka perintah-perintah glvertex pada baris ke 26 dan seterusnya akan selalu ditranslasi pada sumbu x sejauh 10. Berikut contoh program translasi. void display() glclear(gl_color_buffer_bit); glcolor3f(0.0,0.0,0.5); // Gambar kotak pertama di sudut kiri bawah glrecti(0,0, 10, 10); //translasi ke 20, 20 gltranslated(20.0, 20.0, 0); glrecti(0,0, 10, 10); glflush(); void myinit() glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,0.0,50.0); glmatrixmode(gl_modelview); glclearcolor(1.0,1.0,1.0,1.0); glcolor3f(0.0,0.0,0.0); int main(int argc, char* argv[]) glutinit(&argc,argv); glutinitdisplaymode(glut_single GLUT_RGB); glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutcreatewindow("transform"); glutdisplayfunc(display); myinit(); glutmainloop(); return 0; Program 3.1 Translasi glrecti adalah fungsi OpenGL untuk menggambar kotak 2 dimensi dengan memberi nilai pada parameter titik kiri bawah dan kanan atas. Berikut contoh program Scaling. void display() glclear(gl_color_buffer_bit); glcolor3f(0.0,0.0,0.5); 15/35

16 // Gambar kotak pertama di sudut kiri bawah glrecti(0,0, 10, 10); //Scaling kotak yang digambar di ke 20, 20 sebesar 1.5 kali glscaled(1.5, 1.5, 0.0); glrecti(20,20, 30, 30); glflush(); void myinit() glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,0.0,50.0); glmatrixmode(gl_modelview); glclearcolor(1.0,1.0,1.0,1.0); glcolor3f(0.0,0.0,0.0); int main(int argc, char* argv[]) glutinit(&argc,argv); glutinitdisplaymode(glut_single GLUT_RGB); glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutcreatewindow("transform"); glutdisplayfunc(display); myinit(); glutmainloop(); return 0; Program 3.2 Scaling Yang perlu diperhatikan disini adalah proses scaling dilakukan dari sumbu koordinat yang terletak di sudut kiri bawah jendela. Hal inilah yang menyebabkan tampilan pada program 3.2 diatas terlihat cenderung lebih ke kanan atas jendela. Berikut adalah contoh program rotasi. void display() glclear(gl_color_buffer_bit); glcolor3f(0.0,0.0,0.5); // Gambar kotak pertama di sudut kiri bawah glrecti(0,0, 10, 10); //rotasi kotak yang digambar di ke 20, 20 sebesar 15 derajat terhadap sumbu koordinat(titik kiri bawah) glrotated(15, 0, 0, 1.0); glrecti(20,20, 30, 30); 16/35

17 glflush(); void myinit() glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,0.0,50.0); glmatrixmode(gl_modelview); glclearcolor(1.0,1.0,1.0,1.0); glcolor3f(0.0,0.0,0.0); int main(int argc, char* argv[]) glutinit(&argc,argv); glutinitdisplaymode(glut_single GLUT_RGB); glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutcreatewindow("transform"); glutdisplayfunc(display); myinit(); glutmainloop(); return 0; Program 3.3 Rotasi Yang perlu diperhatikan dari program diatas adalah bahwa rotasi dilakukan terhadap titik koordinat yang terletak pada ujung kiri bawah jendela. Supaya rotasi terjadi pada titik tengah obyek, perlu dilakukan kombinasi perintah transformasi. Kombinasi Transformasi Operasi-operasi transformasi yang berbeda dapat dikombinasikan. Contoh: jika ingin melakukan operasi-operasi berikut pada sebuah obyek: translasi sebesar (3, -4) lalu rotasi sebesar 30 pada sumbu z lalu skala sebesar (2, -1) lalu translasi lagi sebesar (0, 1.5) dan terakhir rotasi sebesar -30 maka perintah-perintahnya adalah: glrotated(-30, 0, 0, 1); gltranslated(0.0, 1.5, 0.0); glscaled(2.0, -1.0, 0.0); glrotated(30.0, 0, 0, 1); 17/35

18 gltranslated(3.0, 4.0, 0.0); Yang perlu diperhatikan disini adalah urutan perintah. OpenGL melakukan perintah transformasi mulai dari yang paling bawah. Perlu diingat pula bahwa karena pada dasarnya operasi transformasi dilakukan dengan menggunakan operasi perkalian matrix yang tidak bersifat komutatif (AB BA), maka urutan operasi transformasi sangat berpengaruh. Salah satu kegunaan kombinasi Transformasi adalah untuk melakukan rotasi pada obyek (bukan terhadap sumbu koordinat). Metode rotasi terhadap arbitrary point adalah pertama-tama mentranslasikan obyek untuk berhimpit dengan sumbu koordinat, diikuti dengan rotasi, dan terakhir men-translasikan kembali obyek pada posisinya semula. Berikut adalah contoh program kombinasi transformasi. void display() glclear(gl_color_buffer_bit); glcolor3f(0.0,0.0,0.5); // Gambar kotak pertama di sudut kiri bawah glrecti(0,0, 10, 10); //rotasi kotak kedua terhadap titik tengah kotak gltranslated(25.0, 25.0, 0); glrotated(45, 0, 0, 1.0); gltranslated(-25.0, -25.0, 0); glrecti(20, 20, 30, 30); glflush(); void myinit() glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,0.0,50.0); glmatrixmode(gl_modelview); glclearcolor(1.0,1.0,1.0,1.0); glcolor3f(0.0,0.0,0.0); int main(int argc, char* argv[]) 18/35 glutinit(&argc,argv); glutinitdisplaymode(glut_single GLUT_RGB); glutinitwindowsize(400,400); glutinitwindowposition(100,100); glutcreatewindow("transform");

19 glutdisplayfunc(display); myinit(); glutmainloop(); return 0; Program 3.4 Rotasi terhadap arbitrary point Yang perlu pula diperhatikan di topik transformasi adalah Current Transformation Matrix (CTM). Perintah OpenGL yang berkatan dengan CTM ini adalah: glpushmatrix(), glpopmatrix(), dan glloadidentity(). III. Percobaan 1. Untuk program 3.1, modifikasi parameter gltranslated, lalu amati perubahan tampilannya. Kombinasikan dengan memodifikasi parameter pada glrecti; amati perubahannya juga. 2. Untuk program 3.2, modifikasi parameter glscaled, lalu amati perubahan tampilannya. Kombinasikan dengan memodifikasi parameter pada glrecti; amati perubahannya juga. 3. Untuk program 3.3, modifikasi parameter glrotated, lalu amati perubahan tampilannya. Kombinasikan dengan memodifikasi parameter pada glrecti; amati perubahannya juga. 4. Untuk program 3.4, modifikasi parameter fungsi transformasi, lalu amati perubahan tampilannya. Amati juga efek urutan pemanggilan fungsi transformasi. 5. Berdasarkan program 3.4, buat sebuah program yang melakukan Scaling kotak kedua terhadap titik tengah kotak kedua, bukan terhadap titik pusat koordinat. IV. Tugas 1. Buat checker board 8 x 8 kotak dengan menggunakan gltranslate. 19/35

20 2. Buat snow flake (bunga salju) berikut menggunakan transformasi. Cukup buat 1 bagian, lalu duplikasi menggunakan transformasi 11 kali untuk membuat keseluruhan gambar. Gambar tidak perlu persis, asal cukup mirip. 3. Buat program dengan tampilan sebagai berikut: Gambar tidak harus persis, asal cukup mirip. 20/35

21 Modul 4 Input dan Animasi I. Tugas Pendahuluan 1. Apa yang dimaksud dengan callback function? 2. Apa yang dimaksud dengan komputasi interaktif? 3. Apa yang dimaksud dengan simulasi? 4. Berikan penjelasan secara singkat sejarah animasi komputer! II. Pengantar Input 21/35 Yang dimaksud sebagai input di sini adalah fasilitas program untuk menerima sinyal dari perangkat input (keyboard dan mouse) ketika program dijalankan. Dengan fasilitas ini, program dan user akan dapat berinteraksi secara langsung (real-time), tanpa perlu melakukan kompilasi ulang tiap kali user ingin mengubah tampilan program. Di GLUT, mekanisme input dijalankan dalam konsep callback function. Di konsep ini, fungsi main memanggil fungsi input glut dan programmer harus mendefinisikan isi fungsi input tersebut. Berikut adalah program yang menerima input dari keyboard untuk merotasi 2 garis. static float rotangle = 0.; void init(void) glclearcolor(0.0,0.0, 0.2, 0.0); void display(void) glclear(gl_color_buffer_bit); glcolor3f (0.0, 1.0, 0.0); glpushmatrix(); glrotatef(-rotangle, 0.0, 0.0, 0.1); glbegin (GL_LINES); glvertex2f (-0.5, 0.5); glvertex2f (0.5, -0.5); glend (); glpopmatrix(); glcolor3f (0.0, 0.0, 1.0); glpushmatrix(); glrotatef(rotangle, 0.0, 0.0, 0.1); glbegin (GL_LINES); glvertex2f (0.5, 0.5); glvertex2f (-0.5, -0.5);

22 glend (); glpopmatrix(); glflush(); void reshape(int w, int h) glviewport(0, 0, w, h); glmatrixmode(gl_projection); glloadidentity(); if (w <= h) gluortho2d (-1.0, 1.0, -1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w); else gluortho2d (-1.0*(GLfloat)w/(GLfloat)h, 1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0); glmatrixmode(gl_modelview); glloadidentity(); void keyboard(unsigned char key, int x, int y) switch (key) case 'r': case 'R': rotangle += 20.; if (rotangle >= 360.) rotangle = 0.; glutpostredisplay(); case 27: exit(0); default: int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode (GLUT_SINGLE GLUT_RGB); glutinitwindowsize (400, 400); glutcreatewindow (argv[0]); init(); glutreshapefunc (reshape); glutkeyboardfunc (keyboard); glutdisplayfunc (display); glutmainloop(); return 0; Program 4.1 Garis Silang berotasi oleh penekanan tombol keyboard Pada program diatas, tiap kali tombol r atau R ditekan, kedua garis akan berotasi terhadap titik pusatnya. 22/35

23 Berikut ini adalah program yang menerima input dari keyboard untuk menggerakan simulasi lengan robot. static int shoulder = 0, elbow = 0; void init(void) glclearcolor (0.0, 0.0, 0.0, 0.0); glshademodel (GL_FLAT); void display(void) glclear (GL_COLOR_BUFFER_BIT); glpushmatrix(); gltranslatef (-1.0, 0.0, 0.0); glrotatef ((GLfloat) shoulder, 0.0, 0.0, 1.0); gltranslatef (1.0, 0.0, 0.0); glpushmatrix(); glscalef (2.0, 0.4, 1.0); glutwirecube (1.0); glpopmatrix(); gltranslatef (1.0, 0.0, 0.0); glrotatef ((GLfloat) elbow, 0.0, 0.0, 1.0); gltranslatef (1.0, 0.0, 0.0); glpushmatrix(); glscalef (2.0, 0.4, 1.0); glutwirecube (1.0); glpopmatrix(); glpopmatrix(); glutswapbuffers(); void reshape (int w, int h) glviewport (0, 0, (GLsizei) w, (GLsizei) h); glmatrixmode (GL_PROJECTION); glloadidentity (); gluperspective(65.0, (GLfloat) w/(glfloat) h, 1.0, 20.0); glmatrixmode(gl_modelview); glloadidentity(); gltranslatef (0.0, 0.0, -5.0); void keyboard (unsigned char key, int x, int y) switch (key) case 's': shoulder = (shoulder + 5) % 360; glutpostredisplay(); case 'S': shoulder = (shoulder - 5) % 360; glutpostredisplay(); case 'e': 23/35

24 elbow = (elbow + 5) % 360; glutpostredisplay(); case 'E': elbow = (elbow - 5) % 360; glutpostredisplay(); case 27: exit(0); default: int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode (GLUT_DOUBLE GLUT_RGB); glutinitwindowsize (700, 600); glutinitwindowposition (100, 100); glutcreatewindow (argv[0]); init (); glutdisplayfunc(display); glutreshapefunc(reshape); glutkeyboardfunc(keyboard); glutmainloop(); return 0; Program 4.2 Simulasi lengan robot Program diatas akan menggerakkan shoulder/lengan atas jika tombol s atau S ditekan; serta akan menggerakkan elbow/siku jika tombol e atau E ditekan. Berikut ini adalah program yang menerima inputan dari keyboard untuk menggerakkan simulasi planet static int year = 0, day = 0; void init(void) glclearcolor (0.0, 0.0, 0.0, 0.0); glshademodel (GL_FLAT); void display(void) glclear (GL_COLOR_BUFFER_BIT); glcolor3f (1.0, 1.0, 1.0); glpushmatrix(); glutwiresphere(1.0, 20, 16); /* gambar matahari */ glrotatef ((GLfloat) year, 0.0, 1.0, 0.0); gltranslatef (2.0, 0.0, 0.0); glrotatef ((GLfloat) day, 0.0, 1.0, 0.0); glutwiresphere(0.2, 10, 8); /* gambar planet kecil */ glpopmatrix(); 24/35

25 glutswapbuffers(); void reshape (int w, int h) glviewport (0, 0, (GLsizei) w, (GLsizei) h); glmatrixmode (GL_PROJECTION); glloadidentity (); gluperspective(60.0, (GLfloat) w/(glfloat) h, 1.0, 20.0); glmatrixmode(gl_modelview); glloadidentity(); glulookat (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); void keyboard (unsigned char key, int x, int y) switch (key) case 'd': day = (day + 10) % 360; glutpostredisplay(); case 'D': day = (day - 10) % 360; glutpostredisplay(); case 'y': year = (year + 5) % 360; glutpostredisplay(); case 'Y': year = (year - 5) % 360; glutpostredisplay(); case 27: exit(0); default: int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode (GLUT_DOUBLE GLUT_RGB); glutinitwindowsize (500, 500); glutinitwindowposition (100, 100); glutcreatewindow (argv[0]); init (); glutdisplayfunc(display); glutreshapefunc(reshape); glutkeyboardfunc(keyboard); glutmainloop(); return 0; Program 4.3 Simulasi planet 25/35

26 Program diatas akan menggerakkan planet berotasi terhadap sumbunya atas jika tombol d atau D ditekan; serta akan menggerakkan planet untuk berotasi terhadap matahari jika tombol y atau Y ditekan. Animasi. Animasi adalah Illusion Of Motion yang dibuat dari image statis yang ditampilkan secara berurutan sehingga seolah-olah gambar-gambar diskontinyu tadi menjadi terlihat kontinyu. Animasi berkembang dari ditemukannya prinsip dasar dari karakter mata manusia yaitu: persistance of vision (pola penglihatan yang membekas). Paul Roget, Joseph Plateau dan Pierre Desvigenes, melalui peralatan optik yang mereka ciptakan, berhasil membuktikan bahwa mata manusia cenderung menangkap urutan gambar-gambar pada tenggang waktu tertentu sebagai suatu pola. Pada OpenGL, animasi dapat dibuat dengan memanfaatkan proses transformasi pada obyek yang dilakukan secara terus-menerus/berulang-ulang. Berikut adalah program yang memutar kotak yang ditrigger dan distop oleh penekanan tombol mouse. static GLfloat spin = 0.0; void display(void) glclear(gl_color_buffer_bit); glpushmatrix(); glrotatef(spin, 0.0, 0.0, 1.0); glcolor3f(1.0, 1.0, 1.0); glrectf(-25.0, -25.0, 25.0, 25.0); glpopmatrix(); glutswapbuffers(); void spindisplay(void) spin = spin ; if (spin > 360.0) spin = spin ; glutpostredisplay(); void init(void) glclearcolor (0.0, 0.0, 0.0, 0.0); glshademodel (GL_FLAT); void reshape(int w, int h) glviewport (0, 0, (GLsizei) w, (GLsizei) h); glmatrixmode(gl_projection); glloadidentity(); 26/35

27 glortho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0); glmatrixmode(gl_modelview); glloadidentity(); void mouse(int button, int state, int x, int y) switch (button) case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN) glutidlefunc(spindisplay); case GLUT_MIDDLE_BUTTON: case GLUT_RIGHT_BUTTON: if (state == GLUT_DOWN) glutidlefunc(null); default: int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode (GLUT_DOUBLE GLUT_RGB); glutinitwindowsize (400, 400); glutinitwindowposition (100, 100); glutcreatewindow (argv[0]); init (); glutdisplayfunc(display); glutreshapefunc(reshape); glutmousefunc(mouse); glutmainloop(); return 0; Program 4.4 Kotak berputar oleh penekanan tombol mouse Program diatas menggunakan double buffering untuk menampilkan animasinya. III. Percobaan 1. Cobalah program-program diatas 2. Amati pada fungsi program inti 3. Amati pada fungsi masukan 4. Ubahlah program 4.1 supaya kedua garis yang muncul pada gambar menjadi bergerak searah jarum jam dengan sudut 90 derajat antara keduanya 5. Pada program 4.4 ubahlah program supaya kotak bergerak dan berhenti jika di tekan tombol keyboard P atau p 6. Pada program 4.3 coba ganti perintah glutwiresphere(1.0, 40, 16); dengan glutwirecube (1.0) dan glutwiresphere(0.2, 10, 8); dengan glutwirecube(0.2); 27/35

28 7. Pada program 4.3 buatlah garis lintasan planet yang mengelilingi matahari IV. Tugas 1. Buatlah program untuk menampilkan gambar segiempat dengan warna yang dapat diubah dengan menggunakan tombol panah dan 2. Modifikasi program 4.4 supaya a. ketika tombol mouse kiri ditekan, kotak berotasi terhadap sumbu z (rotasi yang sekarang) b. ketika tombol mouse tengah ditekan, kotak berotasi terhadap sumbu y c. ketika tombol mouse kanan ditekan, kotak berotasi terhadap sumbu x d. start dan stop pergerakan dilakukan dengan menekan tombol p atau P 3. Modifikasi program 4.4 dengan mengganti kotak yang diputar dengan checkerboard 8 x 8 4. Modifikasi program 4.4 supaya a. Ketika ditekan tombol s, ukuran kotak mengecil menjadi 0.75 ukuran semula b. Ketika ditekan tombol S, ukuran kotak membesar menjadi 1.5 ukuran semula c. Ketika ditekan tombol k, kecepatan putaran kotak jadi melambat setengah kali lipat dari kecepatan semula d. Ketika ditekan tombol K, kecepatan putaran kotak jadi lebih cepat dua kali lipat dari kecepatan semula 28/35

29 Modul 5 Pencahayaan pada OpenGL I. Tugas Pendahuluan 1. Jelaskan dengan singkat apa itu cahaya dan pengaruhnya terhadap penangkapan visual (visual perception)! 2. Jelaskan tentang sistem warna addition dan substraction! 3. OpenGL menggunakan sistem warna addition atau substraction? 4. Apa itu vektor normal? Apa pengaruhnya terhadap pemantulan cahaya pada obyek? II. Pengantar Pencahayaan memegang peranan penting dalam proses penangkapan citra oleh perangkat optik. Tanpa ada cahaya, tidak ada citra yang dapat ditangkap. Dengan adanya cahaya yang cukup, detail obyek 3 dimensi jadi terlihat dengan jelas. Pada OpenGL, proses pemberian cahaya disebut juga dengan iluminasi. Sistem pencahayaan pada OpenGL merupakan pendekatan matematis terhadap sistem pencahayaan di dunia nyata. Cahaya lampu dalam OpenGL dipecah menjadi komponen merah, hijau, dan biru. Tiap sumber cahaya dapat diatur konsentrasi cahaya merah, hijau, dan biru yang dipancarkannya. Model pencahayaan yang OpenGL mempunyai empat komponen utama: memancarkan (emissi), ambient, diffuse, dan specular. Semua komponen dihitung secara independen lalu hasilnya dijumlahkan. Hasil akhir penjumlahan inilah yang menjadi warna pada obyek. Gambar 5.1. Contoh ambient, diffuse, dan specular 29/35

30 Cahaya Ambient, Diffuse, dan Specular Pencahayaan ambient adalah cahaya latar belakang dan berasal dari segala arah. Cahaya ambient ini memiliki nilai yang lebih besar pada ruangan tertutup dibandingkan dengan ruangan terbuka. Meskipun kedua ruang tersebut memiliki sumber cahaya yang sama. Hal ini disebabkan karena pada ruang tertutup, cahaya yang memantul dari dinding membantu menerangi ruang. Cahaya diffuse adalah cahaya datang yang bersifat satu arah. Jika sebuah obyek terkena cahaya diffuse, sisi tersorot akan terlihat jelas/terang, sedangkan sisi di baliknya akan terlihat gelap. Mirip seperti cahaya diffuce, cahaya specular adalah cahaya datang datang dari arah tertentu; hanya saja pantulannya tidak tersebar rata ke segala arah. Pantulan ditentukan oleh jenis material obyek. Logam dan plastik mengkilap memiliki komponen specular tinggi. Sementara kapur dan karpet hampir tidak memilikinya. Specularity disebut juga sebagai shininess. Berikut adalah hal-hal yang diperlukan untuk menjalankan pencahayaan dalam OpenGL: 1. Tentukan vektor normal untuk setiap vertex dari semua obyek. Vektor normal ini digunakan dalam perhitungan sudut pantulan oleh OpenGL. 2. Buat, pilih, dan atur posisi satu atau lebih sumber cahaya. 3. Ciptakan dan pilih model/setting pencahayaan. 4. Tentukan sifat-sifat material untuk semua objek. Berikut adalah sebuah program pencahayaan sederhana. Perhatikan penerapan 4 hal diatas pada program ini. void init(void) GLfloat mat_specular[] = 1.0, 1.0, 1.0, 1.0 ; GLfloat mat_shininess[] = 50.0 ; GLfloat light_position[] = 1.0, 1.0, 1.0, 0.0 ; glclearcolor (0.0, 0.0, 0.0, 0.0); glshademodel (GL_SMOOTH); glmaterialfv(gl_front, GL_SPECULAR, mat_specular); glmaterialfv(gl_front, GL_SHININESS, mat_shininess); gllightfv(gl_light0, GL_POSITION, light_position); glenable(gl_lighting); glenable(gl_light0); glenable(gl_depth_test); void display(void) 30/35

31 glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glutsolidsphere (1.0, 20, 16); glflush (); void reshape (int w, int h) glviewport (0, 0, (GLsizei) w, (GLsizei) h); glmatrixmode (GL_PROJECTION); glloadidentity(); if (w <= h) glortho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w, 1.5*(GLfloat)h/(GLfloat)w, , 10.0); else glortho (-1.5*(GLfloat)w/(GLfloat)h, 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0); glmatrixmode(gl_modelview); glloadidentity(); int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode (GLUT_SINGLE GLUT_RGB GLUT_DEPTH); glutinitwindowsize (500, 500); glutinitwindowposition (100, 100); glutcreatewindow (argv[0]); init (); glutdisplayfunc(display); glutreshapefunc(reshape); glutmainloop(); return 0; Program 5.1 Sphere/Bola 3 dimensi yang disorot cahaya. Program diatas menampilkan sebuah bola yang diterangi oleh satu sumber cahaya. glu/glut memiliki beberapa obyek 3 dimensi siap pakai yang bisa digunakan sebagai obyek uji coba dalam modul ini. Berikut adalah program yang menampilkan beberapa jenis obyek quadric. GLfloat light_diffuse[] =1.0, 1.0, 0.0, 1.0; GLfloat light_position[] =1.0, 1.0, 1.0, 0.20; GLUquadricObj *qobj; void display(void) glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glcalllist(1); /* tampikan list */ glutswapbuffers(); void gfxinit(void) qobj = glunewquadric(); // glut Library gluquadricdrawstyle(qobj, GLU_FILL); glnewlist(1, GL_COMPILE); /* membuat list */ //glusphere(radius, slices, stacks); 31/35

32 //glusphere(qobj, 1.0, 20, 20); //glucylinder(qobj, 1, 1, 3, 20, 20); //gludisk(qobj, 0.5, 1, 20, 20); glupartialdisk(qobj, 0.5, 1, 20, 20, 45, 270); //Lakukan percobaan dengan memilih salah satu atau lebih dari 4 obyek diatas. glendlist(); gllightfv(gl_light0, GL_DIFFUSE, light_diffuse); gllightfv(gl_light0, GL_POSITION, light_position); glenable(gl_lighting); glenable(gl_light0); glenable(gl_depth_test); glmatrixmode(gl_projection); // gluperspective(field of view in degree, aspect ratio, Z near, Z far ); gluperspective(40.0, 1.0, 1.0, 10.0); glmatrixmode(gl_modelview); glulookat(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.); gltranslatef(0.0, 0.0, -1.0); int main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); glutcreatewindow("sphere"); glutdisplayfunc(display); gfxinit(); glutcreatewindow("pencahayaan"); glutdisplayfunc(display); gfxinit(); glutmainloop(); return 0; Program 5.2 Beberapa obyek Quadric Berikut adalah program yang menampilkan sebuah kubus yang dibangun dari nol. Perhatikan perbedaannya dengan program-program sebelumnya yang menggunakan obyek yang sudah tersedia. GLfloat light_diffuse[] = 1.0, 0.0, 0.0, 1.0; /* warna merah terang. */ GLfloat light_position[] = 1.0, 1.0, 1.0, 0.0; GLfloat n[6][3] = /* secara normal kubus ada 6 muka. */ -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1.0 ; GLint faces[6][4] = 0, 1, 2, 3, 3, 2, 6, 7, 7, 6, 5, 4, 4, 5, 1, 0, 5, 6, 2, 1, 7, 4, 0, 3 ; GLfloat v[8][3]; void drawbox(void) int i; for (i = 0; i < 6; i++) 32/35

33 glbegin(gl_quads); glnormal3fv(&n[i][0]); glvertex3fv(&v[faces[i][0]][0]); glvertex3fv(&v[faces[i][1]][0]); glvertex3fv(&v[faces[i][2]][0]); glvertex3fv(&v[faces[i][3]][0]); glend(); void display(void) glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); drawbox(); glutswapbuffers(); void init(void) /* pengaturan data vertek kubus. */ v[0][0] = v[1][0] = v[2][0] = v[3][0] = -1; v[4][0] = v[5][0] = v[6][0] = v[7][0] = 1; v[0][1] = v[1][1] = v[4][1] = v[5][1] = -1; v[2][1] = v[3][1] = v[6][1] = v[7][1] = 1; v[0][2] = v[3][2] = v[4][2] = v[7][2] = 1; v[1][2] = v[2][2] = v[5][2] = v[6][2] = -1; /* meng-enable-kan pencahayaan OpenGL single. */ gllightfv(gl_light0, GL_DIFFUSE, light_diffuse); gllightfv(gl_light0, GL_POSITION, light_position); glenable(gl_light0); glenable(gl_lighting); glenable(gl_depth_test); /* mengatur penglihatan kubus. */ glmatrixmode(gl_projection); /* sudut pandangan, aspek ratio, kedekatan Z, jauh Z */ gluperspective(40.0,1.0, 1.0, 10.0); glmatrixmode(gl_modelview); glulookat(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.); /* mengatur posisi kubus */ gltranslatef(0.0, 0.0, -1.0); glrotatef(60, 1.0, 0.0, 0.0); glrotatef(-20, 0.0, 0.0, 1.0); int main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); glutcreatewindow("kubus warna merah 3D dengan pencahayaan"); glutdisplayfunc(display); init(); glutmainloop(); return 0; 33/35

34 Program 5.3 Kubus dengan pencahayaan III. Percobaan 1. Cobalah program-program diatas. Modifikasi obyek dan nilai lalu amati perbedaannya. 2. Modifikasi ketiga program diatas dengan menambahkan sumber cahaya kedua IV. Tugas 1. Modifikasi program 5.3 yaitu dengan mengganti kotak dengan 3 digit NIM terakhir dalam bentuk 3 dimensi 2. Tambahkan hingga total 4 sumber cahaya (dengan posisi dan nilai komponen cahaya yang berbeda) untuk program hasil modifikasi pada nomor 1 diatas 3. Kombinasikan program hasil modifikasi nomor 2 diatas dengan tugas modul 4 nomor 2: NIM 3 dimensi akan bisa berputar pada sumbu x, y, atau z. 34/35

35 35/35

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER No. : ST/EKA/PTI223/05 Revisi : 02 Senin 010409 Hal. 1 dari 8 hal. A. Pendahuluan OpenGL akan melakukan komputasi warna setiap pixel di display akhir, ditampilkan adegan itu dilakukan di frame buffer.

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER No. : ST/EKA/PTI275/05 Revisi : 02 1 P a g e A. Pendahuluan OpenGL akan melakukan komputasi warna setiap pixel di display akhir, ditampilkan adegan itu dilakukan di frame buffer. Bagian dari komputasi

Lebih terperinci

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan No. : ST/EKA/PTI223/04 Revisi : 02 Senin 010210 Hal. 1 dari 8 hal. A. Pendahuluan Review Praktikum sebelumnya Sebelum ke modul selanjutnya, perhatikan sintak dibawah ini Tabel 1 Perintah-perintah OpenGL

Lebih terperinci

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

Praktikum Komputer Grafik [MODUL] Genap 2013/2014. Laboratorium Multimedia 1/47 Praktikum Komputer Grafik [MODUL] Genap 2013/2014 1/47 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata Kuliah Prasyarat : - Dosen Penanggung Jawab

Lebih terperinci

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan A. Pendahuluan Review Praktikum sebelumnya Sebelum ke modul selanjutnya, perhatikan sintak dibawah ini Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan Perintah Arti Keterangan glvertex2i(x,y);

Lebih terperinci

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

Laboratorium Teknologi Informasi & Aplikasi. Praktikum Komputer Grafik [MODUL] Genap 2014/2015. Lab TIA 1/58 Laboratorium Teknologi Informasi & Aplikasi Praktikum Komputer Grafik [MODUL] Genap 2014/2015 1/58 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata

Lebih terperinci

Modul 1 Primitif Drawing

Modul 1 Primitif Drawing Modul 1 Primitif Drawing I. Tugas Pendahuluan 1. Jelaskan tentang OpenGL! 2. Jelaskan tenteng ouput primitif dalam grafika computer! II. Tujuan Mahasiswa mampu membuat dan memanfaatkan output primitif

Lebih terperinci

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

Laboratorium Teknologi Informasi & Aplikasi. Praktikum Komputer Grafik [MODUL] Genap 2015/2016. Lab TIA 1/59 Laboratorium Teknologi Informasi & Aplikasi Praktikum Komputer Grafik [MODUL] Genap 2015/2016 1/59 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata

Lebih terperinci

Tutorial 09. Lighting

Tutorial 09. Lighting Tutorial 09. Lighting Visualisasi tentu saja tidak akan terjadi bila tidak ada cahaya. Pencahayaan merupakan esensi dari visualisasi dan merupakan topik yang sangat kompleks. Hingga tahap ini lingkungan

Lebih terperinci

Gambar 1. Viewport pada layar

Gambar 1. Viewport pada layar No. : ST/EKA/PTI223/03 Revisi : 02 Hal. 1 dari 9 hal. A. Pendahuluan Transformasi adalah memindahkan objek tanpa merusak bentuk. Contoh transformasi adalah transisi, penskalaan, putaran/rotasi, balikan,

Lebih terperinci

Gambar 1. Viewport pada layar

Gambar 1. Viewport pada layar No. : ST/EKA/PTI223/03 Revisi : 03 Senin 010210 Hal. 1 dari 5 hal. A. Pendahuluan Transformasi adalah memindahkan objek tanpa merusak bentuk. Contoh transformasi adalah transisi, penskalaan, putaran/rotasi,

Lebih terperinci

PETEMUAN KE-3 PRIMITIVE DRAWING 2

PETEMUAN KE-3 PRIMITIVE DRAWING 2 PETEMUAN KE-3 PRIMITIVE DRAWING 2 A.Tujuan 1. Dapat mengaplikasikan objek primitif dalam bentuk yang lain B. Dasar Teori Dalam praktikum sebelumnya anda diminta membuat titik garis, dan sebagainya. Dalam

Lebih terperinci

DAFTAR PUSTAKA. (diakses 1 maret 2016)

DAFTAR PUSTAKA. (diakses 1 maret 2016) DAFTAR PUSTAKA [1] http://www.surakarta.go.id/konten/bus-tingkat-werkudara# (diakses 28 februari 2016) [2] Anonim. www.opengl.org (diakses 1 maret 2016) [3] Haemel, Nicholas, et al. 2011. OpenGL super

Lebih terperinci

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

apa yang terjadi?. Kemudian lakukan pengantian beberapa bagian seperti sintak No. : ST/EKA/PTI223/02 Revisi : 02 Senin 010210 Hal. 1 dari 8 hal. A. Pendahuluan Dalam praktikum sebelumnya anda diminta membuat titik garis, dan sebagainya. Dalam praktikum hari ini lakukan penambahan

Lebih terperinci

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

Topik bahasan: 1. Membuat objek mudah dan kompleks dengan jaring poligon 2. Merender jaring poligon sebagai wireframe dan atau pejal dengan OpenGL Grafika-5 Pemodelan 3D dengan Jaring Poligon Tujuan Materi: Setelah mempelajari bab ini, Anda diharapkan dapat menjelaskan secara ringkas bagaimana membentuk objek 3D dengan jaring poligon (polygon meshes)

Lebih terperinci

PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing)

PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing) PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing) A.Tujuan 1. Dapat menggambar objek 3D 2. Dapat mentransformasikan objek 3D 3. Dapat menggunkan glviewport,glmodelview, glprojection, glfrustum B. Dasar Teori

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER No. : ST/EKA/PTI223/06 Revisi : 02 Senin 010509 Hal. 1 dari 9 hal. Pengantar Fog adalah pengaruh atmospheric yang ditambahkan objek, sehingga akan terjadi kekaburan pada obyek yang tergantung seberapa

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM Pada bab ini akan dibahas implementasi bertujuan memastikan apakah aplikasi yang dibuat berjalan sesuai yang penulis harapakan. Sebelum program diimplementasikan

Lebih terperinci

LAMPIRAN SOURCE CODE

LAMPIRAN SOURCE CODE DAFTAR PUSTAKA Anonim. www.opengl.org (diakses pada tanggal 01 Juli 2015). Fadlisyah, et al. 2007. Pengantar Grafika Komputer. Yogyakarta: Andi. Haemel, Nicholas, et al. 2011. OpenGL super bible : comprehensive

Lebih terperinci

Tutorial 04 Modeling & Transformasi Proyeksi

Tutorial 04 Modeling & Transformasi Proyeksi Tutorial 04 Modeling & Transformasi Proyeksi Secara substansi, Grafika Komputer adalah proses transformasi dari model 3D obyek berupa informasi geometri bentuk, informasi pose, warna, texture, dan pencahayaan

Lebih terperinci

BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL

BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL Pemrograman Grafis Pemrograman grafis adalah pemrograman yang digunakan untuk menghasilkan gambar pada komputer menggunakan library yang ada. Teknik-teknik

Lebih terperinci

LAPORAN PRATIKUM KOMPUTER APLIKASI

LAPORAN PRATIKUM KOMPUTER APLIKASI LAPORAN PRATIKUM KELAS TI VI SORE D KOMPUTER APLIKASI Nama Nomor Pratikan Mahasiswa Ayu MayaSari 1214370278 Tanggal Kumpul Tanda Tangan Pratikan Nama Penilai Tanggal Nilai Tanda Tangan Koreksi Dosen Universitas

Lebih terperinci

TRANSFORMASI. Tujuan transfomasi adalah:

TRANSFORMASI. Tujuan transfomasi adalah: TRANSFORMASI Grafika komputer merupakan bidang yang menarik minat banyak orang. Salah sub bagian dari grafika komputer adalah pemodelan objek (object modelling). Dalam pemodelan objek dua dimensi (2D),didapati

Lebih terperinci

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

Praktikum Komputer Grafik [MODUL] Ganjil 2012/2013. Laboratorium Multimedia 1/41 Praktikum Komputer Grafik [MODUL] Ganjil 2012/2013 1/41 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TKC 111 SKS : 1 Mata Kuliah Prasyarat : - Dosen Penanggung Jawab

Lebih terperinci

Gambar 1. Contoh tekstur makrostruktur

Gambar 1. Contoh tekstur makrostruktur No. : ST/EKA/PTI223/08 Revisi : 02 Senin 010510 Hal. 1 dari 14 hal. Pengantar Tekstur adalah tampilan permukaan (corak) dari suatu benda yang dapat dinilai dengan cara dilihat atau diraba. Pada prakteknya,

Lebih terperinci

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

Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL Pengenalan OpenGL OpenGL adalah suatu graphic library yang sebagian bersifat open source, dipakai pada banyak platform (windows, linux) dan dapat digunakan pada berbagai jenis compiler seperti C++ atau

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Tahapan implementasi bertujuan untuk memastikan apakah aplikasi yang dibuat dapat bekerja secara efektif dan efisien sesuai dengan yang diharapkan. Sebelum

Lebih terperinci

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

/*Bismillahirrohmanirrohim _Fatimah_Rombel 2_Projek_Akhir_Komgraf*/ #include <stdio.h> #include <stdlib.h> #include <string. /*Bismillahirrohmanirrohim.. 5302413025_Fatimah_Rombel 2_Projek_Akhir_Komgraf*/ #include #include #include #include "SOIL.h" #include float z_pos = -5.0f; float

Lebih terperinci

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

Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL Pengenalan OpenGL OpenGL adalah suatu graphic library yang sebagian bersifat open source, dipakai pada banyak platform (windows, linux) dan dapat digunakan pada berbagai jenis compiler seperti C++ atau

Lebih terperinci

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

Program 1 /* Menampilkan Bayangan sebuah obyek sumber file  */ No. : ST/EKA/PTI223/10 Revisi : 01 Senin 010509 Hal. 1 dari 5 hal. Pengantar Untuk menghasilkan gambar yang realistik perlu memodelkan pencerminan dan pembiasan maupun memunculkan bayangan karena pengaruh

Lebih terperinci

PENGANTAR GRAFIKA KOMPUTER

PENGANTAR GRAFIKA KOMPUTER PENGANTAR GRAFIKA KOMPUTER Achmad Basuki Nana Ramadijanti Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS) Materi Pengenalan grafika komputer

Lebih terperinci

Grafika Komputer. Evangs Mailoa

Grafika Komputer. Evangs Mailoa Grafika Komputer Evangs Mailoa Kumpulan polygon atau permukaan yang secara bersama-sama membentuk kulit dari suatu obyek. Dinyatakan dengan daftar poligon-poligon yang disertai dengan arah dari permukaan

Lebih terperinci

Tutorial 06. Texture Mapping & Blending

Tutorial 06. Texture Mapping & Blending Tutorial 06. Texture Mapping & Blending Hingga tahap ini, geometric primitive digambar dengan warna solid atau warna hasil interpolasi warnawarna vertex-nya. Texture mapping memungkinkan untuk menaruh

Lebih terperinci

PRIMITIVE DRAWING. Achmad Basuki Nana Ramadijanti

PRIMITIVE DRAWING. Achmad Basuki Nana Ramadijanti PRIMITIVE DRAWING Achmad Basuki Nana Ramadijanti Materi Program Dasar dengan OpenGL Menggambar Titik Menggambar Garis Menggambar Polyline Menggambar Polygon Pewarnaan Struktur Dasar Program Grafik Dengan

Lebih terperinci

GRAFIK KOMPUTER & PENGOLAHAN CITRA

GRAFIK KOMPUTER & PENGOLAHAN CITRA GRAFIK KOMPUTER & PENGOLAHAN CITRA MEMBUAT GARIS MENGGUNAKAN OPENGL NAMA : ADRY FITRA AZHAR SIREGAR NPM : 10114361 KELAS : 3KA26 UNIVERSITAS GUNADARMA SISTEM INFORMASI PTA 2016 / 2017 PENGENALAN OPENGL

Lebih terperinci

Transformasi Obyek (Lanjutan)

Transformasi Obyek (Lanjutan) 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

Lebih terperinci

Modul 6 Interaksi dengan Keyboard dan Mouse

Modul 6 Interaksi dengan Keyboard dan Mouse Modul 6 Interaksi dengan Keyboard dan Mouse A. KOMPETENSI DASAR Memahami prinsip-prinsip deteksi input berupa interaksi dari keyboard. Membuat objek 2D yang dikendalikan dengan keyboard. Memahami prinsip-prinsip

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER No. : ST/EKA/PTI223/10 Revisi : 03 Senin 170511 Hal. 1 dari 16 hal. Pengantar Media berasal dari bahasa latin yang merupakan bentuk jamak dari Medium yang secara harfiah berarti Perantara atau Pengantar

Lebih terperinci

OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS Created by: Gideon

OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS Created by: Gideon OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS 2012 Created by: Gideon Tutorial Open GL untuk membuat garis dengan program Microsoft Visual Studio Express 2012 OpenGL dengan Microsoft Visual Express 2012

Lebih terperinci

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

Tutorial 08. Fog. mensimulasikan efek kabut membatasi ruang pandang pengguna agar komputasi grafis yang diperlukan dapat dibatasi. Tutorial 08. Fog Kabut/fog adalah salah satu fitur OpenGL lain yang sering digunakan pada banyak kesempatan. Kabut digunakan dalam banyak kesempatan, antara lain: mensimulasikan efek kabut membatasi ruang

Lebih terperinci

BAB I PENGENALAN OPENGL

BAB I PENGENALAN OPENGL BAB I PENGENALAN OPENGL A. TUJUAN a. Mampu melakukan konfigurasi Library opengl di Visual Studio 2008 b. Mampu memahami inisialisasi fungsi opengl c. Mampu membuat objek dasar dengan fungsi opengl B. MATERI

Lebih terperinci

Grafika Komputer. Evangs Mailoa

Grafika Komputer. Evangs Mailoa Grafika Komputer Evangs Mailoa Translasi Skala Rotasi/Putar Konsep yang terpenting dalam grafika komputer adalah Transformasi Affine. Pada dasarnya, transformasi ini adalah memindahkan objek tanpa merusak

Lebih terperinci

Modul 2 Primitive Objects

Modul 2 Primitive Objects Modul 2 Primitive Objects A. KOMPETENSI DASAR Memahami jenis-jenis primitive objects. Memahami dan dapat membuat objek primitif. Memahami penerapan Objek primitif menjadi bangun 2 dimensi dasar. Memahami

Lebih terperinci

DIAN PRATIWI. ST, MTI

DIAN PRATIWI. ST, MTI DIAN PRATIWI. ST, MTI PEMROGRAMAN GRAFIKA KOMPUTER BERBASIS OPENGL Diterbitkan melalui Nida Dwi Karya Publishing PEMROGRAMAN GRAFIKA KOMPUTER BERBASIS OPENGL Oleh: Dian Pratiwi, ST, MTI Copyright 2015

Lebih terperinci

PERANCANGAN POLIHEDRA DENGAN METODE JARING POLIGON

PERANCANGAN POLIHEDRA DENGAN METODE JARING POLIGON PERANCANGAN POLIHEDRA DENGAN METODE JARING POLIGON Ina Agustina, Agus Iskandar Jurusan Sistem Informasi, Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jl. Sawo Manila, Pejaten Pasar

Lebih terperinci

TUGAS PENGANTAR GRAFIK KOMPUTER DAN OLAH CITRA

TUGAS PENGANTAR GRAFIK KOMPUTER DAN OLAH CITRA TUGAS PENGANTAR GRAFIK KOMPUTER DAN OLAH CITRA NAMA : HERU SANJAYA NPM : 39110387 KELAS : 2DB23 Gambar dibawah ini adalah tampilan awal Code Blocks. Setelah itu, pilih menu Settings Compiler and Debugger.

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER A. Pendahuluan Objek 3D pada open GL merupakan objek yang lebih hidup dibandingkan objek 2D. Namun permukaan objek 3D yang polos membuat 3D cenderung kurang menarik dan kaku. Untuk membuat objek yang lebih

Lebih terperinci

PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL

PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL Ina Agustina, Fauziah Jurusan Sistem Informasi Universitas Nasional Jl. Sawo Manila No.61 Pasar Minggu E-Mail : ina_agustina2007@yahoo.com, fauziah_z2@yahoo.com

Lebih terperinci

ALGORITMA PERPOTONGAN OBJEK

ALGORITMA PERPOTONGAN OBJEK ALGORITMA PERPOTONGAN OBJEK Ina Agustina, Fauziah Jurusan Sistem Informasi, Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jl. Sawo Manila, Pejaten Pasar Minggu No.61, Jakarta 12520

Lebih terperinci

Primitive Drawing. Achmad Basuki Nana Ramadijanti

Primitive Drawing. Achmad Basuki Nana Ramadijanti Primitive Drawing Achmad Basuki Nana Ramadijanti Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS) Materi Sistem Koordinat 2 Dimensi Menggambar

Lebih terperinci

MODUL 7 OBJEK 3D A. KOMPETENSI DASAR

MODUL 7 OBJEK 3D A. KOMPETENSI DASAR MODUL 7 OBJEK 3D A. KOMPETENSI DASAR Memahami Inisialisasi dunia 3D Memahami Object 3D (Wired). Memahami dasar menampilkan susunan objek 3D. B. ALOKASI WAKTU 4 js (4x50 menit) C. PETUNJUK Awali setiap

Lebih terperinci

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

TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar 2 dimensi. Penggunaan aplikasi pengolah grafis 3D Matakuliah : Komputer Grafik Dosen : Yonathan Ferry Hendrawan ThAkad : 2013-2014 Semester : Genap (empat) Prodi : S1 Teknik Informatika KONTRAK KULIAH 1. Manfaat Matakuliah Dengan mengambil mata kuliah

Lebih terperinci

LAPORAN PRAKTIKUM KOMPUTER GRAFIK

LAPORAN PRAKTIKUM KOMPUTER GRAFIK LAPORAN PRAKTIKUM KOMPUTER GRAFIK KELAS TI4C SORE NAMA PRAKTIKAN Mulia Hamonangan Tambunan NOMOR TANGGAL TANDA TANGAN MAHASISWA KUMPUL PRAKTIKAN 1214370473 NAMA PENILAI TANGGAL KOREKSI NILAI TANDA TANGAN

Lebih terperinci

Bab 1 Pengenalan GLUT

Bab 1 Pengenalan GLUT Bab 1 Pengenalan GLUT A. KOMPETENSI DASAR Memahami GLUT. Memahami dasar pemrograman GLUT. Memahami dasar menampilkan windows GLUT. B. ALOKASI WAKTU 4 js (4x50 menit) C. PETUNJUK Awali setiap aktivitas

Lebih terperinci

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

TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar dan interaksi 2 dimensi Matakuliah : Komputer Grafik Dosen : Yonathan Ferry Hendrawan ThAkad : 2014-2015 Semester : Genap (empat) Prodi : S1 Teknik Informatika KONTRAK KULIAH 1. Manfaat Matakuliah Dengan mengambil mata kuliah

Lebih terperinci

EC5130 Grafika Komputer dan Pemrograman GPU

EC5130 Grafika Komputer dan Pemrograman GPU EC5130 Grafika Komputer dan Pemrograman GPU Suplemen Diktat Kuliah OpenGL Tutorial dengan GLUT: Fixed Pipeline Ary Setijadi Prihatmanto Sekolah Teknik Elektro & Informatika Institut Teknologi Bandung 2007

Lebih terperinci

Simulasi Transformasi Linier pada Bidang 2D Dengan Menggunakan OpenGL API

Simulasi Transformasi Linier pada Bidang 2D Dengan Menggunakan OpenGL API Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Tugas Besar II IF2123 Aljabar Geometri Simulasi Transformasi Linier pada Bidang 2D Dengan Menggunakan

Lebih terperinci

Modul 3 Objek 2 Dimensi

Modul 3 Objek 2 Dimensi Modul 3 Objek 2 Dimensi A. KOMPETENSI DASAR. Memahami penerapan Objek primitif menjadi bangun 2 dimensi dasar. Memahami dan dapat membuat fungsi untuk bangun 2 dimensi dasar. B. ALOKASI WAKTU 2 JS (2x50

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN BAB III ANALISA DAN PERANCANGAN 3.1 Rancangan Awal Pemodelan Blender merupakan software grafis 3 Dimensi yang sangat baik. Tidak hanya menyediakan fasilitas untuk membuat object 3D dengan mudah tapi juga

Lebih terperinci

Pewarnaan dan Perputaran Polygon Untuk Objek Gambar Segi Tiga dan Segi Empat Menggunakan Program OPENGL 32

Pewarnaan dan Perputaran Polygon Untuk Objek Gambar Segi Tiga dan Segi Empat Menggunakan Program OPENGL 32 Pewarnaan dan Perputaran Polygon Untuk Objek Gambar Segi Tiga dan Segi Empat Menggunakan Program OPENGL 32 Aqwam Rosadi Kardian, Bheta Agus Wardijono STMIK JAKARTA STI&K aqwam@stmik-jakarta.ac.id, bheta@jak-stik.ac.id

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Objek tiga dimensi merupakan salah satu komponen multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Objek tiga dimensi dibentuk oleh sekumpulan

Lebih terperinci

Drawing, Viewport, dan Transformasi. Pertemuan - 02

Drawing, Viewport, dan Transformasi. Pertemuan - 02 Drawing, Viewport, dan Transformasi Pertemuan - 02 Ruang Lingkup Definisi Drawing Viewport Transfomasi Definisi Bagian dari grafik komputer meliputi: 1. Citra (Imaging) : mempelajari cara pengambilan dan

Lebih terperinci

OBYEK GRAFIK 2 DIMENSI

OBYEK GRAFIK 2 DIMENSI OBYEK GRAFIK 2 DIMENSI Achmad Basuki Nana Ramadijanti Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS) Materi Definisi Obyek Grafik 2-D PolyLine

Lebih terperinci

OBYEK GRAFIK 2 DIMENSI

OBYEK GRAFIK 2 DIMENSI OBYEK GRAFIK 2 DIMENSI Achmad Basuki Nana Ramadijanti Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS) Materi Definisi Obyek Grafik 2-D PolyLine

Lebih terperinci

BAB 2 DASAR TEORI. Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer, yang

BAB 2 DASAR TEORI. Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer, yang BAB 2 DASAR TEORI 2.1 Teori Dasar Grafika Komputer Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer, yang akan digunakan dalam pembahasan teknik environment mapping. 2.1.1 Sistem

Lebih terperinci

Pembuatan Simulasi Pergerakan Objek 3D (Tiga Dimensi) Menggunakan OpenGL

Pembuatan Simulasi Pergerakan Objek 3D (Tiga Dimensi) Menggunakan OpenGL 1 Pembuatan Simulasi Pergerakan Objek 3D (Tiga Dimensi) Menggunakan OpenGL Deddy Suhardiman, S.T.G. Kaunang, Rizal Sengkey, Arthur M. Rumagit Jurusan Teknik Elektro-FT, UNSRAT, Manado-95115, Email: deddy050213024@gmail.com

Lebih terperinci

BAB IV TOOLS UNTUK MENGGAMBAR (WINDOW DAN VIEWPORT)

BAB IV TOOLS UNTUK MENGGAMBAR (WINDOW DAN VIEWPORT) BAB IV TOOLS UNTUK MENGGAMBAR (WINDOW DAN VIEWPORT) Menggambar Objek 2D Bagaimana cara menggambar objek 2D? Langsung pada layar kesulitan manipulasi yaitu dalam transformasi Melalui sistem koordinat kartesius

Lebih terperinci

PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN

PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN Rudy Adipranata 1, Liliana 2, Gunawan Iteh Fakultas Teknologi Industri, Jurusan Teknik Informatika, Universitas Kristen Petra Jl. Siwalankerto

Lebih terperinci

PELATIHAN GEOGEBRA DALAM PEMBELAJARAN MATEMATIKA

PELATIHAN GEOGEBRA DALAM PEMBELAJARAN MATEMATIKA PETUNJUK PRAKTIKUM PELATIHAN GEOGEBRA DALAM PEMBELAJARAN MATEMATIKA DISUSUN OLEH: Atmini Dhoruri, MS Emi Nugroho RS, M.Sc Dwi Lestari, M.Sc. (dwilestari@uny.ac.id) JURUSAN PENDIDIKAN MATEMATIKA FAKULTAS

Lebih terperinci

Saat ini saya di minta untuk membuat garis vertikal, horizontal dan diagonal dengan OpenGL.

Saat ini saya di minta untuk membuat garis vertikal, horizontal dan diagonal dengan OpenGL. Nama: Ridho Febrian Deri Kelas: 3Ka32 Npm: 16111141 Saat ini saya di minta untuk membuat garis vertikal, horizontal dan diagonal dengan OpenGL. Langsung saja saya jelaskan cara-caranya. Pengertian OpenGL:

Lebih terperinci

BAB 1. PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Tujuan

BAB 1. PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Tujuan BAB 1. PENDAHULUAN 1.1 Latar Belakang Sering kita jumpai dalam kehidupan sehari-hari dalam penyajian data menggunakan bentuk grafik. Grafik sering juga disebut sebagai diagram, bagan, maupun chart. Pada

Lebih terperinci

MODUL I DESAIN DENGAN BENTUK-BENTUK DASAR

MODUL I DESAIN DENGAN BENTUK-BENTUK DASAR MODUL I DESAIN DENGAN BENTUK-BENTUK DASAR A. MAKSUD DAN TUJUAN 1. MAKSUD Memberikan pengenalan tentang bentuk-bentuk dasar dari sebuah obyek yang digunakan dalam desain grafis dan pengembangannya dengan

Lebih terperinci

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

Viewing 3D. Tujuan: memberi kesan pada viewer bahwa ia melihat foto 3D dengan cara yg sama saat kita memotret obyek 3D ke film 2D. Komputer Grafik 1 Viewing 3D Tujuan: memberi kesan pada viewer bahwa ia melihat foto 3D dengan cara yg sama saat kita memotret obyek 3D ke film 2D. memproyeksikan obyek 3D ke bidang 2D 2 Pinhole Camera

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Visualisasi Visualisasi (visualization) adalah penampilan informasi yang bersifat komplek ke dalam bentuk visual (gambaran) (Chapman, 2004:665). Secara umum, visualisasi dalam

Lebih terperinci

Modul 2016 KATA PENGANTAR

Modul 2016 KATA PENGANTAR KATA PENGANTAR Kita tahu bahwa dewasa ini pperkembangan dari teknologi sangatlah pesat, sehingga apapun saat ini selalu berkaitan dengan yang namanya teknologi. Teknologi juga tidak hanya dipahami oleh

Lebih terperinci

Aplikasi Geogebra dalam Pembelajaran Geometri Bidang

Aplikasi Geogebra dalam Pembelajaran Geometri Bidang Aplikasi Geogebra dalam Pembelajaran Geometri Bidang Dendy Suprihady /13514070 Program Studi Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

BAB 4 ANALISIS SIMULASI KINEMATIKA ROBOT. Dengan telah dibangunnya model matematika robot dan robot sesungguhnya,

BAB 4 ANALISIS SIMULASI KINEMATIKA ROBOT. Dengan telah dibangunnya model matematika robot dan robot sesungguhnya, 92 BAB 4 ANALISIS SIMULASI KINEMATIKA ROBOT Dengan telah dibangunnya model matematika robot dan robot sesungguhnya, maka diperlukan analisis kinematika untuk mengetahui seberapa jauh model matematika itu

Lebih terperinci

BAHAN AJAR. GRAFIKA KOMPUTER MMS 2604 / 3 sks

BAHAN AJAR. GRAFIKA KOMPUTER MMS 2604 / 3 sks BAHAN AJAR GRAFIKA KOMPUTER MMS 264 / 3 sks Disusun Oleh : DRS. JANOE HENDARTO MKOM. Program Studi Ilmu Komputer Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Gadjah Mada

Lebih terperinci

MODUL 1 PENGENALAN PROGRAM C++ DAN PERNYATAAN MASUKAN-KELUARAN

MODUL 1 PENGENALAN PROGRAM C++ DAN PERNYATAAN MASUKAN-KELUARAN 1 MODUL 1 PENGENALAN PROGRAM C++ DAN PERNYATAAN MASUKAN-KELUARAN A. MAKSUD DAN TUJUAN 1. MAKSUD Mengenal cara menggunakan bahasa pemrograman C++ dengan menggunakan C++ Builder dan mengenala pernyataan

Lebih terperinci

IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT

IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT Agung Slamet Riyadi, Universitas Gunadarma, Jl. Margonda Raya No. 100 Pondok Cina Depok Jawa Barat e-mail agungsr@staff.gunadarma.ac.id

Lebih terperinci

BAB I PENDAHULUAN. 1.1.Latar Belakang

BAB I PENDAHULUAN. 1.1.Latar Belakang BAB I PENDAHULUAN 1.1.Latar Belakang OpenGL (Open Graphics Library) adalah standar API yang dapat digunakan untuk membuat aplikasi berbasis grafik, baik dua dimensi (2D) maupun tiga dimensi (3D). OpenGL

Lebih terperinci

PETUNJUK PRAKTIKUM GEOGEBRA

PETUNJUK PRAKTIKUM GEOGEBRA Email: dwilestar@uny.ac.id Pelatihan GeoGebra untuk Pembelajaran Matematika, 2013 PETUNJUK PRAKTIKUM GEOGEBRA Geogebra merupakan software yang berisi aplikasi aljabar dan geometri. Berikut ini diberikan

Lebih terperinci

BAB III METODOLOGI PENELITIAN. Penelitian ini menekankan pada objek virtual tiga dimensi gedung-gedung

BAB III METODOLOGI PENELITIAN. Penelitian ini menekankan pada objek virtual tiga dimensi gedung-gedung 25 BAB III METODOLOGI PENELITIAN 3.1. Waktu dan Tempat Penelitian Penelitian ini menekankan pada objek virtual tiga dimensi gedung-gedung utama pada Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas

Lebih terperinci

Pengantar Grafika Komputer

Pengantar Grafika Komputer Kompetensi dan Referensi Pengantar Grafika Komputer G R A F I K A K O M P U T E R / P T I 2 7 5 /PENDIDIKAN TEKNIK INFORMATIKA/2 SKS Kompetensi Mahasiswa dapat merancang dan membangun sebuah aplikasi Grafika

Lebih terperinci

KISI-KISI SOAL UJIAN SEKOLAH TAHUN PELAJARAN 2014/2015

KISI-KISI SOAL UJIAN SEKOLAH TAHUN PELAJARAN 2014/2015 KISI-KISI SOAL UJIAN SEKOLAH TAHUN PELAJARAN 2014/2015 Mata Pelajaran : Matematika Alokasi Waktu : 120 menit Kelas : XII IPA Penyusun Standar Kompetensi Kompetensi Dasar Indikator Materi No Soal Menggunakan

Lebih terperinci

Perulangan, Percabangan, dan Studi Kasus

Perulangan, Percabangan, dan Studi Kasus Perulangan, Percabangan, dan Studi Kasus Perulangan dan percabangan merupakan hal yang sangat penting dalam menyusun suatu program Pada pertemuan kali ini akan dibahas secara detail tentang perulangan

Lebih terperinci

RENCANA PEMBELAJARAN SEMESTER (RPS)

RENCANA PEMBELAJARAN SEMESTER (RPS) RENCANA PEMBELAJARAN SEMESTER (RPS) PKBM42002 GRAFIKA KOMPUTER PROGRAM STUDI D3 MANAJEMEN INFORMATIKA (MI) FAKULTAS ILMU KOMPUTER (FILKOM) UNIVERSITAS PUTRA INDONESIA YPTK LEMBAR PENGESAHAN Rencana Semester

Lebih terperinci

Fungsi : Dasar Fungsi

Fungsi : Dasar Fungsi PRAKTIKUM 13 Fungsi : Dasar Fungsi A. TUJUAN PEMBELAJARAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur. B. DASAR TEORI Fungsi adalah suatu bagian

Lebih terperinci

11/11/2010. Standar Kompetensi/ Kompetensi Dasar. Indikator

11/11/2010. Standar Kompetensi/ Kompetensi Dasar. Indikator Standar Kompetensi/ Kompetensi Dasar Standar Kompetensi Menggunakan perangkat lunak pembuat grafik Kompetensi Dasar 1. Menunjukkan menu ikon yang terdapat dalam perangkat lunak pembuat grafis 2. Menggunakan

Lebih terperinci

Gambar 4.1 Macam-macam Komponen dengan Bentuk Kompleks

Gambar 4.1 Macam-macam Komponen dengan Bentuk Kompleks BAB 4 HASIL DA A ALISA Banyak komponen mesin yang memiliki bentuk yang cukup kompleks. Setiap komponen tersebut bisa jadi memiliki CBV, permukaan yang berkontur dan fitur-fitur lainnya. Untuk bagian implementasi

Lebih terperinci

III HASIL DAN PEMBAHASAN

III HASIL DAN PEMBAHASAN Fungsi periodizer kutub tersebut dapat dituliskan pula sebagai: p θ, N, θ 0 = π N N.0 n= n sin Nn θ θ 0. () f p θ, N, θ 0 = π N N j= j sin Nj θ θ 0 diperoleh dengan menyubstitusi variabel θ pada f θ =

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat pendukung yang berupa piranti lunak dan perangkat keras. Adapun

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat pendukung yang berupa piranti lunak dan perangkat keras. Adapun BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Implementasi Perangkat Ajar Dalam perancangan dan pembuatan perangkat ajar ini membutuhkan perangkat pendukung yang berupa piranti lunak dan perangkat keras. Adapun

Lebih terperinci

Proses Clipping Menggunakan Algoritma Cohen-Sutherland pada Ruang Dimensi Tiga

Proses Clipping Menggunakan Algoritma Cohen-Sutherland pada Ruang Dimensi Tiga Proses Clipping Menggunakan Algoritma Cohen-Sutherland pada Ruang Dimensi Tiga Veronica Lusiana Program Studi Teknik Informatika, Universitas Stikubank Semarang Email: verolusiana@yahoo.com Abstrak Menentukan

Lebih terperinci

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual Praktikum 7 FUNGSI 1 A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual B. DASAR TEORI Fungsi adalah suatu bagian dari program yang dirancang

Lebih terperinci

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved 1 Pengenalan Matlab Pendahuluan Matlab adalah perangkat lunak yang dapat digunakan untuk analisis dan visualisasi data. Matlab didesain untuk mengolah data dengan menggunakan operasi matriks. Matlab juga

Lebih terperinci

BAB II LANDASAN TEORI Penyusunan tugas akhir ini berisi tentang pembuatan visualisasi 3D yang dapat membantu dalam memberikan gagasan untuk model bus 3 tingkat dan menunjang transportasi yang sudah ada.

Lebih terperinci

Sistem Koordinat 3D. +y +y

Sistem Koordinat 3D. +y +y Pendahuluan Grafika Komputer dalam aplikasinya terbagi menjadi 2 : Grafika 2D Grafika 3D Aplikasi 2D banyak dipakai dalam pembuatan grafik, peta, kreasi 2D yang banyak membantu pemakai dalam membuat visualisasi.

Lebih terperinci

Grafika Komputer Pertemuan Ke-5

Grafika Komputer Pertemuan Ke-5 BAB-5 APLIKASI INTERAKTIF Aplikasi yang dikembangkan sekarang adalah aplikasi yang kebanyakan interaktif antara user dengan aplikasi. By: I Gusti Ngurah Suryantara, S.Kom., M.Kom 5.1. PENDAHULUAN Perkembangan

Lebih terperinci

4. Kegiatan Belajar 4 : Membuat Animasi 2D ke dalam multimedia

4. Kegiatan Belajar 4 : Membuat Animasi 2D ke dalam multimedia 4. Kegiatan Belajar 4 : Membuat Animasi 2D ke dalam multimedia a. Tujuan Kegiatan Pembelajaran 4 1) Peserta diklat paham dan mampu menambahkan efek suara pada animasi yang dibuat dengan menggunakan SWiSHmax.

Lebih terperinci

BAHAN PRAKTIKUM FLASH. Digunakan Untuk matakuliah Pengembangan Media Pembelajaran Matematika

BAHAN PRAKTIKUM FLASH. Digunakan Untuk matakuliah Pengembangan Media Pembelajaran Matematika BAHAN PRAKTIKUM FLASH Digunakan Untuk matakuliah Pengembangan Media Pembelajaran Matematika Bahan praktikum ini berisi latihan penunjang untuk matakuliah pengembangan media pembelajaran matematika. Berisi

Lebih terperinci