Praktikum Komputer Grafik [MODUL] Genap 2012/2013. Laboratorium Multimedia 1/35
|
|
- Adi Hadiman
- 7 tahun lalu
- Tontonan:
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
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 terperinciFAKULTAS 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 terperinciTabel 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 terperinciPraktikum 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 terperinciTabel 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 terperinciLaboratorium 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 terperinciModul 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 terperinciLaboratorium 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 terperinciTutorial 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 terperinciGambar 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 terperinciGambar 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 terperinciPETEMUAN 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 terperinciDAFTAR 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 terperinciapa 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 terperinciTopik 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 terperinciPETEMUAN 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 terperinciFAKULTAS 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 terperinciBAB 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 terperinciLAMPIRAN 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 terperinciTutorial 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 terperinciBAB 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 terperinciLAPORAN 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 terperinciTRANSFORMASI. 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 terperinciPraktikum 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 terperinciGambar 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 terperinciPengenalan 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 terperinciBAB 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.. 5302413025_Fatimah_Rombel 2_Projek_Akhir_Komgraf*/ #include #include #include #include "SOIL.h" #include float z_pos = -5.0f; float
Lebih terperinciPengenalan 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 terperinciProgram 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 terperinciPENGANTAR 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 terperinciGrafika 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 terperinciTutorial 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 terperinciPRIMITIVE 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 terperinciGRAFIK 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 terperinciTransformasi 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 terperinciModul 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 terperinciFAKULTAS 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 terperinciOPENGL 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 terperinciTutorial 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 terperinciBAB 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 terperinciGrafika 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 terperinciModul 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 terperinciDIAN 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 terperinciPERANCANGAN 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 terperinciTUGAS 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 terperinciFAKULTAS 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 terperinciPEMBENTUKAN 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 terperinciALGORITMA 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 terperinciPrimitive 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 terperinciMODUL 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 terperinciTIU: 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 terperinciLAPORAN 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 terperinciBab 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 terperinciTIU: 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 terperinciEC5130 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 terperinciSimulasi 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 terperinciModul 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 terperinciBAB 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 terperinciPewarnaan 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 terperinciBAB 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 terperinciDrawing, 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 terperinciOBYEK 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 terperinciOBYEK 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 terperinciBAB 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 terperinciPembuatan 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 terperinciBAB 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 terperinciPERANCANGAN 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 terperinciPELATIHAN 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 terperinciSaat 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 terperinciBAB 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 terperinciMODUL 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 terperinciViewing 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 terperinciBAB 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 terperinciModul 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 terperinciAplikasi 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 terperinciBAB 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 terperinciBAHAN 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 terperinciMODUL 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 terperinciIMPLEMENTASI 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 terperinciBAB 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 terperinciPETUNJUK 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 terperinciBAB 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 terperinciPengantar 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 terperinciKISI-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 terperinciPerulangan, 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 terperinciRENCANA 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 terperinciFungsi : 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 terperinci11/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 terperinciGambar 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 terperinciIII 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 terperinciBAB 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 terperinciProses 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 terperinciA. 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 terperinciPendahuluan. 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 terperinciBAB 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 terperinciSistem 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 terperinciGrafika 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 terperinci4. 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 terperinciBAHAN 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