DIAN PRATIWI. ST, MTI

dokumen-dokumen yang mirip
Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL

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

BAB II LANDASAN TEORI

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan

GRAFIK KOMPUTER & PENGOLAHAN CITRA

Bab 1 Pengenalan GLUT

Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan

BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL

BAB II PRIMITIF GRAFIK

OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS Created by: Gideon

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)


Tutorial 04 Modeling & Transformasi Proyeksi

BAHAN AJAR. GRAFIKA KOMPUTER MMS 2604 / 3 sks

PETEMUAN KE-3 PRIMITIVE DRAWING 2

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

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

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

IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

Pengantar Grafika Komputer

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Tipe dan Jenis Layar Komputer Grafik. By Ocvita Ardhiani.

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

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

Algoritma Pemrograman. Fery Updi,M.Kom

BAB 2 TEORI PENUNJANG

Algoritma Pemrograman. GUI Programming 2

Tipe Data dan Operator

Modul 2. [access specifier] [tipe data] [nama variabel];

Grafika 2 dimensi Transformasi 2 dimensi Penggeseran pada grafika Penskalaan Pemutaran grafika Shearing Sistem koordinat homogen Transformasi

PENGANTAR GRAFIKA KOMPUTER

Pemrograman Java III

Primitive Drawing. Achmad Basuki Nana Ramadijanti

Algoritma dan Struktur data

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

Tipe Data dan Variabel

Bahasa C-M6 By Jamilah, Skom 1

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

LAPORAN PRATIKUM KOMPUTER APLIKASI

Pemrograman Java III

Gambar 1. Viewport pada layar

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date]

Modul 3 Objek 2 Dimensi

Gambar 1. Viewport pada layar

BAB 4 PENGENALAN BAHASA C

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

Achmad Solichin.

MODUL 2 TIPE DATA, KONSTANTA DAN VARIABEL

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

Pengenalan C++ Oleh : Dewi Sartika

Minggu ke-14 Typedef, Struct & Command Line Argument

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

elemen Dasar Bahasa Pemrograman C

Identifier dan Tipe Data

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

BAB 2 LANDASAN TEORI

BAB IV IMPLEMENTASI DAN PENGUJIAN

Tutorial 06. Texture Mapping & Blending

Serba Serbi Grafika Game

MATA KULIAH : LOGIKA DAN ALGORITMA KONSEP DASAR ALGORITMA

APLIKASI REKONSTRUKSI OBJEK 3D DARI KUMPULAN GAMBAR 2D DENGAN MENGGUNAKAN ALGORITMA GENERALIZED VOXEL COLORING

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

BAB II. KAJIAN PUSTAKA

BAB I PENDAHULUAN. 1.1.Latar Belakang

Tipe Data. Pendahuluan. Objektif. Bahan Bacaan

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Perulangan, Percabangan, dan Studi Kasus

PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing)

Badiyanto, S.Kom., M.Kom. PBO java

KATA PENGANTAR. Penulis. Raizal Dzil Wafa M.

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

Grafik Komputer : KONSEP DASAR

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

Bab 2. Dasar-Dasar Pemrograman C

C / C++ / JAVA / C# / Python?

Bahasa Pemrograman :: Dasar Pemrograman Java

BAB III METODE PENELITIAN

PERBEDAAN GRAFIKA COMPUTER DAN IMAGE PROCESSING. by Ocvita Ardhiani

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Pengolahan Image dengan GIMP

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

Modul 6 Interaksi dengan Keyboard dan Mouse

MODUL 9 Material Texture

MODUL 7 OBJEK 3D A. KOMPETENSI DASAR

PRAKTIKUM 2. Variabel, Tipe Data dan Operator. Tipe data dan variabel. - Microsoft Visual Studio 2010

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

TUGAS Pemrograman Java

Pertemuan 03. Pemrograman Dasar[PTI-15001] 2012

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

Modul 2 Primitive Objects

PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL

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

BAHASA PEMROGRAMAN C

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

Algoritme dan Pemrograman

Transkripsi:

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 by Dian Pratiwi, ST, MTI Penerbit www.nulisbuku.com & Nida Dwi Karya Publishing Desain Sampul: Soikhu Rojib, SPd Diterbitkan melalui: Nida Dwi Karya Publishing 2

BAB I Konsep Dasar Ilmu Grafika Komputer dan OpenGL 1. Peranan Ilmu Grafika Komputer Grafika komputer (Computer graphics) merupakan salah satu cabang disiplin ilmu informatika yang mempelajari pembuatan dan manipulasi gambar dengan computer atau secara digital. Grafika komputer sering dikenal juga dengan istilah visualisasi data. Grafika komputer adalah ilmu yang sangat cepat berkembang pada saat ini. Perkembangan ini didukung oleh munculnya processor-processor komputer yang cepat dan kartu grafis yang semakin canggih dan hebat. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D, yang kemudian dikembangkan menjadi grafika komputer 3D, pengolahan citra (image processing), dan pengenalan pola (pattern recognation). Dalam pengolahan citra, gambar input yang diinput untuk diolah lebih lanjut telah tersedia. Sedangkan di dalam grafika komputer, dilakukan proses untuk menciptakan gambar input dari awal. Bagian dari ilmu grafika komputer meliputi : a) Geometri, yaitu mempelajari cara menggambarkan permukaan bidang b) Animasi, yaitu mempelajari cara menggambarkan dan memanipulasi gerakan, baik secara otomatis maupun manual. 3

c) Rendering, yaitu mempelajari algoritma untuk menampilkan efek cahaya d) Citra (imaging), yaitu mempelajari cara pengambilan dan penyuntingan gambar. 2. Pengenalan OpenGL pada Ilmu Grafika Komputer OpenGL adalah sebuah teknik pemrograman interface dengan ANSI C dan FORTRAN yang dikembangkan oleh Mark Kilgard untuk pengelolaan windows dan animasi. GLUT (GL Utility Toolkit) pada OpenGL mendukung fungsi berikut ini : Menyediakan sub menu API (Application Programming Interface) Didesain khusus untuk program rendering Mendukung format bitmap dan fungsi keyboard Memiliki fungsi mengatur sistem windows Fungsi GLUT dapat diklasifikasikan ke dalam sub-api berdasarkan kegunaannya, diantaranya : a. Inisialisasi Merupakan inisialisasi sistem window, dan berfungsi untuk mengatur pembuatan window. void glutinit(int *argcp, char **argv); void glutinitwindowsize(int width, int height); void glutinitwindowposition(int x, int y); 4

b. Proses atau event awal Event yang menandakan pemrosesan GLUT terjadi. Umumnya tidak mengembalikan nilai, dan selalu memanggil GLUT callback secara berlanjut. void glutmainloop(void); c. Manajemen window Fungsi ini membuat dan mengontrol windows int glutcreatewindow(char *name); int glutcreatesubwindow(int win, int x, int y, int width, int height); d. Manajemen overlay Fungsi ini untuk menstabilkan dan mengatur overlay dalam windows. Overlay adalah suatu keadaan dimana bidang normal yang digunakan ditampilkan dengan menggunakan lapisan buffer atau frame, sehingga menghasilkan efek tertentu. void glutestablishoverlay(void); void glutuselayer(glenum layer); e. Manajemen menu Fungsi ini membuat dan mengatur menu pop-up (menu yang dapat ditampilkan dengan penggunaan mouse pada window). int glutcreatemenu(void (*func)(int value)); void glutdestroymenu(int menu); 5

f. Registrasi pemanggilan ulang (callback) Fungsi ini untuk memperbolehkan memanggil GLUT event proses looping pada saat terjadi callback. void glutdisplayfunc(void (*func)(void)); void glutreshapefunc(void (*func)(int width, int height)); g. Manajemen warna dan indeks warna (color index) OpenGL mendukung warna RGBA dan rendering indeks warna. Fungsi GLUT color index ini untuk menulis dan membaca masukanmasukan dalam pemetaan indeks warna di window. void glutsetcolor(int cell, GLfloat red, GLfloat green, GLfloat blue); void glutcopycolormap(int win); h. Menerima status GLUT menyediakan fungsi untuk programmer agar dapat mengetahui atau menerima status program atau proses, meski tidak semua status dapat diterima. int glutget(glenum state); int glutlayerget(glenum info); i. Font rendering GLUT menyediakan dua tipe font rendering, yaitu : - Stroke font - Bitmap font 6

Bitmap font kurang fleksibel saat dirender menjadi sebuah bitmap, namun kecepatannya lebih tinggi jika dibandingkan dengan stroke font. Contoh kodenya void glutbitmapcharacter(void *font, int character); int glutbitmapwidth(glutbitmapfont font, int character); j. Bentuk objek rendering GLUT merupakan salah satu fungsi yang memudahkan untuk pengenalan objek geometrik 3D. Fungsi GLUT ini dapat membentuk efek pencahayaan namun dengan tidak memperluas koordinat tekstur. void glutsolidsphere(gldouble radius, GLint slices, GLint stacks); void lutwiresphere(gldouble radius, GLint slices, GLint stacks); 3. Kode Perintah Pada OpenGL Pada OpenGL, setiap pengkodeannya (coding) adalah dengan menggunakan prefix atau awalan gl yang kemudian diikuti kata berawalan huruf kapital sebagai nama perintahnya. Contoh, glmatrixmode( ). Untuk mendefinisikan nilai konstan atau kontanta, OpenGL menuliskannya dengan mengawali GL_, dan semuanya berhuruf kapital yang kemudian diikuti underscore untuk menghubungkan kata atau nama variabelnya. Contoh, GL_COLOR_BUFFER_BIT. 7

Di dalam OpenGL, pengkodeannya juga ada beberapa yang berbeda. Perintahnya (command) juga ada yang terdapat perluasan detail mengenai perintahnya yang digunakan, umumnya untuk menyatakan jumlah argumen dan tipe datanya. Misalnya, pada perintah glcolor3f( ). Angka 3 ini dimaksudkan sebagai banyaknya argumen yang ada dalam perintah gl-nya dan merupakan jumlah warnanya yaitu R, G, dan B. Sedangkan f di sini dimaksudkan sebagai tipe datanya yaitu tipe float. Pada beberapa perintah OpenGL, tipe data yang dapat diterima untuk melengkapi argumennya yaitu sebagai berikut : Tabel 1.1 Perintah OpenGL dan Tipe Data Argumen Akhiran Tipe data Tipe data dalam bahasa C 8 Definisi tipe data OpenGL B 8-bit signed char Glbyte integer S 16-bit integer Short GLshort I 32-bit integer int atau long Glint, GLsizei F 32-bit float Float Glfloat, GLclampf D 64-bit float Double Gldouble, GLclampd Ub 8-bit unsigned integer unsigned char Glubyte, GLboolean Us 16-bit integer unsigned short GLushort Ui 32-bit integer unsigned int atau unsigned long Gluint, Glenum, GLbitfield

Misalnya dua perintah di bawah ini : glvertex2i(1, 3); glvertex2f(1.0, 3.0); adalah sama. Perbedaaannya hanyalah pada tingkat presisinya, yaitu pada perintah pertama menggunakan 32-bit integer, dan pada perintah kedua menggunakan 32-bit float. Pada beberapa perintah OpenGL juga terdapat akhiran v pada penamaan fungsi gl-nya. Akhiran v diidentifikasikan sebagai perintah atau pointer yang menunjuk ke sebuah vektor.atau array dari suatu nilai yang ada dalam argumen. Misalnya seperti contoh berikut ini : glcolor3f(1.0, 0.0, 0.0); ekivalen dengan kedua perintah berikut : GLfloat color_array[] = {1.0, 0.0, 0.0}; glcolor3fv(color_array); 4. Bentuk-Bentuk Primitif Geometri OpenGL Untuk memulai membuat berbagai bentuk geometri, seperti polygon, segitiga, garis, segiempat, dan lain-lain, kode yang harus diletakkan setelah inisialisasi adalah glbegin( ). Kemudian buatlah perintah untuk membuat suatu bentuk geometri, dan diakhiri dengan glend( ). Contohnya pada pembuatan polygon berikut ini : glbegin(gl_polygon); glvertex2f(0.0, 0.0); glvertex2f(0.0, 3.0); glvertex2f(4.0, 3.0); glvertex2f(6.0, 1.5); glvertex2f(4.0, 0.0); glend(); 9