1
LAPORAN PRAKTIKUM
KOMPUTER GRAFIK
Nama
praktikan
Nomor
mahasiswa
Tanggal
kumpul
Tanda tangan
praktikan
Sri Ramadhani 1214370338 12 juni 2014
Nama Penilai Tanggal
koreksi
Nilai Tanda tangan
Dosen
Indri Sulistianingsih, S.kom 12 juni 2014
Universitas Pembangunan Panca Budi
Fakultas Teknik
Jurusan Sistem Komputer
Medan
2014
KELAS
TI4-D SORE
2
KATA PENGANTAR
Segala puji syukur saya ucapkan kehadirat Allah SWT, atas berkat rahmatnya penulis
dapat menyelesaikan tugas Laporan Praktikum Kompuer Grafik guna memenuhi syarat
dalam menyelesaikan tugas UAS (ujian akhir semester), Adapun pembuatan laporan ini
ditujukan untuk penyelesaian tugas untuk mata kuliah Grafika Kmputer Program studi
Teknik Perangkat Lunak FTEKNIK UNHALU, lain juga sebagai pengantar kepada kita
untuk lebih mengerti tentang OpenGL dan Penggambaran Obyek dengan OpenGL selain itu
untuk menambah khasanah keilmuan tentang bahasa pemrograman yang lebih berminat pada
bidang pemrograman.
Penulis menyadari baahwa laporan ini masih jauh dari kesempurnaan dan masih
banyak kekurangan, baik dari segipenulisan maupun dari tata bahasa,oleh karena itu penulis
mengharapkan kritik dan saran kepada ibu . atas bimbingannya saya ucapkan terima kasih.
Medan, 12 juni 2014
Penulis
3
DAFTAR ISI
Kata Pengantar . 2
Daftar isi ... 3
BAB I PENDAHULUAN
I.I latar Belakang . 4
I.II tujuan . 4
BAB II LANDASAN TEORI
I.I Transformasi 2 dimensi .. 6
I.II Transformasi 3 dimensi 7
I.V Defenisi 3 dimensi ....10
I.V pengertian dari OpenGL .. 13
BAB III HASIL PERCOBAAN
1. Primitif drawing . 17
2. Contoh 2 dimensi dan 3 dimensi 25
BAB IV
Analisa percobaan .. 29
Penutup .. 30
Saran .. 30
Daftar pustaka ... 31
4
BAB I
PENDAHULUAN
1.Latar belakang
Grafik komputer adalah bagian dari ilmu komputer yang berkaitan dengan
pembuatan dan manipulasi gambar (visual ) secara digital. Dengan adanya kemajuan
teknologi, terutama teknologi komputer maka banyak bidang yang memanfaatkannya. Salah
satunya adalah bidang entertainmen yang meliputi film, iklan, animasi maupun game.
Kesemuanya itu membutuhkan adanya obyek yang dimanipulasi. Sebelum komputer grafik
berkembang maka obyek yang digunakan adalah obyek yang sesungguhnya sehingga sering
terjadi kesulitan mencari obyek yang sesuai dengan keinginan. Setelah komputer grafik
berkembang dan semakin maju maka obyek yang digunakan dibentuk dengan menggunakan
rekayasa komputer. Kelebihan obyek yang direkayasa dengan menggunakan komputer adalah
bentuk yang bisa disesuaikan dengan kebutuhan dan biaya pengadaan obyek yang relatif
lebih murah.
Dalam pemanfaatan komputer grafik untuk manipulasi obyek, ada dua jenis obyek
yang bisa dimodelkan, yaitu obyek sederhana dan obyek kompleks. Obyek sederhana
dimodelkan dengan menggunakan persamaan geometri, sedangkan obyek kompleks
dimodelkan dengan merangkai banyak segitiga menjadi satu kesatuan obyek. Obyek
sederhana mudah dimodelkan tetapi bentuk yang dihasilkan kurang bervariasi. Sedangkan
obyek kompleks lebih sulit dimodelkan tetapi bentuknya sangat bervariasi. Untuk
memodelkan obyek dengan cukup mudah dan bentuk bisa bervariasi, biasanya digunakan
gabungan dari obyek sederhana dan obyek kompleks. Untuk menghasilkan bentuk
permukaan yang lebih bervariasi, dapat digunakan kurva bezier. Bahasa pemograman
Delphipun juga dapat digunakan.
2.Tujuan praktikum
Mahasiswa mampu menggambar objek 2 dimensi dan 3 dimensi menggunakan bahasa
pemrograman visual C++ dan OpenGL
Mahasiswa mampu mengimplementasikan fungsi transformasi 2 dimensi dan 3
dimensi.
5
BAB II
LANDASAN TEORI
I.I TRANSFORMASI DUA DIMENSI
a. Translasi
Translasi dilakukan dengan penambahan translasi pada suatu titik koordiant dengan
translation vector atau shif vector yaitu (tx, ty).
Translasi adalah transformasi dengan bentuk yang tetap memindahkan objek apa adanya.
Titik akan di translasi akan di pindahkan ke lokasi menurut garis lurus.. obyek grafik 2D,
dalam hal ini di gunakan bentuk struktur (type data oracle) dan array. Menggambarka
obyek 2D yang sudah di tentukan.
b. Rotasi
Rotasi 2 dimensi memindahkan sebuah obyek menurut garis melingkar. Untuk melakukan
rotasi di perlukan sudut rotasi a dan pivot point. Nilai positif dari sudut rotasi
menentukan arah rutasi berlawanan dengan arah jarum jam.sedangka sudut rotasi negatif
memutar objet searah jarum jam.
I.II DEFENISI OBYEK 2 DIMENSI
Grafik komputer 2 dimensi biasa disebut dengan 2D atau bidang adalah bentuk dari benda
yang memiliki panjang dan lebar. Grafik 2 Dimensi merupakan teknik penggambaran
yang berpatokan pada titik koordinat sumbu x (datar) dan sumbu y (tegak). Agar dapat
tampil dengan sempurna, gambar yang akan ditampilkan dengan teknik ini harus
memiliki nilai koordinat x dan y minimum 0 dan maksimum sebesar resolusi yang
digunakan.
2 Dimensi Dalam Komputer Grafik
a. Grafik komputer 2 dimensi
Yaitu sebuah generasi gambar digital berbasis komputer. Yang kebanyakan
mengambil objek 2 dimensi. Model Grafik 2D merupakan kombinasi dari
model geometri (juga disebut sebagai grafik vektor), gambar digital (raster
6
graphics), fungsi matematika, dan sebagainya. Komponen-komponen ini dapat
dimodifikasi dan dimanipulasi oleh transformasi geometri dua dimensi, Cara
yang paling mudah untuk membuat sebuah gambar 2D kompleks yaitu dimulai
dengan sebuah "canvas" kosong yang diisi dengan warna latar tertentu, yang
kemudian kita "draw", "paint", atau "paste" suatu warna kedalamnya, dengan
urutan-urutan tertentu. Intinya, kanvas tersebut merupakan "frame buffer" atau
bayangan dari layar komputer.
Model-model yang digunakan pada disain grafis 2D biasanya tidak
mendukung bentuk-bentuk tiga-dimensi, atau fenomena yang bersifat tiga
dimensi, seperti pencahayaan, bayangan, pantulan, refraksi, dan sebagainya.
Namun demikian, mereka dapat membuat model berlapis-lapis (layer); nyata,
translusen, dan transparan, yang dapat ditumpuk dalam urutan tertentu.
Banyak antarmuka grafis atau yang kita kenal dengan GUI (Grapical User
Interface) yang berbasiskan model grafis 2D. Software-software yang
mendukung GUI dapat menciptakan "keadaan visual" dalam berinteraksi
dengan komputer, sehingga para pengguna tidak selalu harus melihat tulisan.
Grafik 2D juga penting bagi kendali peralatan-peralatan semacam printer,
plotter, shredder, dan sebagainya. Mereka juga digunakan pada beberapa video
dan games sederhana seperti solitaire, chess, atau mahjong.
I.III TRANSFORMASI 3 DIMENSI
Grafika komputer 3D menggunakan matriks 4x4 untuk mengubah dan mentayangkan model
3D dalam bentuk citra 2D. Grafika komputer 3D memiliki 5 jenis dasar matriks transformasi:
Matriks model (Model matrix): Menyimpan orientasi dan posisi model relatif
terhadap suatu posisi.
Matriks pandangan (View matrix): Menyimpan transformasi pandangan relatif
terhadap posisi asal (yang bernilai (0,0,0)).
Matriks proyeksi (Projection matrix): Menyimpan transformasi untuk mengubah
ruang 3D menjadi citra 2D, dan sebaliknya.
Matriks dunia (World matrix): Menyimpan orientasi dan posisi suatu posisi relatif
terhadap posisi asal.
7
Matriks lokal (Local matrix): Menyimpan orientasi dan posisi suatu posisi relatif
terhadap suatu posisi lain.
Saat penayangan citra, kamera pandangan digunakan sebagai kerangka acuan ruang maya.
Apabila kamera harus berpindah (translate) sejarak +10 unit di Poros-Z, maka seluruh model
di ruang maya harus berpindah -10 di Poros-Z. Jadi, kamera sebenarnya tidak berpindah,
melainkan ruang maya yang berpindah. Setiap benda (termasuk kamera) grafika komputer
mempunyai matriks model yang menyimpan posisi dan orientasi model. Sementara, kamera
juga memiliki matriks pandangan dan proyeksi. Matriks dunia dan matriks lokal tidak wajib
diperlukan, dan bisa dianggap bernilai identitas.
Berikut adalah contoh transformasi matriks dengan kode palsu OpenGL:
void Draw(void)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0,0,1024,768);
gluPerspective(45.0f,(GLFloat)(1024)/(GLFloat)(768),0.125f,1024.0f); /* Kode
viewport di sini, transformasi matriks proyeksi di sini*/
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,-1.0f, 0.0f, 1.0f, 0.0f); /* Kode kamera,
transformasi matriks pandangan */
glTranslatef(1.0f,2.0f,3.0f); /* Kode perpindahan, transformasi matriks dunia */
glPushMatrix();
{
glTranslatef(4.0f,5.0f,6.0f); /* Kode perpindahan, transformasi matriks lokal */
glPushMatrix();
{
glTranslatef(7.0f,8.0f,9.0f); /* Kode perpindahan, transformasi matriks model */
DrawModel(); /* Menggambarkan model nomor 1 */
8
}
glPopMatrix();
glPushMatrix();
{
glTranslatef(7.0f,8.0f,9.0f);/* Kode perpindahan, transformasi matriks model */
DrawModel(); /* Menggambarkan model nomor 2 */
}
glPopMatrix();
}
glPopMatrix();
glPushMatrix();
{
glTranslatef(10.0f,11.0f,12.0f);/* Kode perpindahan, transformasi matriks lokal */
glPushMatrix();
{
glTranslatef(13.0f,14.0f,15.0f);/* Kode perpindahan, transformasi matriks model */
DrawModel(); /* Menggambarkan model nomor 3 */
}
glPopMatrix();
glPushMatrix();
{
glTranslatef(16.0f,17.0f,18.0f); /* Kode perpindahan, transformasi matriks model
*/DrawModel(); /* Menggambarkan model nomor 4 */
}
glPopMatrix();
}
glPopMatrix();
}
9
I.IV DEFENISI 3 DIMENSI
Grafika komputer 3D (Inggris: 3D Computer graphics) adalah representasi dari data
geometrik 3 dimensi sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap
grafika komputer 2D. Hasil ini kadang kala ditampilkan secara waktu nyata (real time) untuk
keperluan simulasi. Secara umum prinsip yang dipakai adalah mirip dengan grafika komputer
2D, dalam hal: penggunaan algoritma, grafika vektor, model frame kawat (wire frame
model), dan grafika rasternya.
Grafik 3 Dimensi merupakan teknik penggambaran yg berpatokan pada titik koordinat sumbu
x(datar), sumbu y(tegak), dan sumbu z(miring).Representasi dari data geometrik 3 dimensi
sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap grafika komputer 2D.
Tiga Dimensi, biasanya digunakan dalam penanganan grafis. 3D secara umum merujuk pada
kemampuan dari sebuah video card (link). Saat ini video card menggunakan variasi dari
instruksi-instruksi yang ditanamkan dalam video card itu sendiri (bukan berasal dari
software) untuk mencapai hasil grafik yang lebih realistis dalam memainkan game komputer.
Grafika komputer 3D sering disebut sebagai model 3D. Namun, model 3D ini lebih
menekankan pada representasi matematis untuk objek 3 dimensi. Data matematis ini belum
bisa dikatakan sebagai gambar grafis hingga saat ditampilkan secara visual pada layar
komputer atau printer. Proses penampilan suatu model matematis ke bentuk citra 2 D
biasanya dikenal dengan proses 3D rendering.
Grafik 3D merupakan perkembangan dari grafik 2D. Didalam grafika komputer, 3D
merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi.
Suatu objek rangka 3D apabila disinari dari arah tertentu akan membentuk bayangan pada
permukaan gambar.
Proses pembuatan grafik komputer 3D dapat dibagi ke dalam tiga fase, yaitu 3D modeling
yang mendeskripsikan bentuk dari sebuah objek, layout dan animation yang mendeskripsikan
gerakan dan tata letak sebuah objek, dan 3D rendering yang memproduksi image dari objek
tersebut.
Di dalam dunia game, 3D secara umum merujuk pada kemampuan dari sebuah video card
(link). Saat ini video card menggunakan variasi dari instruksi-instruksi yang ditanamkan
10
dalam video card itu sendiri (bukan berasal dari software) untuk mencapai hasil grafik yang
lebih realistis dalam memainkan game komputer.
2D dan 3D dalam bentuk animasi
Animasi adalah suatu rangkaian gambar diam secara inbetween dengan jumlah yang banyak,
bila kita proyeksikan akan terlihat seolah olah hidup (bergerak), seperti yang pernah kita
lihat film film kartun di tevisi maupun dilayar lebar jadi Animasi kita simpulkan
menghidupkan benda diam diproyeksikan menjadi bergerak.
Untuk membuat ilusi gerakan tersebut, sebuah gambar pada layar komputer dengan sangat
cepat digantikan oleh gambar lainnya yang mirip dengan gambit sebelumnya
Animasi komputer adalah seni menghasilkan gambar bergerak melalui penggunaan komputer
dan merupakan sebagian bidang komputer grafik dan animasi. Animasi semakin banyak
dihasilkan melalui grafik komputer 3D, walaupun grafik komputer 2D masih banyak ada.
Kadangkala sasaran animasi adalah komputer itu sendiri, kadangkala sasaran adalah antara
lain, seperti filem. Untuk menghasilkan gambar pergerakan, image (gambar) dipaparkan pada
screen komputer dan diganti dengan image (gambar) baru yang selaras gambar sebelumnya
dengan pantas. Teknik ini serupa dengan bagaimana gambar bergerak dihasilkan melalui
televi dan film. Animasi komputer 3D pada asasnya merupakan pengganti digit bagi seni
animasi gerak (stop motion); patung animasi dibina pada screen komputer dan dipasang
dengan rangka siber. Kemudian anggota badan, mata, mulut, pakaian, dan lain-lain bagi
patung 3D digerakkan oleh juru animasi. Akhirnya, animasi dihasilkan.
Jenis animasi yang banyak dikenal adalah animasi 2D dan 3D. Perbedaan dari animasi 2D
dan 3D adalah dilihat dari sudut pandangnya. Animasi 2D menggunakan koordinat x dan y,
sedangkan animasi 3D menggunakan koordinat x, y dan z yang memungkinkan kita dapat
melihat sudut pandang objek secara lebih nyata.
A. animasi 2 dimensi
Animasi jenis ini juga biasa disebut dengan film kartun. Kartun sendiri berasal dari kata
Cartoon, yang artinya gambar yang lucu. Contohnya misalnya: Looney Tunes, Tom and
Jerry, Scooby Doo, Doraemon, dan lainnya.
11
B. animasi 3 dimensi
Animasi 3D adalah pengembangan dari animasi 2D. Dengan animasi 3D, karakter yang
diperlihatkan semakin hidup dan nyata, mendekati wujud manusia aslinya. Contohnya Toy
Story, Monster Inc., Finding Nemo, The Incredible, Shark Tale. Cars, hingga Final Fantasy.
Disini kita bisa melihat perbedaan visual jika dbandingkan dengan animasi 2D. Kesemuanya
itu biasa juga disebut dengan animasi 3D atau CGI (Computer Generated Imagery).
Untuk model animasi 3D, objek atau model tersebut dibuat dengan komputer dengan
menggunakan software tertentu, seperti 3d Max atau lainnya, yang kemudian dirangkakan
dengan tulang rangka virtual untuk membuat efek 3 dimensi nya.
Sedangkan untuk model animasi 2D, animasi dibuat dengan menggunakan beberapa gambar
yang memiliki layer terpisah yang berarti tanpa menggunakan rangka virtual. Kemudian
anggota badan, mata, mulut dan sebagainya dari objek tersebut dibuat seolah olah bergerak
oleh animator dengan menggunakan key frame secara terus menerus atau frame by frame.
Proses tersebut disebut sebagai proses tweening motion atau morphing
C. Game 2 dimensi
Game dua dimensi dapat diketahui berdasarkan ruangnya yang hanya memiliki dua sisi ( X
dan Y). Sedangkan untuk gambarnya sendiri dapat menggunakan Vector maupun Bitmap.
Untuk membuat animasi bergerak (berjalan,melompat,berlari,dll) kita harus membuat gambar
satu persatu yang disebut dengan(frame).
Kerealisasian gerakan ditentukan dari gambar yang dibuat, jumlah gambar(frame) yang
digunakan, serta hitungan gambar per detik (frame per second ( semakin tinggi hitungan
gambar per detik maka semakin mulus gerakan yang akan dihasilkan)).
Game dua dimensi ini memiliki 2 konsep, yaitu:
- Static View, dimana semua objek berada pada satu bidang dan gerakan karakter utama
hanya terbatas pada bidang itu saja.
- Side Scrolling View, dimana objek-objek dan gambar latar akan terus bergerak ke
kanan dan ke kiri sesuai dengan kecepatan gerakan karakter yang dimainkan.
Contoh game berbasis 2 dimensi diantaranya adalah Pac-man, Space Invader, Mario Bros,
dan game-game sederhana lainnya.
12
D. Game 3 Dimensi
Setelah munculnya game 2D muncullah game dengan tampilan 3D datar (3D Plaine) hal ini
sering membuat bingung karena sering disebut game 2D tapi mereka tidaklah sama. Game
seperti ini bukan 2D tapi tidak juga full 3D. Biasanya gameplaynya memang mirip game 2D
dimana kita hanya bisa bergerak secara horizontal dan vertical namun beberapa gambarnya di
render secara 3D. Teori grafik seperti ini disebut dengan 2.5D atau pseudo-3D sedangkan
pada istilah game lebih dikenal dengan isometric/diametric atau bahkan trimetric projection.
Berbeda dengan game 2D, dalam game 3D anda akan menemui tiga sisi (X,Y,Z).
Game bertipe ini menggunakan 2 macam tipe pemodelan:
-3d ini merupakan model/ object 3 dimensi yang nantinya akan anda jadikan sebagai karakter
utama, bangunan, object-object seperti senjata,musuh, permukaan tanah ,pohon, bukit,dll.
Object 3d seperti ini bisa anda buat dengan menggunakan program seperti 3D
S.Max,Maya,Hash,dll
E. grafik 2 dimensi
gambar 2d juga berperan dalam membuat game bertipe 3D fungsi gambar 2d antara lain:
- sebagai texture untuk object
- sebagai latar belakang ( langit , pemandangan,dll)
- sebagai meteran untuk nyawa , gambar untuk speedometer (untuk game racing), dll.
Sedangkan untuk membuat animasi dalam 3D dapat digunakan bones(tulang) yang layaknya
manusia dapat digerakkan. Selain itu animasi tetap juga dapat menggunakan bitmap (gambar
2d) untuk animasi pada texture air, api,dll
I.V Penertian syntax pada OpenGL
1. fungsi OpenGL
Pada komputer memory untuk menampilkan gambar biasanya di isi dengan gambar yang
berasal dari peringatan gambar paling akhir, jadi perlu di bersihkan dengan warna latar
belakang sebelum di gambar lagi.
13
Contoh berikut ini perintah yang di gunakan untuk membersihkan layar latar belakang
dengan warna hitam dan buffer apa yang di bersihkan. Dalam hal ini, buffer yang akn di
bersihkan karena buffer warna merupakan tempat gambar di simpan,
glClearColor 0, 0, 0, 0
glClear GL_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT
2. Spesifikasi warna
Pada OpenGL mendeskripsikan objek dengan warna objek proses yang berjalan sendiri
sendiri. Sebelum warna di ubah maka semua objek yang di gambarkan sesudah perintah
tersebut akan menggunakan warna terakhir yang dapat pada coloring scheme. Untuk warna di
gunakan perintah glcolor3f. Contoh berikut menunjukkan warna yang di tampilkan adalah
warna merah.
glColor3f 1, 0, 0
3. Menggambar Dibidang 3D dan 2D
Untuk menggambar grafik jenis apapun pada komputer biasanya di mulai engan pixel. Pixel
adalah elemen terkecil dari layar monitor yang mempunyai aitribut warna posisi..
Sedangkan untuk membentukgaris poligon, bjek dan lain lain dapat di lakukan melalui
urutan pixel yang berbeda. Menggambarkan dengan menggunakanOpenGL mempunyai
perbedaan dengan bahasa lain, yaitu tidak perlu memikirkan koordinat layar secara fisik
tetapi hanya perlu menspesifikasikan posisi koordinat dengan volume penglihatan. OpenGL
memikirkan sendiri bagaimana caranya menggambar titik, garis, dan lainnya yang berada
dalam ruang 3 dimensi dan 2 dimensi pada layar monitor.
Area gambar yang di batasi ini adalah ruang koordinat kartesian yang mempunyai range dari
-100 hingga 100 untuk sumbu x, y dan z. Secara sederhana bidang inidapat di anggap sebagai
bidang gambar untuk perintah OpenGL.
Untuk menggambar titik di gunakan satu perintah OpenGL yaitu : glVertex. Fungsi ini dapat
mempunyai 2 sampai 4 parameter dan berbagai macam tipe data. Sebagai contoh perintah
glVertex di bawah ini akan menspesifikasikan sebuah titik pada posisi 4 sumbu x, 4 sumbuy,
14
dan 0 untuk sumbu z. glVertex3f 4, 4, 0. Setelah di ketahui cara untuk menspesifikasina
sebuah titik di ruang pada OpenGL. Selanjutnya yang harus di tambahkan adalah informasi
tambahan mengenai titik tersebut, apakah titik tersebut akhir dari sebuah garis atau merupan
sebuah titik sudut dari sebuah poligon atau lainnya, karena defenisi geometrik dari sebuah
Vertex sebenarnya bkanlah hanya sebuah titik pada layar tetapi lebih merupakan sebuah titik
dimana terjadi interksi antara dua buah garis atau kurva.
Primitif adalah interpretasi sejumlah set atau deretan titik pada sebuah bentuk yang di gambar
pada layar. Pada OpenGL terdapat sepuluh macam primitif dari mulai menggambar sebuah
titik hingga poligon. Untuk itu di gunakan perintah glBigen sebagai cara memberi tau
OpenGL untuk memulai menginterpretasi sederetan titik sebagai titik sebagai salah satu
bentuk primitif. Dn untuk mengakhiri deretan titik ini di gunakan perintah glend.
sebagai contoh :
glBegin bmpolygon //spesifikasikan titik sebagai primitif
glVertex3f 4, 4, 0 //spesifikasi posisi titik
glEnd //mengakhiri perintah gambar titik
maksud dari :
#include untuk mendefenisi file hider, membaca file atau memanggil file
hider pertama.
Void draw dot(int x, int y) untuk menggambar dari titik x ke y
Gl Vertex 2i untuk menentukan 2 titik koordinat
Int main untuk menentukan atau mengatur tampilan dengan menggunakan RGB (red
grend blue).
Grafik komputer 3D merupakan suatu grafis yang menggunakan 3 titik perspektif
dengan cara matematis dalam melihat suatu objek, dimana gambar tersebut dapat
dilihat secara menyeluruh dan nyata. Untuk perangkat-perangkat lunak yang
digunakan untuk grafik komputer 3D ini banyak bergantung pada aloritma-algoritma.
15
Animasi Komputer
Animasi Komputer adalah seni membuat gambar bergerak melalui komputer.
Biasanya ini digunakan pada film-film animasi berbudget besar. Tetapi film-film non
animasi juga banyak yang menggunakan teknik ini, sebut saja Lord Of The Ring,
Harry Potter, dsb.
16
BAB III
HASI PERCOBAAN
1. Primitive drawing
Pada tutorial 01 telah diberikan contoh program untuk merepresentasikan model obyek
segiempat 2D. OpenGL memiliki beberapa komponen dasar untuk merepresentasikan suatu
obyek. Komponen dasar tersebut, disebut sebagai OpenGL Geometric primitives. Gambar 2
menggambarkan semua OpenGL Geometric primitives yang tersedia.
openGL Primitives
Setiap obyek harus dimodelkan sebagai kombinasi dari komponen-komponen dasar tersebut.
Sebagai contoh, obyek segiempat pada tutorial 01 tersebut dimodelkan dengan menggunakan
17
komponen dasar GL_POLYGON. Obyek tersebut dapat pula dimodelkan dengan komponen
dasar GL_TRIANGLES atau pun GL_QUAD.
Secara umum perintah-perintah dalam OpenGL memenuhi aturan sebagai berikut:
openGL Commands
Dalam OpenGL, menggambar geometric primitives selalu dilakukan di antara fungsi
glBegin(PRIMITIVES)
// Fungsi Menggambar Primitives di sini
glEnd()
18
Obyek kompleks dapat dibuat dengan kombinasi dari primitif ini. Adapun contoh grafik
primitif yang lain adalah :
-simbol tertentu. Teks merupakan
kumpulan lebih dari dua karakter.
angan dan
warna. Citra raster disimpan dalam komputer sebagai larik bernilai numerik. Larik tersebut
dikenal sebagai piksel map atau bitmap. Ada tiga cara untuk menghasilkan citra grafik yaitu
citra didisain dengan tangan, citra yang didapat dari perhitungan dan citra yang discan.
Pemaparan citra raster dinyatakan oleh piksel dengan video displays (Cathod-ray Tube CRT),
flat panel dispalys (LCD), hardcopy (printer laser, dot matrix printers, ink-jet printers).
Contoh proses pemaparan permukaan adalah citra yang ditangkap lalu disimpan di frame
buffer, kemudian digunakan untuk mewarnai sebuah titik pada permukaan pemapar.
Selanjutnya proses scan di CRT. Frame buffer adalah matriks 2 dimensi yang mewakili piksel
pada pemapar. Ukuran matriks harus cukup untuk menyimpan kedalam warna pemapar untuk
semua piksel. Sebagai contoh pemapar (monitor) berresolusi 1280 x 1024 mempunya
kedalaman warna 24 bit (~16 juta warna) membutuhkan ruang simpan sekitar 4 Mb.
Contoh fungsi dari primitive drawing
2 dimensi
#include
void userdraw()
{
static int tick=0;
void drawDot(int x, int y);
glBegin(GL_LINES);
glVertex2i(300,250);
glVertex2i(300,250);
glVertex2i(50,50);
glVertex2i(300,250);
19
glVertex2i(50,250);
glVertex2i(300,250);
glVertex2i(300,50);
glVertex2i(50,250);
glEnd();
}
void display(void)
{
//BERSIH LAYAR
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow("Diamond");
glClearColor(1.0f,0.0f,0.0f,0.0f);
gluOrtho2D(0.,700.,0.,400.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
20
2. Contoh projek gambar 5 titik
#include
void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
/* gambar 5 titik di layar */
glColor3f (1.0, 1.0, 0.0);
/* posisi vertex */
21
glBegin(GL_POINTS);
glVertex3f (0.0, 0.0, 0.0);
glVertex3f (0.0, 0.8, 0.0);
glVertex3f (0.8, 0.0, 0.0);
glVertex3f (0.0, -0.8, 0.0);
glVertex3f (-0.8, 0.0, 0.0);
glEnd();
glFlush ();
}
void kunci(unsigned char key, int x, int y)
{
switch (key)
{
/* aplikasi berhenti ketika tombol q ditekan */
case 27 : case 'q': exit(0); break;
}
glutPostRedisplay();
}
22
int main(int argc, char *argv[])
{
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Primitif");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}
23
3. Contoh latihan fungsi dari 3 dimensi
DIAMON
#include
void userdraw()
{
static int tick=0;
void drawDot(int x, int y);
glBegin(GL_LINES);
glVertex2i(100,250);
glVertex2i(300,250);
glVertex2i(100,250);
glVertex2i(200,200);
glVertex2i(200,200);
glVertex2i(300,250);
glVertex2i(100,250);
glVertex2i(200,50);
glVertex2i(200,200);
glVertex2i(200,50);
glVertex2i(300,250);
glVertex2i(200,50);
glEnd();
}
void display(void)
{
//BERSIH LAYAR
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
24
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow("Diamond");
glClearColor(1.0f,0.0f,0.0f,0.0f);
gluOrtho2D(0.,640.,0.,350.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
25
#include
#include
#include
#include
#include
#include
void cube()
{
//menggambar kubus dan transformasi tarnslasi ke titik 0.5 0.5 0.5 dan skala 1 1 1
glPushMatrix();
glTranslated(0.5,0.5,0.5);//cube
glScaled(1.0,1.0,1.0);
glutSolidCube(1.0);
glPopMatrix();
}
void setMaterial()
{
//set properties of surfaces material
GLfloat mat_ambient[] = {0.7f,0.7f,0.7f,1.0f}; // ada 4 jenis material yang dipakai,
dengan kombinasi warna tertentu
GLfloat mat_diffuse[] = {0.6f,0.6f,0.6f,1.0f};
GLfloat mat_specular[] = {1.0f,1.0f,1.0f,1.0f};
GLfloat mat_shininess[] = {50.0f};
glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);
glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);
}
26
void setLighting()
{
//set light sources
GLfloat lightIntensity[] = {0.7f,0.7f,0.7f,1.0f};//mensetting pencahayaan
GLfloat light_position[] = {2.0f,6.0f,3.0f,0.0f};
glLightfv(GL_LIGHT0,GL_DIFFUSE,lightIntensity);
glLightfv(GL_LIGHT0,GL_POSITION,light_position);
}
void setViewport()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
double winHt = 1.0;//half height of the window
glOrtho(-winHt*64/48,winHt*64/48,-winHt,winHt,0.1,100.0);
}
void setCamera()
{
//set the camera
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(3.3,3.3,3.0,0,0.25,0,0.0,1.0,0.0);
}
void displayObject()
{
setMaterial();
setLighting();
setViewport();
setCamera();
27
//startDrawing
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
cube();//memanggil fungsi menggambar kubus
glFlush();//mengirim smua objek untuk dirender
}
void main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
glutInitWindowSize(640,480);
glutInitWindowPosition(100,100);
glutCreateWindow("simple 3d scene");
glutDisplayFunc(displayObject);//fungsi dari display object yang menggabungkan
kubus lighting material dan kamera
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glShadeModel(GL_SMOOTH);
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
glClearColor(1.0f,1.0f,1.0f,0.0f);
glViewport(0,0,640,480);
glutMainLoop();
}
28
29
BAB IV
HASIL ANALISA PERCOBAAN
Perencanaan bangunan bertingkat memerlukan suatu analisa yang tepat lewat penggunaan
program
komputer yang tepat pula. Salah satu program komputer yang digunakan dalam perhitungan
gedung tersebut
adalah ETABS. Namun tidak menutup kemungkinan adanya penggunaan program komputer
lain dalam
membantu mendapatkan beban yang terjadi pada struktur utama yang berasal dari struktur
pendukung.
Bangunan perkantoran tingkat menengah dengan denah sederhana dalam skripsi ini akan
dianalisa dan
dibandingkan perilaku yang terjadi padanya. Beban yang diberikan adalah beban statik dan
beban dinamik.
Beban statik yang terjadi adalah beban akibat gaya gravitasi sedangkan untuk beban gempa
adalah dengan
analisa statik ekivalen dan analisa respon spektrum. Dengan mengambil portal yang mewakili
dari bangunan
tersebut, baik arah-x maupun arah-y, maka dilakukan pula analisa yang sama seperti pada
kasus 3 dimensi
tersebut. Hasil perhitungan yang dianalisa didapatkan dari output program ETABS baik
displacement
maupun gaya dalam kolom. Perilaku struktur dalam hal ini ditunjukkan oleh displacement
dan gaya-gaya
dalam tadi. Dengan demikian akan diketahui masing-masing perilaku portal sebagai wujud
struktur 2
dimensi dan gedung yang diwujudkan sebagai struktur 3 dimensi. Dalam hal ini pula, akan
disusun tabeltabel
perbandingan analisa statik-dinamik yang terjadi pada struktur 2 dimensi dan 3 dimensi serta
prosentase selisih perbandingan analisa statik-dinamik pada perwujudan struktur yang sama.
Dengan hasil
yang diperoleh lewat perbandingan yang ada, maka akan lebih optimal jika perancang
struktur.
30
PENUTUP
a. Kesimpulan
jadi, perbedaan antara grafik 3D dan 2D secara umum terletak pada komposisi objeknya.
Pada bidang Cartesian, grafik 2D hanya memiliki sumbu X dan Y, sedangkan grafik 3D
memiliki axis X, Y, dan Z. Dimana hal ini membuat objek grafik 3D memiliki volume
atau memiliki isi. Sehingga objek 3D dapat dilihat dari berbagai macam sudut. Sedangkan
Grafik 2D hanya memiliki satu sudut pandang saja, yaitu sisi yang sejajar dengan posisi si
penglihat. Oleh sebab itu kita tidak dapat melihat bagian belakang maupun samping
sebuah objek 2D.
Contoh penggunaan grafik 2D misalnya pada typhography, cartography, menggambar
teknik, periklanan, dll. Sedangkan contoh objek 3D misalkan benda-benda yang ada di
sekitar kita. Contoh lain yang paling sering menggunakan grafik 2D dan 3D adalah
pembuatan animasi dan game seperti yang telah dijelaskan diatas.
b. Saran
Setelah melihat uraian di atas, penyusun mempunyai saran.
Terlebih dahulu harus belajar algoritma, karena algorima adalah salah satu kunci untuk
dapat memahami permasalahan yang akan dihadapi didalam pembuatan grafik komputer.
Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi yang lebih bagus
menurut anda, lebih kompleks, dan yang khusus menanganipembuatan gambar/grafik
serta yang mengikuti perkembangan jaman .
Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa pemrograman ) yang
terdapat dalam bahasa pemrograman ataupun fitur fitur yang terdapat didalam program
aplikasi.
31
DAFTAR PUSTAKA
https://docs.google.com/document/d/15Us0Xa9Su30BmYysaQ8vTWnivvJbOT-
84BvOJFkBJM0/edit?pli=1
DARI CATATAN DARI PERTEMUAN 1 SAMPAI AKHIR
file:///C:/Users/User/Documents/Makalah%20Grafik%20Komputer%20Yoga%20Finish.ht
m
file:///C:/Users/User/Documents/Laporan%20Tugas%20Grafika%20Komputer%20bangun
%202%20dimensi%20Code%20Block.htm