BAB I PENGENALAN OPENGL

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB I PENGENALAN OPENGL"

Transkripsi

1

2 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 a. Konfigurasi library opengl b. Inisialisas OpenGL C. GLUT (GL Utility Toolkit) Merupakan pengembangan dari OpenGL yang didesain untuk aplikasi dengan level kecil hingga menengah dan menggunakan callback functions untuk menambahkan interaksi dari user. Untuk pemrograman OpenGL menggunakan C++, diperlukan library tambahan yaitu : 1. glut.h yang dicopy ke $dir-c\microsoft Visual Studio 9.0 (sesuaikan dengan versi visual studio anda)\vc\include 2. glut32.lib yang dicopy ke $dir\program Files\Microsoft Visual Studio 9.0 (sesuaikan dengan versi visual studio anda)\vc\lib 3. glut32.dll yang dicopy ke $dir\windows\system32 or if Win64 to syswow64 D. KLASIFIKASI FUNGSI a. Primitive : berupa geometric, b. imagesattribute : berupa color, line type, light, texture c. Viewing : berupa vithrtual d. cameracontrol : turn fuction ON / OFF e. Windowing : window, mouse, keyboard E. CARA KERJA OPENGL OpenGL lebih mengarah pada prosedural daripada sebuah deskriptif API grafis.untuk mendeskripsikan scene dan bagaimana penampilannya,sebenarnya programer lebih tau untuk menentukan hal-hal yang dibutuhkan untuk menghasilkan efek yang di inginkan.langkah tersebut termasuk memanggil banyak perintah opengl, perintah tersebut digunakan untuk menggambarkan MODUL GRAFIKA KOMPUTER 2017 Page 2

3 grafis primitif seperti titik,garis dan poligon dalam tiga dimensi.sebagai tambahan,opengl mendukung lighting, shading, texture mapping, blending, transparancy,dan banyak kemampuan efek khusus lainnya. F. INISIALISASI AWAL Inti dari tahapan ini adalah mengatur view port dan persepektif untuk penampilan obyek ke dalam layar monitor, viewport adalah besarnya layar monitor(image) yang dipakai untuk menampilkanobyek, sedangkan persepektif yang dimaksud adalah pengaturan sumbu z dalam penampilan obyek 3 dimensi,sehingga user dapat melihat obyek seolah-olah dalam bidang 3 dimensi (X-Y-Z),selain itu penggambaran obyek yang dilakukan oleh programer juga dapat menggunaan koordinat 3 dimensi. Selain ke dua tujuan di atas pada tahap ini juga dilakukan koneksi awal dengan library opengl, koneksi ini dilakukan supaya fungsi-fungsi yang di sediakan opengl dapat digunakan. Fungsi/prosedur yang digunakan : Fungsi / Prosedur LoadGlut(glut32.dll) if you no include gl in system InitGL glviewport glmatrixmode Pembuatan Gambar Fungsi / Prosedur GL_QUARDS GL_LINES glvertex3f glcolor3f gllinewidth glpointsize gluortho2d Pengertian Pemanggilan library opengl Inisialisasi opengl awal yang harus dilakukan Untuk pengaturan viewport Untuk pengaturan viewport Pengertian Untuk menggambar segi empat Penggambarkan sebuah garis Untuk menentukan titik 3 dimensi Untuk penentuan suatu warna Yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis, suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek, yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan mendefinisikan besarnya sistem MODUL GRAFIKA KOMPUTER 2017 Page 3

4 koordinat dengan urutan kirikanan dan bawah-atas. glclearcolor Menandakan warna apa yang digunakan sebagai background. Warna dinyatakan dalam bentuk RGBA, angka pertama memwakil warna merah, kedua hijau, ketiga biru, dan keempat adalah alpha atau tingkat transparansi. Tiap warna berkisar antara 0 hngga 1. glclear Untuk menghapus window dan memberikan warna yang telah kita definisakn sebelumnya dengan menggunakan glclearcolor glpushmatrix Menyimpan koordinat Matrik yang ada glpopmatrix Berguna untuk memanggil suatu fungsi yang telah disimpan pada glpushmatrix glbegin(gl_lines) Untuk memmulai menggambar dalam bentuk garis. Setiap pasangan verteks sebagai seg,em garis independen glend Untuk mengakhiri penggambaran sebuah garis SwapBuffers(hDC) untuk menukar bagian belakang buffer menjadi buffer screen glflush() Rendiring Fungsi dasar menggambar titik Fungsi / Prosedur Pengertian Contoh glvertex2i(x,y) Yaitu suatu fungsi glvertex2i(10,10) untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa integer. glvertex2f(x,y) Yaitu suatu fungsi glvertex2f(10.0,10.0) untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa float. glvertex2d(x,y) Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa double. glvertex2d(10.0,10.0) MODUL GRAFIKA KOMPUTER 2017 Page 4

5 Definisi primitive objek Fungsi / Prosedur Pengertian # define GL_POINTS Primitif objek ini dipergunakan untuk menciptakan suatu titik. # define GL_LINES Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis. # define GL_LINE_LOOP Menarik sekelompok verteks yang terhubung menjadi segmen garis dari titik pertama sampai terakhir, kemudian kembali ke verteks yang pertama. # define GL_LINE_STRIP Menggambar sekelompok verteks yang terhubung menjadi segitiga. Sebuah segitiga baru didefinisikan untuk setiap titik yang diberikan setelah dua verteks pertama dan seterusnya. # define GL_TRIANGLES Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu segitiga dengan blok di tengahnya. #define Pada triangles strip jumlah vertex yang GL_TRIANGLES_STRIP dipergunakan adalah 3 buah vertex. #define GL_TRIANGLES_FAN Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga dimana hanya menggunakan 1 titik pusat saja. # define GL_QUADS Quad atau segempat adalah empat buah titik yang terhubung menjadi quat segi empat dengan blok di tengahnya. #define GL_QUADS Pada quads strip 4 buah vertex merupakan 1 _STRIP kelompok. # define GL_POLYGON Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi menghasilkan kurva tertutup dengan blok warna (fill). Fungsi untuk memberikan warna (fungsi color): Fungsi Warna glcolor3f(0,0,0); Black glcolor3f(0,0,1); Blue glcolor3f(0,1,0); Green glcolor3f(0,1,1); Cyan glcolor3f(1,0,0); Red glcolor3f(1,0,1); Magenta glcolor3f(1,1,0); Yellow MODUL GRAFIKA KOMPUTER 2017 Page 5

6 glcolor3f(1,1,1); White Transformasi objek Fungsi / Prosedur Pengertian gltranslatef(x,y,z); Parameter pertama menunjukkan translasi berdasarkan sumbu x. Parameter ke dua menunjukkan translasi terhadap sumbu y. Parameter ke tiga menunjukkan parameter terhadap sumbu z pada kanvas. glrotatef(sudut,x,y,z) Parameter pertama merupakan nilai perputaran sudut yang ; diinginkan. Parameter ke dua adalah perputaran terhadap sumbu x, parameter ke tiga merupakan perputaran terhadap sumbu y, Parameter ke empat6 adalah perputaran terhadap sumbu z. Dan parameter ke dua, ke tiga, dan ke empat harus bernilai 1 untuk menjadi sumbu putar sempurna. Dan untuk pemberian nilainya akan menyebabkan perputaran searah dengan jarum jam ketika diberi nilai negatif, dan sebaliknya. glscalef(x,y,z); Parameter pertama, kedua, dan ke tiga masing-masing menunjukkan nilai skala untuk obyek berdasarkan sumbu x, y, dan z. Jika nilai skala adalah 1, maka ukuran obyek tersebut adalah tetap MODUL GRAFIKA KOMPUTER 2017 Page 6

7 BAB II P R I M I T I F O B J E K A. TUJUAN a. Mampu melakukan inisialisasi pembuatan primitif objek pada opengl b. Mampu membuat primitif objek menggunakan opengl B. MATERI a. Konsep primitif objek di opengl b. Pembuatan primitif objek di opengl C. Definisi Primitif Objek Contoh primitive grafika dasar antara lain : titik, garis, kurva, fill area dan text. Objek kompleks dapat dibuat dengan kombinasi dari primitive ini. Misalkan, Poligaris atau yang dapat didefinisikan sebagai urutan garis lurus yang saling terhubung. Secara umum algoritma grafis memiliki persamaan yaitu bagaimana menampilkan hasil. Contoh SegiEmpat yang menggunakan Primitive Objek : Pada primitive object dapat digunakan untuk membuat segi empat berikut adalah pembuatan suatu objek berupa segiempat, pertama mengalami Proses Rendering : SegiEmpat (posx, posy, w, h) MODUL GRAFIKA KOMPUTER 2017 Page 7

8 1. Maka sintaks pembuatan segiempat : Segitiga MODUL GRAFIKA KOMPUTER 2017 Page 8

9 Segi_8 MODUL GRAFIKA KOMPUTER 2017 Page 9

10 BAB III Algoritma Pembentukan Objek A. TUJUAN a. Mampu memhami konsep algoritma bresenham b. Mampu menerapkan algoritma bresenham pada opengl c. Mampu membuat garis dengan algoritma bresenham B. MATERI a. Konsep algoritma bresenham b. Penerapan algoritma bresenham pada opengl C. Algoritma Bresenham Algoritma Garis Bresenham adalah suatu algoritma yang menentukan titiktitik dalam dimensi yang membentuk pendekatan dekat dengan garis lurus antara dua titik yang diberikan. Pendekatan ini biasa digunakan untuk menggambar garis pada layar komputer, karena hanya menggunakan integer penambahan, pengurangan dan pergeseran. Algoritma ini merupakan salah satu algoritma paling awal yang dikembangkan di bidang komputer grafis. Konsep Algoritma Bresenham adalah: Langkah-langkah pembentukan garis berdasarkan algoritm Bressenham 1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. 2. Tentukan salah satu sebagai titik awal (x0, y0) dan titik akhir (x1,y1). 3. Hitung dx, dy, 2dy dan 2dy - 2dx 4. Hitung parameter : p = 2dy dx 5. Untuk setiap xk sepanjang jalur garis, dimulai dengan k=0, a. bila pk < 0 maka titik selanjutn ya adalah: (xk+1, yk) dan pk+1 = pk + 2dy b. bila tidak, titik selanjutnya adalah: (xk+1, yk+1) dan pk+1 = pk + 2dy 2dx 6. Ulangi nomor 5 untuk menentukan posisi pixel berikutnya, sampai x = x1 atau y = y1. Contoh : Diketahui 2 buah titik A(10,10) dan titik B(17,16) bila titik A sebagai titik awal dan titik B sebagai titik akhir, tentukan titik-titik antara yang menghubungkan titik A dan titik B sehingga membentuk garis AB dengan menggunakan algoritma Bressenham. MODUL GRAFIKA KOMPUTER 2017 Page 10

11 MODUL GRAFIKA KOMPUTER 2017 Page 11

12 Contoh program #include <stdio.h> #include <glut.h> void display() glmatrixmode(gl_projection); gluortho2d(0.0,300.0,0.0,300.0); void setpixel (GLint xcoordinate, GLint ycoordinate) glbegin (GL_POINTS); glvertex2i (xcoordinate, ycoordinate glend(); glflush(); void linebres (GLint x0, GLint y0, GLint xend, GLint yend)//rumus GLint dx = (xend - x0); GLint dy = (yend - y0); GLint p = 2*dy-dx; GLint twody = 2*dy; GLint twodyminusdx = 2*(dy-dx); GLint x,y; if(x0 > xend) x=xend; y=yend; xend=x; else x=x0; y=y0; setpixel(x,y); while(x<xend) x++; if(p<0) p+=twody; else y++; p+=twodyminusdx; setpixel(x,y); void drawmyline () glcolor3f(1.0,0.0,0.0); glpointsize(4.0); GLint x0 = 50; GLint y0 = 50; GLint xend = 150; GLint yend = 50; linebres(x0,y0,xend,yend); glcolor3f(0.0,1.0,0.0); glpointsize(4.0); GLint x1 = 50; MODUL GRAFIKA KOMPUTER 2017 Page 12

13 GLint y1 = 100; GLint x2 = 150; GLint y2 = 100; linebres(x1,y1,x2,y2); glcolor3f(0.0,0.0,1.0); glpointsize(4.0); GLint x3 = 50; GLint y3 = 150; GLint x4 = 150; GLint y4 = 150; linebres(x3,y3,x4,y4); int main(int argc, char** argv) glutinitwindowsize(400,400); glutinitwindowposition(0,0); glutcreatewindow("bresenham"); display(); glutdisplayfunc(drawmyline); glutmainloop(); return 0; TUGAS MODUL GRAFIKA KOMPUTER 2017 Page 13

14 BAB IV Transformasi objek A. TUJUAN a. Mampu memahami transformasi objek pada opengl b. Mampu melakukan transformasi objek menggunakan opengl c. Mampu melakukan implementasi transformasi objek pada opengl B. MATERI a. Konsep Transformasi Objek b. Penerapan Transformasi objek pada opengl C. Tujuan transformasi adalah : 1. Merubah atau menyesuaikan komposisi pemandangan 2. Memudahkan membuat objek yang simetris 3. Melihat objek dari sudut pandang yang berbeda 4. Memindahkan satu atau beberapa objek dari satu tempat ke tempat lain, ini biasa dipakai untuk animasi komputer. Secara substansi, Grafika Komputer adalah proses transformasi dari model 3D obyek berupa informasi geometri bentuk, informasi pose, warna, texture, dan pencahayaan menjadi citra 2D Jika dilihat secara analogi, hal di atas mirip dengan cara kerja kamera dalam mengambil foto dalam bidang fotografi (cf. Gambar 4). Model ini disebut model sintesis camera. MODUL GRAFIKA KOMPUTER 2017 Page 14

15 Untuk menghasilkan gambar dari obyek dengan skenario tertentu kita harus melakukan beberapa proses, yaitu: 1. Melakukan pengesetan kamera dalam bentuk setting lensa kamera (Transformasi Proyeksi), 2. Mengarah kamera dengan mengatur letak tripod (Transformasi Viewing), 3. Mengatur letak obyek (Transformasi Modeling), dan 4. Mengatur skala dan layout dari foto (Transformasi Viewport) D. Translasi Translasi adalah transformasi dengan bentuk yang tetap, memindahkan objek apa adanya. Setiap titik dari objek akan ditranslasikan dengan besaran yang sama.dalam operasi translasi, setiap titik pada suatu entitas yang ditranslasi bergerak dalam jarak yang sama. Pergerakan tersebut dapat berlaku dalam arah sumbu X saja, atau dalam arah sumbu Y saja atau keduanya. Translasi juga berlaku pada garis, objek atau gabungan objek 2D yang lain. Untuk hal ini, setiap titik pada garis atau objek yang ditranslasi dalam arah x dan y masing -masing sebesar t x,t y. Program di bawah ini akan memberikan ilustrasi bagaimana transformasi translate diimplementasikan. MODUL GRAFIKA KOMPUTER 2017 Page 15

16 Contoh Translasi E. Rotate Rotasi artinya berputar. Ketika suatu bentuk benda sengaja diputar maka perlu di tentukan pusat dan besar sudut putar. sedangkan translasi adalah pergeseran. Benda yang telah berpindah dari pusatnya berarti mengalami pergeseran, yaitu apakah dia bergerak maju mundur ataupun menuju ke atas bawah. Rotasi berbeda dengan translasi karena perubahan posisi pada translasi tidak mengacu pada suatu titik tertentu. Keistimewaan dari rotasi adalah jarak antara titik pusat dengan masing-masing bagian dari obyek yang diputar akan selalu tetap, seberapa jauh pun obyek itu diputar. Pada sebuah game yang menggunakan grafik vektor dan grafik bitmap, rotasi dan translasi sangat di butuhkan. Dengan basic4gl kita bisa menggunakan source code yang tersedia yaitu : MODUL GRAFIKA KOMPUTER 2017 Page 16

17 gltranslatef (x, y, z) digunakan untuk merubah titik posisi awal sumbu koordinat menuju posisi yang ditentukan sesuai koordinat x,y, dan z. glrotatef (angle, x, y, z) digunakan untuk memutar suatu bidang pada sudut tertentu (angle). Untuk membangkitkan rotasi pada objek 3D kita harus membuat aksis dari rotasi dan jumlah sudut rotasi. Tidak seperti melakukan rotasi pada objek 2D yang semua proses transformasi dilakukan di koordinat xy, sebuah rotasi objek tiga dimensi bisa dilakukan di space manapun. Contoh Program Rotasi MODUL GRAFIKA KOMPUTER 2017 Page 17

18 F. Scale Skala merupakan salah satu bentuk transformasi yang merubah ukuran dari objek yang ditentukan, baik membesar ataupun mengecil. Perubahan ukuran tersebut didasarkan pada sumbu x, sumbu y, maupun sumbu z, dimana jika yang diubah hanya sumbu x, maka besarnya objek akan berubah sesuai dengan sumbu x baru yang telah ditentukan, begitu pula jika diubah terhadap sumbu dan zy, maka objek akan menguikuti perubahan sesuai sumbu y maupun z baru yang telah ditentukan. Perubahan skala diperoleh dari mengalikan nilai koordinat objek dengan skala tertentu sesuai dengan sumbu masing - masing. Bentuk dari matriks skala adalah: Transformasi skala dapat dilakukan dengan cara memanggil fungsi: glscalef(sx, Sy, Sz) glscaled(sx, Sy, Sz) Dimana Sx, Sy, dan Sz merupakan parameter dari masing masing sumbu ( Sx merupakan parameter pada sumbu x, Sy merupakan parameter pada sumbu y, dan Sz merupakan parameter pada sumbu z) MODUL GRAFIKA KOMPUTER 2017 Page 18

19 Source code Scale D. Tutorial Urutan Transformasi Transformasi dapat dilakukan pada level vertex, level surface, maupun level obyek bergantung dimana transformasi diletakkan dalam program. Operasi transformasi merupakan operasi yang tidak bersifat komutatif, artinya, urutan transformasi juga sangat berpengaruh pada hasilnya. ilustrasi akibat urutan transformasi yang berbeda, yaitu hasil operasi rotasi kemudian di translasi berbeda dengan operasi translasi baru dirotasi. MODUL GRAFIKA KOMPUTER 2017 Page 19

20 Program obyeknya sudah berupa obyek 3D berupa kubus. Perhatikan bagaimana kubus dibentuk dari vertex dan surface. Selain dengan mendefinisikan obyeknya sendiri, GLUT telah menyediakan beberapa fungsi untuk menggambar standard obyek, yaitu kubus, bola, dan poci teh. Perhatikan apa yang terjadi bila gltranslate() dan glrotate() di fungsi mydisplay() ditukar posisinya atau diletakkan didalam salah satu glbegin()..glend() #include<stdlib.h> #include<glut.h> float z_pos = -10.0f; float rot = 0.0f; void resize(int width, int height) glviewport(0, 0, width, height); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45.0,(float)width / (float)height, 1.0, 300.0); glmatrixmode(gl_modelview); glloadidentity(); void putaran(int id) rot += 10; glutpostredisplay(); // request redisplay gluttimerfunc(100, putaran, 0); // request next timer event void mykeyboard(unsigned char key, int x, int y) if ((key == '<') (key == ',')) z_pos -= 0.1f; if ((key == '>') (key == '.')) z_pos += 0.1f; void mydisplay(void) glclear(gl_color_buffer_bit); glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0.0, 0.0f, z_pos); glrotatef(rot, 0, 1, 0); MODUL GRAFIKA KOMPUTER 2017 Page 20

21 glbegin(gl_quads); // Front Face, red glcolor3f(1.0, 0.0, 0.0); glvertex3f(-1.0f, -1.0f, 1.0f); glvertex3f(1.0f, -1.0f, 1.0f); glvertex3f(1.0f, 1.0f, 1.0f); glvertex3f(-1.0f, 1.0f, 1.0f); // Back Face, green glcolor3f(0.0, 1.0, 0.0); glvertex3f(1.0f, -1.0f, -1.0f); glvertex3f(1.0f, 1.0f, -1.0f); glvertex3f(-1.0f, 1.0f, -1.0f); glvertex3f(-1.0f, -1.0f, -1.0f); // Top Face, blue glcolor3f(0.0, 0.0, 1.0); glvertex3f(-1.0f, 1.0f, -1.0f); glvertex3f(-1.0f, 1.0f, 1.0f); glvertex3f(1.0f, 1.0f, 1.0f); glvertex3f(1.0f, 1.0f, -1.0f); // Bottom Face, yellow glcolor3f(1.0, 1.0, 0.0); glvertex3f(-1.0f, -1.0f, -1.0f); glvertex3f(1.0f, -1.0f, -1.0f); glvertex3f(1.0f, -1.0f, 1.0f); glvertex3f(-1.0f, -1.0f, 1.0f); // Right face, cyan glcolor3f(0.0, 1.0, 1.0); glvertex3f(1.0f, -1.0f, -1.0f); glvertex3f(1.0f, 1.0f, -1.0f); glvertex3f(1.0f, 1.0f, 1.0f); glvertex3f(1.0f, -1.0f, 1.0f); // Left Face, magenta glcolor3f(1.0, 0.0, 1.0); glvertex3f(-1.0f, -1.0f, -1.0f); glvertex3f(-1.0f, -1.0f, 1.0f); glvertex3f(-1.0f, 1.0f, 1.0f); glvertex3f(-1.0f, 1.0f, -1.0f); glend(); glflush(); glutswapbuffers(); void init() glenable(gl_depth_test); glclearcolor(0.0, 0.0, 0.0, 1.0); // A Background Clear Color glmatrixmode(gl_projection); glloadidentity(); gluperspective(45, (GLdouble)500.0 / (GLdouble)500.0, 0, 100); glmatrixmode(gl_modelview); return; int main(int argc, char** argv) glutinit(&argc, argv); MODUL GRAFIKA KOMPUTER 2017 Page 21

22 //glutinitdisplaymode( GLUT_DOUBLE /* GLUT_DEPTH* / ); glutinitdisplaymode(glut_double GLUT_DEPTH); glutinitwindowsize(500, 500); glutinitwindowposition(0, 0); glutcreatewindow("transformasi"); // callbacks glutdisplayfunc(mydisplay); glutkeyboardfunc(mykeyboard); gluttimerfunc(100, putaran, 0); glutreshapefunc(resize); init(); glutmainloop(); return 0; G. Implementasi Transformasi Objek Contoh Program : #include <stdlib.h> #include <glut.h> //#include <DrawLine.h> void drawquad() glbegin(gl_polygon); glvertex2f(77., 70.); glvertex2f(80., 146.); glvertex2f(99., 90.); glvertex2f(157., 90.); glvertex2f(110., 55.); glvertex2f(128., 1.); glvertex2f(80., 34.); glvertex2f(32., 1.); glvertex2f(54., 55.); glvertex2f(3., 90.); glvertex2f(63., 90.); glvertex2f(80., 146.); glend(); glflush(); void renderscene(void) glclear(gl_color_buffer_bit); // drawkordinat(); glpushmatrix(); gltranslatef(-500, -500, 0); glcolor3f(0, 1, 0); //blue drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(-450, -350, 0); glrotatef(30, 0, 0, 1); glscalef(0.5, 0.5, 0); glcolor3f(0, 1, 1); //red drawquad(); glpopmatrix(); glpushmatrix(); MODUL GRAFIKA KOMPUTER 2017 Page 22

23 gltranslatef(-200, -350, 0); glscalef(0.5, 0.5, 0); glcolor3f(1, 0, 1); //yellow drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(-150, 0, 0); glscalef(0.3, 0.3, 0); glcolor3f(1, 1, 1); //pink drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(450, 400, 0); glrotatef(45, 0, 0, 1); glscalef(0.6, 0.6, 0); glcolor3f(1, 0, 1); //green drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(-50, -180, 0); glscalef(0.4, 0.4, 0); glcolor3f(1, 1, 1); //magenta drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(-400, -200, 0); glscalef(0.4, 0.4, 0); glcolor3f(10, 0, 1); //blue drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(50, 0, 0); glscalef(0.4, 0.4, 0); glcolor3f(1, 0, 0); //green drawquad(); glpopmatrix(); glpushmatrix(); gltranslatef(150, 300, 0); glrotatef(-45, 0, 0, 1); glcolor3f(1, 1, 1); glpopmatrix(); glflush(); void main(int argc, char **argv) glutinit(&argc, argv); glutinitwindowposition(100, 100); glutinitwindowsize(480, 480); glutcreatewindow("implementasi Transformasi"); gluortho2d(-640., 640., -640., 640.); MODUL GRAFIKA KOMPUTER 2017 Page 23

24 glutdisplayfunc(renderscene); glutmainloop(); Tugas MODUL GRAFIKA KOMPUTER 2017 Page 24

25 BAB V ANIMASI DAN PEMROGRAMAN A. TUJUAN a. Mampu memahami animasi pada opengl b. Mampu melakukan implementasi animasi objek pada opengl B. MATERI a. Animasi Object pada OpenGL C. Konsep Animasi pada GLUT Dalam penggunaan gluttimerfunc dimungkinkan untuk membuat sebuah animasi yang dikontrol oleh waktu. Fungsi dari glutpostredisplaya dalah mengirimkan perintah untuk mengaktifkan display secara berkala (looping). Kemudian pada main program perlu menambahkan fungsi untuk mengaktifkan timer function. a. Fungsi dasar pembuatan animasi dengan menggunakan TimerFunction GLUT void APIENTRY gluttimerfunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); Dalam penggunaan gluttimerfunc dimungkinkan untuk membuat sebuah animasi yang dikontrol olehwaktu. b. Inisialisasi dalam penggunaan TimerFunction Fungsi dari glutpostredisplay adalah mengirim kan perintah untuk mengaktifkan display secara berkala (looping). Kemudian pada main program perlu menambahkan fungsi untuk mengaktifkan timer function. MODUL GRAFIKA KOMPUTER 2017 Page 25

26 Contoh program Membuat sebuah baling-baling yang bisa perputar secara clockwise kemudian unclockwise yang pusatnya berada pada pusat koordinat. #include <stdlib.h> #include <glut.h> int x=0; int zputer=0; int zbalik=180; void Timer(int value) if (zputer <= 360) x = 1; zputer += 1; if (zputer>360) x = -1; zbalik -= 1; if (zbalik<0) x = 1; zputer = 0; zbalik = 360; glutpostredisplay(); gluttimerfunc(5, Timer, 0); void Draw() glbegin(gl_triangles); glclear(gl_color_buffer_bit); glvertex2d(0, 0); glvertex2d(-100, 200); glvertex2d(100, 200); glvertex2d(0, 0); glvertex2d(-100, -200); glvertex2d(100, -200); glend(); void display() glclear(gl_color_buffer_bit); glpopmatrix(); glrotatef(x, 0., 0., 1.); Draw(); glpushmatrix(); glflush(); void main(int argc, char **argv) glutinit(&argc, argv); glutinitwindowposition(100, 100); glutinitwindowsize(300, 300); glutcreatewindow("jam ANALOG: Prak Grafkom"); gluortho2d(-300., 300., -300., 300.); glutdisplayfunc(display); gluttimerfunc(60, Timer, 0); glutmainloop(); MODUL GRAFIKA KOMPUTER 2017 Page 26

27 Animasi 2D menggunakan OpenGL dapat dilakukan dengan melakukan perpindahan objek menggunakan gltranslatef, juga dapat dilakukan dengan melakukan perputaran atau pergerakan objek yang berporos pada sumbu-sumbu koordinat dari sumbu pembentuk objek tersebut menggunakan glrotatef. Kemudian waktu yang digunakan dalam pergerakan animasi juga dapat diatur sesuai keinginan dengan menggunakan gluttimerfunc. MODUL GRAFIKA KOMPUTER 2017 Page 27

28 BAB VI INTERAKSI DENGAN PERANGKAT A. TUJUAN a. Mampu memahami interasksi perangkat keras dengan opengl b. Mampu melakukan implementasi interkasi perangkat keras dengan opengl B. MATERI a. Interaksi perangkat keras dengan opengl Pada bab ini akan membahas tentang bagaimana objek yang kita buat akan berinteraksi dengan perangkat keras komputer serperti, keyboard dan mouse. 1. KONSEP INPUT KEYBOARD PADA GLUT-KEY BIASA DAN SPECIAL KEY a. KONSEP INPUT KEYBOARD (GENERAL BUTTON) glutkeyboardfunc adalah suatu fungsi callback untuk digunakan sebagai masukan pada suatu jendela window. Konsepnya pada saat seorang user atau pengguna memberikan input yaitu menekan pada tombol keyboard, setiap tombol keyboard yang ditekan akan menghasilkan suatu karakter ASCII yang akan menghasilkan suatu callback keyboard yang telah didefinisikan berupa fungsi dengan 3 parameter. Penggunaan input keyboard pada tombol-tombol biasa atau normal key (a-z, 1-0), dapat dilakukan dengan menggunakan callback function berupa glutkeyboardfunc(mykeyboard) dengan dideklarasikan terlebih dahulu suatu fungsi buatan untuk menampung semua perintah input yang akan digunakan oleh user. Fungsi buatan tersebut seperti contoh di bawah ini: void mykeyboard(unsigned char key, int x,int y) // masukkan perintah disini Fungsi tersebut berisi suatu perintah yang akan digunakan dalam pengoperasian program oleh user. Di dalam fungsi tersebut terdapat 3 parameter dan di dalamnya dideklarasikan suatu perintah yang nantinya akan digunakan. void timer(int value) MODUL GRAFIKA KOMPUTER 2017 Page 28

29 glutpostredisplay(); gluttimerfunc(100, timer, 0); void mykeyboard(unsigned char key, int x, int y) if(key == 'a') gltranslatef(0,5,0); if(key == 'd') gltranslatef(0,-5,0); void renderscene(void) glclear(gl_color_buffer_bit); glcolor3f(1.,0.,0.); Draw(); glflush(); Sintaks tersebut adalah sintak dasar yang digunakan, untuk bisa menggunakan input keyboard maka harus diberikan callback function untuk memanggilnya. glutdisplayfunc(renderscene); glutkeyboardfunc(mykeyboard); gluttimerfunc(30,timer,0); Sintaks tersebut harus disertakan pada fungsi main. Selain itu, pada keyboard juga terdapat method lain yang bisa digunakan dalam proses input ini, yaitu: Key Press, Key Up, dan Key Buffering. a. Key Press Metode ini akan memberitahukan kita pada command line tombol apa yang sedang kita tekan. Method ini dapat dinamakan keypressed dan pada GLUT akan terdapat 3 parameter, satu untuk tombol yang saat itu ditekan, dan dua untuk memberitahukan lokasi mouse ketika tombol ditekan. void keypressed(unsigned char key, int x, int y) MODUL GRAFIKA KOMPUTER 2017 Page 29

30 If(key == a ) // saat tombol a ditekan // aksi yang diberikan saat tombol a ditekan Dan fungsi tersebut akan dipanggil pada fungsi main, namun callback function-nya sedikit berbeda dari callback function yang sebelumnya. glutkeyboardfunc(keypressed); // memberitahukan pada GLUT untuk menggunakan method "keypressed" untuk tombol yang ditekan b. Key Up Fungsi Key Up ini adalah fungsi register yang menyimpan nilai masukan sampai ketika tombol keyboard dilepaskan. Hal ini bisa berguna untuk pengaturan beberapa nilai ketika suatu tombol pertama kali ditekan, dan tetap menjaga nilai tersebut sampai tombol tersebut dilapaskan. Method sama seperti method Key Press tadi yaitu memiliki 3 parameter yang memiliki fungsi yang sama, hanya berbeda pada penamaannya yaitu, keyup. void keyup(unsigned char key, int x, int y) If(key == a ) // saat tombol a ditekan // aksi yang diberikan saat tombol a ditekan Dan fungsi tersebut akan dipanggil pada fungsi main, namun callback function-nya sedikit berbeda dari callback function yang sebelumnya. glutkeyboardfunc(keyup); // memberitahukan pada GLUT untuk menggunakan method "keyup" untuk tombol yang dilepas c. Key Buffering Method ini memungkinkan untuk penanganan terhadap tombol yang ditekan dalam jumlah banyak dalam proyekproyek OpenGL. Seperti yang diketahui tipe data char sama dengan byte dan dapat mengambila nilai integer dari 0 sampai 255. Ini dikarenakan tipe data char memiliki ukuran 2 8 atau 256. Hal ini memungkinkan kita untuk menangani hingga 256 tombol berbeda pada keyboard, atau seluruh set karakter ASCII. Pertama dimulai dengan pendeklarasian sebuah array dari nilai Boolean yang akan menangani masing-masing method keyboard, true untuk tombol yang ditekan, dan false saat tombol dilepaskan. bool* keystates = new bool[256]; // membuat array dari nilai boolean dengan ukuran 256 (0-255) MODUL GRAFIKA KOMPUTER 2017 Page 30

31 kemudian dilanjutkan dengan pendeklarasian masing-masing method. void keypressed(unsigned char key, int x, int y) keystates[key] = true; void keyup(unsigned char key, int x, int y) keystates[key] = false; void keyoperations(void) if(keystates['a']) // saat tombol a ditekan // aksi yang diberikan saat tombol a ditekan Sama seperti sebelumnya fungsi-fungsi tersebut akan dipanggil pada fungsi main dengan callback function berikut: void display (void) keyoperations(); glclearcolor(1.0f, 0.0f, 0.0f, 1.0f); // menjadikan background menjadi warna merah 2. KONSEP INPUT KEYBOARD SPECIAL KEY GlutSpecialFunc merupakan suatu fungsi callback pada opengl yang digunakan untuk mengaktifkan tombol-tombol khusus pada keyboard sehingga dapat digunakan untuk berinteraksi antara user dengan objek yang ada di dalam display opengl. Pendeklarasiannya adalah : void glutspecialfunc (void (* func) (int key, int x, int y)); callback keyboard khusus dipicu ketika keyboard fungsi atau tombol special yang dideklarasikan ditekan. Parameter callback kunci adalah GLUT_KEY_tombol khusus.. Parameter x dan y mengindikasikan koordinat relatif jendela ketika tombol ditekan. Ketika jendela baru dibuat, tidak ada callback khusus awalnya terdaftar dan stroke kunci khusus di jendela diabaikan. Melewati NULL untuk glutspecialfunc Menonaktifkan generasi callback khusus. Selama callback khusus, glutgetmodifiers dapat dipanggil untuk menentukan keadaan tombol pengubah ketika keystroke menghasilkan callback terjadi. Nilai-nilai yang tersedia GLUT_KEY_ * adalah: GLUT_KEY_F1 GLUT_KEY_F2 GLUT_KEY_F3 GLUT_KEY_F4 GLUT_KEY_F5 F1 function key F2 function key F3 function key F4 function key F5 function key MODUL GRAFIKA KOMPUTER 2017 Page 31

32 GLUT_KEY_F6 GLUT_KEY_F7 GLUT_KEY_F8 GLUT_KEY_F9 GLUT_KEY_F10 GLUT_KEY_F11 GLUT_KEY_F12 GLUT_KEY_LEFT GLUT_KEY_RIGHT GLUT_KEY_UP GLUT_KEY_DOWN GLUT_KEY_PAGE_UP GLUT_KEY_PAGE_DOWN GLUT_KEY_HOME GLUT_KEY_END GLUT_KEY_INSERT F6 function key F7 function key F8 function key F9 function key F10 function key F11 function key F12 function key Left function key Right function key Up function key Down function key Page Up function key PageDown function key Home function key End function key Insert function key Tombol-tombol diatas dapat diaktifkan dengan membuat sebuah fungsi callback yang akan dipanggil oleh glutspecialfunc ke dalam fungsi main program, sehingga user dapat berinteraksi dengan objek yang ada dengan menekan tombol-tombol special keyboard yang telah di deklarasikan ke dalam fungsi callback tersebut. contoh pembuatan fungsi callback untuk tombol special keyboard : void myspecialkeyboard(int key, int x, int y) switch(key) case GLUT_KEY_LEFT : c+=-4; d+=0; break; case GLUT_KEY_RIGHT : c+=4; d+=0; break; case GLUT_KEY_UP : c+=0; d+=4; break; case GLUT_KEY_DOWN : c+=0; d+=-4; break; MODUL GRAFIKA KOMPUTER 2017 Page 32

33 Selanjutnya fungsi tersebut akan dipanggil oleh glutdisplayfunc ke dalam fungsi main, berikut script nya : glutspecialfunc(myspecialkeyboard); Selain fungsi callback yang mendeklarasikan tombol special keyboard, untuk dapat berinteraksi fungsi tersebut harus memiliki fungsi callback lain yang akan dipanggil kedalam fungsi glutdisplayfunc dan fungsi gluttimerfunc didalam fungsi main program tersebut. fungsi callback di dalam fungsi glutdisplayfunk merupakan fungsi yang mendklarasikan objek yang akan berinteraksi dengan tombol keyborad, Sedangkan fungsi gluttimerfunc berfungsi agar tombol keyboard dapat terus terdeteksi oleh glut. Contoh program interaksi keyboard lengkap : #include <stdlib.h> #include <glut.h> int c, d; void triangles() glbegin(gl_triangles); glvertex2i(280, 0); glvertex2i(250, 60); glvertex2i(220, 0); glend(); void myspecialkeyboard(int key, int x, int y) switch (key) case GLUT_KEY_LEFT: c += -4; d += 0; break; case GLUT_KEY_RIGHT: c += 4; d += 0; break; case GLUT_KEY_UP: c += 0; d += 4; break; case GLUT_KEY_DOWN: c += 0; d += -4; break; void timer(int value) glutpostredisplay(); gluttimerfunc(50, timer, 0); void renderscene(void) glclear(gl_color_buffer_bit); MODUL GRAFIKA KOMPUTER 2017 Page 33

34 glpushmatrix(); gltranslatef(c, d, 0); triangles(); glpopmatrix(); glflush(); void main(int argc, char **argv) glutinit(&argc, argv); glutinitwindowposition(100, 100); glutinitwindowsize(640, 480); glutcreatewindow("uji keyfunc"); gluortho2d(-320., 320., -240., 240.); gluttimerfunc(50, timer, 0); glutdisplayfunc(renderscene); glutspecialfunc(myspecialkeyboard); glutmainloop(); Sesuai dengan program dimana setiap tombol arah akan memiliki nilai variabel c dan d yang berbeda-beda yang akan mengakibatkan gambar akan bergeser dengan arah yang sesuai nilai variabel tersebut ketika tombol khusus arah (up, down, left dan right) ditekan. 2. KONSEP MOUSE PADA GLUT Dalam konsep mouse pada glut ada beberapa fungsi dasar dan inisialisasi yang digunakan untuk melakukan interaksi mouse. Adapun penjelasannya adalah sebagai berikut : 1. Fungsi dasar pembuatan interaksi dengan menggunakan MouseFunction GLUTAPI void APIENTRY glutmousefunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); Paramater func adalah fungsi yang akan ditangani dengan event klik mouse. GLUTAPI void APIENTRY glutmotionfunc(void *func(int x, int y)); Fungsi di atas adalah fungsi pelengkap dari fungsi interaksi mouse untuk mendeteksi gerakan mouse. 2. Inisialisasi dalam penggunaan MouseFunction void mouse(int button, int state, int x,int y) if(button==glut_left_button && state==glut_down) drawdot(x,480-y); if(button==glut_right_button && state==glut_down) drawdot2(x,480-y); if(button==glut_middle_button && state==glut_down) drawdot3(x,480-y); MODUL GRAFIKA KOMPUTER 2017 Page 34

35 void motion(int x,int y) Dalam penerapan interaksi mouse pada open gl / glut, Fungsi inisialisasinya adalah sebagai berikut : 1. GLUT_LEFT_BUTTON Fungsi inisialisasi ini bertujuan untuk inisialisasi button mouse kiri. Jadi apabila kita ingin mengaktifkan fungsi penggunaan dari button mouse sebelah kiri maka bisa menggunakan fungsi inisialisasi ini. 2. GLUT_RIGHT_BUTTON Fungsi inisialisasi ini bertujuan untuk inisialisasi button mouse kanan. Jadi apabila kita ingin mengaktifkan fungsi penggunaan dari button mouse sebelah kanan maka bisa menggunakan fungsi inisialisasi ini. 3. GLUT_MIDDLE_BUTTON Fungsi inisialisasi ini bertujuan untuk inisialisasi button mouse tengah. Jadi apabila kita ingin mengaktifkan fungsi penggunaan dari button mouse tengah maka bisa menggunakan fungsi inisialisasi ini. 4. GLUT_DOWN Fungsi inisialisasi ini adalah untuk inisialisasi ketika tombol mouse ditekan. 5. GLUT_UP Fungsi inisialisasi ini adalah untuk inisialisasi ketika tombol mouse dilepaskan. Kemudian pada main program perlu menambahkan fungsi untuk callback fungsi MouseFunction. glutmousefunc(mouse); glutmotionfunc(motion); 3. Sistim Koordinat interaksi mouse pada glut Sistim koordinat interaksi mouse pada glut adalah sebagai berikut. Misalnya ditentukan iinisialisasi awal adalah : int w = 480, h=480; float x=0, y=0, z=0; maka : MODUL GRAFIKA KOMPUTER 2017 Page 35

36 a. Titik 0,0 berada pada pojok kiri atas, koordinatnya akan berubah apabila terjadi pergeseran mouse. b. Titik 480,0 berada pada pojok kanan atas. c. Titik 0, 480 berada pada pojok kiri bawah d. Titik 480,480 berada pada pojok kanan bawah CONTOH PROGAM PENERAPAN MOUSE PADA GLUT #include <stdlib.h> #include <glut.h> #include <stdio.h> void Triangles() glbegin(gl_triangles); glvertex2i(0, 0); glvertex2i(100, -30); glvertex2i(100, 30); glend(); void mouseku(int button, int state, int x, int y) if (button == GLUT_LEFT_BUTTON) printf("tombol KIRI (%d,%d)\n", x, y); else if (button == GLUT_MIDDLE_BUTTON) printf("tombol TENGAH (%d,%d)\n", x, y); else printf("tombol KANAN (%d,%d)\n", x, y); if (state == GLUT_DOWN) printf("tombol DITEKAN\n"); else printf("tombol DILEPAS\n"); void display() glclear(gl_color_buffer_bit); glrotatef(10, 0., 0., 1.); Triangles(); glflush(); void Timer(int value) glutpostredisplay(); gluttimerfunc(30, Timer, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_depth GLUT_SINGLE GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(320, 320); glutcreatewindow("mouse"); glutdisplayfunc(display); gluortho2d(-320.0, 320.0, , 320.0); MODUL GRAFIKA KOMPUTER 2017 Page 36

37 gluttimerfunc(10, Timer, 0); glutmousefunc(mouseku); glutmainloop(); 2. Interaksi Drag #include <stdlib.h> #include <glut.h> #include <stdio.h> void Triangles() glbegin(gl_triangles); glvertex2i(0, 0); glvertex2i(100, -30); glvertex2i(100, 30); glend(); void mouseku(int button, int state, int x, int y) if (button == GLUT_LEFT_BUTTON) printf("tombol KIRI (%d,%d)\n", x, y); else if (button == GLUT_MIDDLE_BUTTON) printf("tombol TENGAH (%d, %d)\n", x, y); else printf("tombol KANAN (%d,%d)\n", x, y); if (state == GLUT_DOWN) printf("tombol DITEKAN\n"); else printf("tombol DILEPAS\n"); void motionku(int x, int y) printf("posisi printer mouse (%d, %d)\n", x, y); void display() glclear(gl_color_buffer_bit); glrotatef(89, 0., 0., 1.); Triangles(); glflush(); void Timer(int value) glutpostredisplay(); gluttimerfunc(10, Timer, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_depth GLUT_SINGLE GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(320, 320); glutcreatewindow("glut"); glutdisplayfunc(display); MODUL GRAFIKA KOMPUTER 2017 Page 37

38 gluortho2d(-320.0, 320.0, , 320.0); gluttimerfunc(10, Timer, 0); glutmousefunc(mouseku); glutmotionfunc(motionku); glutmainloop(); 3. Contoh Implementasi #include <stdlib.h> #include <stdio.h> #include <glut.h> float x = 1, y = 1, z = 0; int w = 480, h = 480, flag = 0, flg; void drawquad() glbegin(gl_polygon); glcolor3f(0, 0, 1); glvertex2f(-20., -20.); glvertex2f(20., -20.); glvertex2f(20., 20.); glvertex2f(-20., 20.); glend(); void mouse(int button, int state, int xmouse, int ymouse) if (flg == 0) if (state == GLUT_DOWN) if (button == GLUT_LEFT_BUTTON) flag++; if (flag == 2) flg = 3; x = 3; y = 3; printf("%d", flg); if (flg == 3) if (state == GLUT_DOWN) if (button == GLUT_LEFT_BUTTON) flag--; if (flag == 0) 0; x = 1; y = 1; flg = MODUL GRAFIKA KOMPUTER 2017 Page 38

39 void renderscene(void) glclear(gl_color_buffer_bit); glclearcolor(1, 1, 1, 1); glpushmatrix(); glscalef(x, y, z); drawquad(); glpopmatrix(); glflush(); void timer(int value) glutpostredisplay(); gluttimerfunc(50, timer, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("interaksi Mouse"); gluortho2d(-w / 2, w / 2, -h / 2, h / 2); glutdisplayfunc(renderscene); glutmousefunc(mouse); gluttimerfunc(1, timer, 0); glutmainloop(); 4. MODUL GRAFIKA KOMPUTER 2017 Page 39

40 BAB VII OBJEK 3D A. TUJUAN a. Mampu memahami konsep Objek 3D wireframe pada opengl b. Mampu membuat objek 3d wirefirme pada opengl c. Mampu melakukan implemntasi transformasi pada objek 3d dengan OpenGL B. MATERI a. Pembuatan Objek 3D wireframe b. Transformasi Objek 3D wireframe a. Primitive 3D Ada beberapa bentuk primitive dari objek 3 dimensi. Promitive yaitu bentuk dasar yang dapat dengan mudah didefinisikan secara matematik. a. Sphere glutwiresphere(5, 20, 20); b. Cube glutwirecube(25); c. Cone glutwirecone(alas, tinggi, 20, 20); MODUL GRAFIKA KOMPUTER 2017 Page 40

41 d. Dodecahedron glutwiredodecahedron(); e. Teapot glutwireteapot(15); f. Torus glutwiretorus(luar, dalam, 20, 20); Setiap primitive 3D memiliki parameter nilai yang mengekspresikan letak dan bentuk primitive objek tersebut. b. Transformasi Objek 3 Dimensi Metode transformasi objek tiga dimensi sangat berbeda dengan objek dua dimensi karena terdapat sumbu z yang ditambahkan sebagai salah satu acuan untuk memperoleh posisi koordinat baru. a. Translasi (Perpindahan) Dalam tranformasi objek tiga dimensi, translasi adalah pemindahan suatu titik dari titik P=(x,y,z) ke posisi P=(x,y,z ) (Hearn, 1994) dengan menggunakan operasi matriks : Parameter t x, t y, dan t z menjelaskan perpindahan jarak untuk koordinat x, y, dan z. MODUL GRAFIKA KOMPUTER 2017 Page 41

42 Sebuah bangun tiga dimensi yang ditranslasikan dengan vektor tertentu, dilakukan dengan memindahkan titik-titik sesuai dengan vektor tersebut. Contoh Program dalam Open GL 1. Contoh Penerapan Cube pada GLUT Cube menggunakan fungsi void glutwirecube(gldouble size); untuk menentukan ukuran panjang sisi. #include<stdlib.h> #include<glut.h> float w=480,h=480; float sudut = 0, sx = 0, sy = 0, sz = 0; void cube() glcolor3d(0, 0, 1); glutwirecube(10); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, -40); glrotatef(sudut, sx, sy, sz); cube(); glutswapbuffers(); void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h,1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) MODUL GRAFIKA KOMPUTER 2017 Page 42

43 if (key == 'x') sx = 1; sy = 0; sz = 0; sudut += 10; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); Note: saja. Dengan interaksi keyboard y, maka objek akan berotasi pada sumbu y 2. Contoh Penerapan WireSphere pada GLUT WireSphere menggunakan fungsi void glutwiresphere(gldouble radius,glint slices, GLintstacks); untuk membuat bola berpusat pada asal pemodelan sistem koordinat. #include<stdlib.h> #include<glut.h> float w = 480, h = 480; float sudut = 0, sx = 0, sy = 0, sz = 0, z = -320; void sphere() glcolor3d(1, 1, 1); glutwiresphere(100, 150,100); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, z); glrotatef(sudut, sx, sy, sz); sphere(); glutswapbuffers(); void resize(int w1, int h1) MODUL GRAFIKA KOMPUTER 2017 Page 43

44 glviewport(0, 0, w1, h1); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45.0, (float)w1 / (float)h1, 1.0, 300.0); glmatrixmode(gl_modelview); glloadidentity(); void mykeyboard(unsigned char key, int x, int y) if (key == 'y') sy = 1; sudut += 10; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); 3. Contoh Penerapan WireCone pada GLUT WireCone menggunakan fungsi void glutwirecone(gldouble base, GLdouble height,glintslices, GLint stacks); untuk membuat ukuran benda ditentukan dari dasar jari-jari alasnya. #include<stdlib.h> #include<glut.h> float w = 480, h = 480; float sudut = 0, sx = 0, sy = 0, sz = 0, zz = -70; int t = 20; void WireCone() glcolor3d(0, 1, 1); glutwirecone(20, t, 50, 50); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, zz); glrotatef(sudut, sx, sy, sz); WireCone(); glutswapbuffers(); MODUL GRAFIKA KOMPUTER 2017 Page 44

45 void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h,1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) if (key == 'x') sx = 1; sy = 0; sz = 0; sudut += 10; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); Note : Dengan interaksi keyoboard x, objek akan berotasi pada sumbu x saja. Dengan interaksi keyboard z, objek akan berotasi pada sumbu z saja 4. Contoh Penerapan Torus pada GLUT Torus menggunakan fungsi void glutwiretorus(gldouble innerradius, GLdouble outerradius,glint nsides, GLint rings);. untuk merender 12 sisi yang berpusat pada asal, dan dengan radius sama dengan kuadrat dari 3. #include <stdlib.h> #include <glut.h> float w = 480, h = 480; float sudut = 0, sx = 0, sy = 0, sz = 0, dalam = 20, luar = 50, sides = 50, rings = 50; void torus() glcolor3d(0, 1, 1); glutwiretorus(dalam, luar, sides, rings); MODUL GRAFIKA KOMPUTER 2017 Page 45

46 void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, -200); glrotatef(sudut, sx, sy, sz); torus(); glutswapbuffers(); void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h, 1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) if (key == 'x') sx = 1; sy = 0; sz = 0; sudut += 10; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); Note : Dengan interaksi keyoboard x, objek akan berotasi pada sumbu x saja. Dengan interaksi keyboard y, objek akan berotasi pada sumbu y saja. Dengan interaksi keyboard z, objek akan berotasi pada sumbu z saja. 5. Contoh Penerapan Dose pada GLUT Dode menggunakan fungsi void glutwiredodecahedron(void); untuk merenders padat atau wireframe 12-sisi biasa padat. Berpusat di sekitar asal dan dengan radius sama dengan akar kuadrat dari 3 MODUL GRAFIKA KOMPUTER 2017 Page 46

47 #include <stdlib.h> #include <glut.h> float w = 480, h = 480; float sudut = 0, sx = 0, sy = 0, sz = 0, t = -7; void wiredode() glcolor3d(0, 1, 0); glutwiredodecahedron(); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, t); glrotatef(sudut, sx, sy, sz); wiredode(); glutswapbuffers(); void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h,1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) if (key == 'x') sx = 1; sy = 0; sz = 0; sudut += 10; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); Note : Dengan interaksi keyoboard x, objek akan berotasi pada sumbu x saja. Dengan interaksi keyboard y, objek akan berotasi pada sumbu y saja. Dengan interaksi keyboard z, objek akan bergerak pada sumbu z saja. MODUL GRAFIKA KOMPUTER 2017 Page 47

48 6. Contoh Penerapan TetraHedron pada GLUT TetraHedron menggunakan fungsi glutwiredtetrahedronvoid (void); untuk merenders padat atau wireframe 4-sisi biasa padat. Berpusat di sekitar asal dan dengan radius sama dengan akar kuadrat dari 3. #include <stdlib.h> #include <glut.h> float w=480,h=480; float sudut = 0, sx = 0, sy = 0, sz = 0, t = -5; void WireTetrahedron() glcolor3d(1, 0, 1); glutwiretetrahedron(); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, t); glrotatef(sudut, sx, sy, sz); WireTetrahedron(); glutswapbuffers(); void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h,1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) if (key == 'x') sx = 1; sy = 0; sz = 0; sudut += 10; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); MODUL GRAFIKA KOMPUTER 2017 Page 48

49 Note : Dengan interaksi keyoboard x, objek akan berotasi pada sumbu x saja. Dengan interaksi keyboard y, objek akan berotasi pada sumbu y saja. Dengan interaksi keyboard z, objek akan berotasi pada sumbu z saja. 7. Contoh Penerapan OctaHedron pada GLUT OctaHedron menggunakan fungsi void glutwireoctahedron(void); #include <stdlib.h> #include <glut.h> float w = 480, h = 480; float sudut = 0, sx = 0, sy = 0, sz = 0, t = -5; void WireOctahedron() glcolor3d(1, 0, 1); glutwireoctahedron(); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, t); glrotatef(sudut, sx, sy, sz); WireOctahedron(); glutswapbuffers(); void resize(int w1, int h1) glviewport(0, 0, w1, h1); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45.0, (float)w1 / (float)h1,1.0, 300.0); glmatrixmode(gl_modelview); glloadidentity(); void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h,1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) if (key == 'x') sx = 1; sy = 0; sz = 0; sudut += 10; void update(int value) MODUL GRAFIKA KOMPUTER 2017 Page 49

50 glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); Note : init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); Dengan interaksi keyoboard x, objek akan berotasi pada sumbu x saja. Dengan interaksi keyboard y, objek akan berotasi pada sumbu y saja. Dengan interaksi keyboard z, objek akan berotasi pada sumbu z saja. 8. Contoh Penerapan Teapot pada GLUT Teapot menggunakan fungsi void glutwireteapot(gldouble size); Untuk merender dengan teapot dengan source code sebagai berikut : #include<stdlib.h> #include<glut.h> float w = 480, h = 480; float sudut = 0, sx = 0, sy = 0, sz = 0, t = -100, tepot = 10; void teapot() glcolor3d(1, 1, 1); glutwireteapot(tepot); void display() glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); gltranslatef(0, 0, t); glrotatef(sudut, sx, sy, sz); teapot(); glutswapbuffers(); void init() glclearcolor(0.0, 0.0, 0.0, 1.0); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(45., (GLdouble)w / (GLdouble)h, 1., 300.); glmatrixmode(gl_modelview); void mykeyboard(unsigned char key, int x, int y) if (key == 'x') sx = 1; sy = 0; MODUL GRAFIKA KOMPUTER 2017 Page 50

51 sz = 0; sudut += 10; void myspecialkeyboard(int key, int x, int y) switch (key) case GLUT_KEY_UP: tepot += 1; break; case GLUT_KEY_DOWN: tepot -= 1; break; void update(int value) glutpostredisplay(); gluttimerfunc(50, update, 0); void main(int argc, char **argv) glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH GLUT_RGBA); glutinitwindowposition(100, 100); glutinitwindowsize(w, h); glutcreatewindow("objek 3D"); glutdisplayfunc(display); init(); gluttimerfunc(50, update, 0); glutkeyboardfunc(mykeyboard); glutmainloop(); Note : Dengan interaksi keyoboard x, objek akan berotasi pada sumbu x saja. Dengan interaksi keyboard y, objek akan beritasi pada sumbu y saja. Dengan interaksi keyboard z, objek akan berotasi pada sumbu z saja. MODUL GRAFIKA KOMPUTER 2017 Page 51

52 Bab VIII Objek Solid dan Lighting A. TUJUAN a. Mampu memahami konsep Objek 3D solid pada opengl b. Mampu membuat objek 3d solid pada opengl c. Mampu melakukan implemntasi transformasi pada objek 3d dengan OpenGL d. Mampu memahami konsep lighting pada opengl e. Mampu melakukan implementasi lighting objek 3d dengan opngl B. MATERI a. Pembuatan Objek 3D Solid b. Transformasi Objek 3D Solid c. Lighting Objek 3d Solid 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 diberi pencahayaan default atau standar dengan cahaya lingkungan (ambient) yang sama pada setiap titik. Kondisi default atau standar dapat dicapai kapan saja dengan mematikan status Lighting menjadi disabled dengan gldisable(gl_light0). OpenGL akan melakukan komputas\i warna setiap pixel di display akhir, ditampilkan adegan itu dilakukan di frame buffer. Bagian dari komputasi ini tergantung pada pencahayaan yang digunakan dalam adegan dan hal tersebut berkenaan dengan bagaimana suatu benda dalam adegan yang memantulkan atau menyerap cahaya. Sebagai contoh saja misalnya sebuah lautan memiliki warna yang berbeda pada cerah maupun pada saat hari mendung. Adanya sinar matahari atau awan menentukan apakah laut termelihat sebagai pirus terang atau abu-abu keruh kehijauan. Pada kenyataannya, sebagian besar objek bahkan yang tidak terlihat tiga dimensi sampai mereka diterangi cahaya. Pada gambar 2 menunjukkan dua versi dari adegan yang persis sama yaitu sebuah bola, dimana satu dengan pencahayaan dan satu tanpa pencahayaan. Seperti ditunjukkan pada Gambar diatas, wilayah gelap tampak tidak berbeda dari bulatan dua dimensi. hal Ini menunjukkan betapa pentingnya interaksi antara obyek dan cahaya adalah dalam menciptakan adegan tiga dimensi. Agar obyek yang telah dibuat terlihat lebih nyata, diperlukan MODUL GRAFIKA KOMPUTER 2017 Page 52

53 tambahan efek pencahayaan pada obyek yang telah kita buat. Pencahayaan adalah proses pemberian cahaya pada suatu obyek, dikenal dengan istilah lighting atau iluminasi. Pada OpenGL terdapat sebuah perbedaan penting antara warna dan pencahayaan yang perlu pahami. Ketika menggunakan pencahayaan atau tekstur pemetaan dengan efek pencahayaan dihidupkan, warna dari vertex adalah efek kumulatif dari warna bahan dan cahaya yang bersinar di puncak. Ketika pencahayaan dimatikan, maka warna dari vertex adalah efek pengaturan warna dan warna yang berbeda dengan bahan warna. Dengan menggunakan OpenGL, dapat memanipulasi pencahayaan dan obyek dalam sebuah adegan untuk menciptakan berbagai macam efek. Dalam pokok bahasan pada bab pencahayaan akan dimulai dengan sebuah pencahayaan yang penting pada permukaan tersembunyi penghapusan. Kemudian menjelaskan bagaimana untuk mengontrol pencahayaan dalam suatu adegan, membahas model konseptual OpenGL pencahayaan, dan menggambarkan secara rinci cara mengatur pencahayaan dengan banyak parameter untuk mendapatkan efek tertentu. Pada akhir bab, perhitungan matematis yang menentukan bagaimana warna mempengaruhi pencahayaan disajikan A. Cahaya Ambient, Diffuse, dan Specular Pencahayaan ambient adalah cahaya yang sudah berserakan begitu banyak disebabkan oleh lingkungan dan arahnya tidak mungkin ditentukan atau tampaknya datang dari segala penjuru. Backlighting pada sebuah ruangan memiliki komponen ambient besar, karena sebagian besar cahaya yang mencapai mata yang memantul dari banyak permukaan. Sebuah lampu sorot kecil di luar rumah memiliki komponen ambient, sebagian besar cahaya dalam arah yang sama, dan karena diluar, sangat sedikit cahaya mencapai mata setelah memantul dari benda-benda lain. Ketika cahaya ambient menyerang permukaan, maka akan tersebar merata di segala penjuru. Komponen cahaya diffuse adalah komponen yang berasal dari satu arah, jadi akan terang kalau hal tersebut terjadi tepat diatas sebuah permukaan dibandingkan jika hampir tidak terjadi di atas permukaan. Setelah mengenai permukaan, akan tersebar merata di segala penjuru, sehingga tampak sama-sama terang, tak peduli di mana mata berada. Setiap cahaya yang datang dari posisi atau arah tertentu mungkin memiliki komponen diffuse. MODUL GRAFIKA KOMPUTER 2017 Page 53

54 Cahaya specular datang dari arah tertentu, dan cenderung terpental pada permukaan dalam arah yang diinginkan. sinar laser berkualitas tinggi memantul pada cermin dan menghasilkan hampir 100 persen refleksi specular. Logam atau plastik mengkilap memiliki komponen specular tinggi, dan kapur atau karpet telah hampir tidak ada. Specularity dapat juga dianggap sebagai shininess. Meskipun sumber cahaya memberikan satu distribusi frekuensi, komponen ambient, diffuse, dan specular mungkin berbeda. Sebagai contoh, jika memiliki cahaya putih di sebuah ruangan dengan dinding merah, cahaya yang tersebar cenderung menjadi warna merah, meskipun cahaya secara langsung objek putih yang mencolok. OpenGL memungkinkan untuk mengatur nilai merah, hijau, dan biru untuk setiap komponen cahaya secara bebas. Selain pencahayaan Ambient, Diffuse, dan Specular, terdapat juga pencahayaan Emmisive, yaitu sebuah objek memancarkan cahayanya sendiri. parameter variabel untuk memilih material warna jenis apa yang diaktifkan pilihannya antara lain seprti tabel dibawah MODUL GRAFIKA KOMPUTER 2017 Page 54

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

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

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

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

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

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

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

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

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

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

/*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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BAB 3 PERANCANGAN DAN PEMBUATAN. Engine akan dirancang agar memenuhi syarat maintainability, reusability dan

BAB 3 PERANCANGAN DAN PEMBUATAN. Engine akan dirancang agar memenuhi syarat maintainability, reusability dan 13 BAB 3 PERANCANGAN DAN PEMBUATAN 3.1 Perancangan Engine Engine akan dirancang agar memenuhi syarat maintainability, reusability dan usability. Maintainability berarti kode program engine harus mudah

Lebih terperinci

BAB III OUTPUT PRIMITIF

BAB III OUTPUT PRIMITIF BAB III OUTPUT PRIMITIF OBJEKTIF : Pada Bab ini mahasiswa mempelajari tentang : 1. Primitif Grafis. Algoritma Pembentukan Garis 3. Algoritma Pembentukan Lingkaran 4. Algoritma Pembentukan Ellips TUJUAN

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

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM :

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM : TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM : 16115784 Untuk membuat program garis vertikal, horizontal, dan diagonal kita membutuhkan

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

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

Pada komputer grafik ada 3 macam sistem koordinat yang harus di perhatikan :

Pada komputer grafik ada 3 macam sistem koordinat yang harus di perhatikan : Pada komputer grafik ada 3 macam sistem koordinat yang harus di perhatikan : Koordinat nyata Koordinat sistem (koordinat cartesian) Koordinat tampilan / layar Grafika Komputer Page 2 Adalah koordinat yang

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

3. Jika y1 = y2 (garis horisontal), maka (a) x = x + 1 dan y tetap (b) gambar titik (x,y) di layar (c) Selesai

3. Jika y1 = y2 (garis horisontal), maka (a) x = x + 1 dan y tetap (b) gambar titik (x,y) di layar (c) Selesai .3.1 Algoritma Brute Force Algoritma brute force untuk membentuk garis didasarkan pada persamaan (-6), yaitu : 1. Tentukan dua titik ujung (x1,y1) dan (x,y). Jika x1 = x (garis vertikal), maka (a) y =

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

PROSES PEMBUATAN MODELING ARSITEKTUR 1. PENGATURAN BACKGROUND IMAGE

PROSES PEMBUATAN MODELING ARSITEKTUR 1. PENGATURAN BACKGROUND IMAGE PROSES PEMBUATAN MODELING ARSITEKTUR 1. PENGATURAN BACKGROUND IMAGE Untuk memunculkan tab Transform yang ada di sebelah kanan klik N pada keyboard.lalu scroll ke bawah dan cari option background image

Lebih terperinci

Computer Graphic. Output Primitif dan Algoritma Garis. Erwin Yudi Hidayat. Computer Graphics C Version 2 Ed by Donald Hearn

Computer Graphic. Output Primitif dan Algoritma Garis. Erwin Yudi Hidayat. Computer Graphics C Version 2 Ed by Donald Hearn Computer Graphic Output Primitif dan Algoritma Garis Erwin Yudi Hidayat erwin@dsn.dinus.ac.id Computer Graphics C Version 2 Ed by Donald Hearn Addison Wesley is an imprint of erwin@dsn.dinus.ac.id CG -

Lebih terperinci

Grafik Komputer : Konsep 3 Dimensi

Grafik Komputer : Konsep 3 Dimensi Grafik Komputer : Konsep 3 Dimensi Universitas Gunadarma 2006 Grafik Komputer : Konsep 3D 1/10 Alur Proses Grafik Komputer 3D (1/2) Penetapan ruang model. Transformasi model adalah menempatkan model pada

Lebih terperinci

KATA PENGANTAR Page i

KATA PENGANTAR Page i KATA PENGANTAR Segala puji syukur kami ucapkan atas kehadirat Tuhan Yang Maha Esa dimana telah melimpahkan taufik serta hidayahnya sehingga kami dapat menyelesaikan buku Grafika Komputer Tingkat Pendidikan

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

10/10/2017. Teknologi Display SISTEM KOORDINAT DAN BENTUK DASAR GEOMETRI (OUTPUT PRIMITIF) CRT CRT. Raster Scan Display

10/10/2017. Teknologi Display SISTEM KOORDINAT DAN BENTUK DASAR GEOMETRI (OUTPUT PRIMITIF) CRT CRT. Raster Scan Display 1 2 SISTEM KOORDINAT DAN BENTUK DASAR GEOMETRI (OUTPUT PRIMITIF) Teknologi Display Cathode Ray Tubes (CRT) Liquid Crystal Display (LCD) 3 4 CRT Elektron ditembakkan dari satu atau lebih electron gun Kemudian

Lebih terperinci

DAFTAR ISI TOOLBAR SOLID TOOLBAR SHADE TOOLBAR 3D ORBIT TOOLBAR SURFACE TOOLBAR SOLIDS EDITING TOOLBAR MODIFY II TOOLBAR VIEW TOOLBAR TOOLBAR UCS

DAFTAR ISI TOOLBAR SOLID TOOLBAR SHADE TOOLBAR 3D ORBIT TOOLBAR SURFACE TOOLBAR SOLIDS EDITING TOOLBAR MODIFY II TOOLBAR VIEW TOOLBAR TOOLBAR UCS DAFTAR ISI TOOLBAR SOLID TOOLBAR SHADE TOOLBAR 3D ORBIT TOOLBAR SURFACE TOOLBAR SOLIDS EDITING TOOLBAR MODIFY II TOOLBAR VIEW TOOLBAR TOOLBAR UCS TOOLBAR RANDER TOOLBAR SOLIDS Box. Fungsi : untuk membuat

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

Computer Graphic. Output Primitif dan Algoritma Garis. Erwin Yudi Hidayat.

Computer Graphic. Output Primitif dan Algoritma Garis. Erwin Yudi Hidayat. Computer Graphic Output Primitif dan Algoritma Garis Erwin Yudi Hidayat erwin@research.dinus.ac.id Computer Graphics C Version 2 Ed by Donald Hearn Addison Wesley is an imprint of erwin@research.dinus.ac.id

Lebih terperinci

3D STUDIO MAX. Setting awal 3D Studio Max 9

3D STUDIO MAX. Setting awal 3D Studio Max 9 3D STUDIO MAX Setting awal 3D Studio Max 9 1. Untuk kerja yang leluasa, aturlah resolusi desktop windows anda setinggi mungkin di Control Panel Display. Disarankan menggunakan monitor 17 atau lebih besar.

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

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

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

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

BAB IV ATRIBUT OUTPUT PRIMITIF

BAB IV ATRIBUT OUTPUT PRIMITIF BAB IV ATRIBUT OUTPUT PRIMITIF OBJEKTIF : Pada Bab ini mahasiswa mempelajari tentang : 1. Fungsi Warna 2. Fungsi dan Atribut Titik 3. Fungsi dan Atribut Garis 4. Fungsi dan Atribut Kurva TUJUAN DAN SASARAN:

Lebih terperinci

BAB III ALGORITMA PENAMBAHAN FEATURE DAN METODA PENCAHAYAAN

BAB III ALGORITMA PENAMBAHAN FEATURE DAN METODA PENCAHAYAAN BAB III ALGORITMA PENAMBAHAN FEATURE DAN METODA PENCAHAYAAN Pada pemodelan produk berbasis feature, produk didefinisikan sebagai benda kerja yang memiliki satu atau lebih feature yang terasosiasi pada

Lebih terperinci

Pemodelan Objek Monitor 3D

Pemodelan Objek Monitor 3D DISCLAIMER Seluruh dokumen E-Trik di dalam CD ini dapat digunakan dan disebarkan secara bebas untuk tujuan belajar bukan komersial (non-profit), dengan syarat tidak menghapus atau merubah atribut penulis

Lebih terperinci

TUTORIAL DESAIN MULTIMEDIA

TUTORIAL DESAIN MULTIMEDIA TUTORIAL DESAIN MULTIMEDIA www.desainmultimedia.com Membuat Model Keyboard Membuat model objek Keyboard dengan Operasi Boolean Langkah 1 (Menampilkan Gambar Keyboard sebagai Guideline) Tampilkan dahulu

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

PAGI. SOAL PILIHAN GANDA : No

PAGI. SOAL PILIHAN GANDA : No PAGI SOAL PILIHAN GANDA : No. 1 35. 1. Salah satu contoh aplikasi Grafika Komputer adalah Virtual Reality. Yang dimaksud Virtual Reality adalah: a. lingkungan virtual seperti yang ada di dunia internet

Lebih terperinci

Grafik Komputer : KONSEP DASAR

Grafik Komputer : KONSEP DASAR Grafik Komputer : KONSEP DASAR Universitas Gunadarma 2006 Grafik Komputer : Konsep Dasar 1/14 Kegiatan yang Terkait dengan Grafik Komputer Pemodelan geometris: menciptakan model matematika dari objek-objek

Lebih terperinci

Animation. Semua gerakan yang Anda pikirkan, dapat dilakukan dalam Maya.

Animation. Semua gerakan yang Anda pikirkan, dapat dilakukan dalam Maya. Pengenalan Autodesk Maya 2009! BAB 1 Pada maya versi ini Anda akan diberi kemudahan dalam pembuatan games, film, TV, dan desain grafis. Maya 2009 memberikan sejumlah fitur baru dan perangkat tambahan yang

Lebih terperinci

Modul. Grafika Komputer. Disusun Oleh: Maya Amelia

Modul. Grafika Komputer. Disusun Oleh: Maya Amelia Modul Grafika Komputer Disusun Oleh: Maya Amelia Fakultas Ilmu Komputer Universitas Indo Global Mandiri 2012 DAFTAR ISI 1. PENGENALAN GRAFIKA KOMPUTER 1.1 Pengertian Grafika Komputer 1.2 Elemen-Elemen

Lebih terperinci

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch. Modul 2 Percabangan dan Loop Tujuan : 1. Praktikan mengetahui macam macam percabangan pada Java 2. Praktikan mengetahui macam macam loop pada Java 3. Praktikan mampu memahami logika percabangan dan loop

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN Kondisi pengolahan data yang telah dijabarkan sebelumnya pada bab 1 (satu) memiliki keterkaitan terhadap permasalahan yang teridentifikasi. Yaitu permasalahan terkait desain

Lebih terperinci

IMPLEMENTASI DAN PENGUJIAN

IMPLEMENTASI DAN PENGUJIAN BAB 4 IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dilakukan implementasi dan pengujian terhadap aplikasi yang dibangun. Tahapan ini dilakukan setelah analisis dan perancangan selesai dilakukan dan selanjutnya

Lebih terperinci

Bekasi, Januari 2007

Bekasi, Januari 2007 Kata Pengantar 3DS Max adalah program untuk modeling, rendering, dan animasi, yang memungkinkan Anda untuk mempresentasikan desain Anda, seperti desain interior, arsitektur, dan iklan, secara realistik

Lebih terperinci

Pendahuluan. Komang Anom Budi Utama, SKom

Pendahuluan. Komang Anom Budi Utama, SKom Pendahuluan Komang Anom Budi Utama, SKom komang_anom@staff.gunadarma.ac.id Pengenalan Processing Processing adalah salah satu dari bahasa pemrograman dan lingkungan pengembangan open sorce. Processing

Lebih terperinci

Gambar 1. Tampilan Layar Sebuah Program Animasi

Gambar 1. Tampilan Layar Sebuah Program Animasi Menggambar Kotak (Ed. 2) 1/6 Lecture Notes Algoritma dan Pemrograman Menggambar Kotak Thompson Susabda Ngoen Di dalam penulisan program adakalanya kita perlu menggambar kotak (bingkai segi empat) di layar

Lebih terperinci

Algoritma & Pemrograman #8. by antonius rachmat c, s.kom, m.cs

Algoritma & Pemrograman #8. by antonius rachmat c, s.kom, m.cs Algoritma & Pemrograman #8 by antonius rachmat c, s.kom, m.cs Review Fungsi Minggu lalu Deklarasi dan Definisi fungsi Standard Library Function Void dan Non-void dan Parameternya REVIEW 1 4 2 3 5 Declaring,

Lebih terperinci

ANALISA TEKNIK CUBE MAPPING BERBASIS OPENGL

ANALISA TEKNIK CUBE MAPPING BERBASIS OPENGL ANALISA TEKNIK CUBE MAPPING BERBASIS OPENGL Yohan Angjaya A11.2006.02722 Program Studi Ilmu Komputer Universitas Dian Nuswantoro Semarang ABSTRAK Tulisan ini berisi tentang analisa Cube Mapping berbasis

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

1 Blender animation club. Book modeling 1

1 Blender animation club. Book modeling 1 1 Blender animation club. Book modeling 1 Book modeling Modeling boleh dikatakan sebagai konsep awal dari suatu animasi. Sebelum kita menciptakan animasi, kita menciptakan suatu model atau karakter terlebih

Lebih terperinci