Upload
fika-anggraini-ii
View
47
Download
0
Embed Size (px)
DESCRIPTION
Tugas Komputer Grafik
Citation preview
5/24/2018 LAPORAN PRAKTIKUM FIKA
1/29
LAPORAN PRAKTIKUM
KOMPUTER GRAFIK
UNIVERSITAS PEMBANGUNAN PANCA BUDI
FAKULTAS TEKHNIK
JURUSAN SISTEM KOMPUTER
MEDAN
2014
Nama
Praktikan
Nomor
Mahasiswa
Tanggal
Pengumpulan
Tanda tangan
Praktikan
Fika Anggraini 1214370211
Nama
Penilai
Tanggal
Koreksi
Nilai Tanda Tangan
Dosen
Indri
Sulistianingsih,S.Kom
Kelas
TI 4 Sore B
5/24/2018 LAPORAN PRAKTIKUM FIKA
2/29
i
DAFTAR ISI
Daftar Isi ............................................................................................................. i
Kata Pengantar .................................................................................................. ii
BAB 1
Pendahuluan
1.1 Pengertian Komputer Grafik ..................................................................... 1
1.2 Peranan dan Penggunaan Komputer Grafik ............................................... 1
1.3 Pemilihan Aplikasi OPENGL ................................................................... 1
1.4 Tujuan ...................................................................................................... 1
BAB 2
Landasan Teori
2.1 Sejarah OpenGL ....................................................................................... 2
2.2 Pengenalan OpenGL ................................................................................. 3
2.3 Cara Kerja OpenGL .................................................................................. 4
Inisialisasi Awal ...................................................................................... 4
Pembuatan Gambar ................................................................................. 5
Primitive Grafik....................................................................................... 6
Gambar 2D .............................................................................................. 9
Gambar 3D .............................................................................................. 9
BAB 3
Hasil Percobaan/Praktikum
3.1 Gambar Jajar Genjang ............................................................................ 10
3.2 Gambar 2D ............................................................................................. 12
3.3 Gambar 3D ............................................................................................. 17
BAB 4
Analisa Hasil Percobaan
4.1 Analisa dari percobaan gambar jajar Genjang ......................................... 22
4.2 Analisa dari percobaan gambar 2D ......................................................... 23
4.3 Analisa dari percobaan gambar 3D ......................................................... 24
PENUTUP ....................................................................................................... 25
DAFTAR PUSTAKA ...................................................................................... 26
5/24/2018 LAPORAN PRAKTIKUM FIKA
3/29
ii
KATA PENGANTAR
Segala puji hanya milik Allah SWT. Shalawat dan salam selalu tercurahkan kepada
Rasulullah SAW. Berkat limpahan dan rahmat-Nya penyusun mampu menyelesaikan
tugas makalah ini guna memenuhi tugas mata kuliah Komputer Grafik.
Dalam penyusunan tugas atau materi ini, tidak sedikit hambatan yang penulis hadapi. Namun
penulis menyadari bahwa kelancaran dalam penyusunan materi ini tidak lain berkat bantuan,
dorongan, dan bimbingan orang tua, sehingga kendala-kendala yang penulis hadapi teratasi.
Makalah ini disusun agar pembaca dapat memperluas ilmu tentang ilmu komputer grafik dan
contoh praktik pengerjaannya , makalah yang Saya sajikan berdasarkan pengamatan dariberbagai sumber informasi, referensi, dan berita. Makalah ini disusun oleh penyusun dengan
berbagai rintangan. Baik itu yang datang dari diri penyusun maupun yang datang dari luar.
Namun dengan penuh kesabaran dan terutama pertolongan dari Allah akhirnya makalah ini
dapat terselesaikan.
Semoga makalah ini dapat memberikan wawasan yang lebih luas dan menjadi sumbangan
pemikiran kepada pembaca khususnya para mahasiswa Universitas Panca Budi. Saya sadar
bahwa makalah ini masih banyak kekurangan dan jauh dari sempurna. Untuk itu, kepada
dosen pembimbing saya meminta masukannya demi perbaikan pembuatan makalah
saya di masa yang akan datang dan mengharapkan kritik dan saran dari para pembaca.
Medan, 11 Juni 2014
Fika Anggraini
5/24/2018 LAPORAN PRAKTIKUM FIKA
4/29
1
BAB I PENDAHULUAN
1.1PENGERTIAN KOMPUTER GRAFIKMenurut Arntson (1988), komputer grafik adalah adalah komputer yang mampu
menggambar atau menampilkan sebuah informasi yang berupa gambar atau
ilustrasi. Grafika komputer merupakan suatu bidang yang mempelajari bagaimana
menghasilkan suatu gambar menggunakan komputer, sehingga didalam grafika
komputer akan dibahas tentang teknik-teknik menggambar. Komputer grafis ini
terdiri atas satu set piranti untuk menciptakan gambar yang dapat berinteraksi
secara alamiah dengan penggunanya. Peralatan-peralatan itu terdiri atas perangkat
keras (hardware) dan perangkat lunak (software) yang secara bersama-samamemungkinkan pemogram untuk menampilkan program dengan kemampuan
grafik yang canggih. Data ditampilkan secara visual melalui bentuk, warna dan
tekstur secara lebih baik dibandingkan sekedar tabel-tabel angka, sebab syaraf
sistem mata lebih mengenali dan memahami penyampaian pesan secara visual.
1.2 PERANAN DAN PENGGUNAAN KOMPUTER GRAFIK
Grafika komputer telah menunjukkan kemajuan yang pesat dalam pengembangan
berbagai aplikasi untuk menghasilkan gambar. Walaupun pada awalnya aplikasi
dalam sains dan engineering memerlukan peralatan yang mahal, perkembangan
teknologi komputer memberikan kemudahan penggunaan komputer sebagai alat
bantu aplikasi grafik komputer interaktif. Pada saat ini grafika komputer digunakan
secara rutin dibidang ilmu pengetahuan, teknik, kedokteran, bisnis, industri,
pemerintahaseni, hiburan, pendidikan, periklanan, dan lain sebagainya.
1.3PEMILIHAN APLIKASI OpenGLDalam pembahasan dan praktik kerja di dalam makalah ini Saya akan
memfokuskan pada penggunaan OpenGl sebagai pilihan Saya.
1.4TUJUAN1. Sebagai bahan untuk Ujian Akhir Semester mata kuliah komputer grafik
semester 4.
2. mahasiswa diharapkan dapat mempraktikan pembuatan gambar 2D dan 3D.
5/24/2018 LAPORAN PRAKTIKUM FIKA
5/29
2
BAB II LANDASAN TEORI
A.SEJARAH OPENGL
Tahun 1980-an, mengembangkan perangkat lunak yang dapat berfungsi dengan berbagai
hardware grafik adalah tantangan nyata. Pengembang perangkat lunak antarmuka dan
kebiasaan menulis driver untuk setiap perangkat keras. Ini mahal dan mengakibatkan banyak
duplikasi usaha.
Pada awal 1990-an, Silicon Graphics (SGI) adalah seorang pemimpin dalam grafik 3D untuk
workstation. Mereka IRIS GL API dianggap keadaan seni dan menjadi standar industri
defacto, membayangi terbuka berbasis standar PHIGS. Ini karena GL IRIS dianggap lebih
mudah
digunakan, dan karena itu mendukung modus langsung rendering. By contrast, Sebaliknya,
PHIGS dianggap sulit untuk digunakan dan ketinggalan zaman dalam hal fungsionalitas.
SGIs pesaing (termasuk Sun Microsystems, Hewlett-Packard dan IBM) juga dapat
membawa ke pasar 3D hardware, didukung oleh ekstensi yang dibuat pada PHIGS standar.
Hal ini pada gilirannya menyebabkan pangsa pasar SGI untuk melemahkan karena lebih
banyak hardware grafik 3D pemasok memasuki pasar. Dalam upaya untuk mempengaruhi
pasar, SGI memutuskan untuk mengubah IrisGL API menjadi standar terbuka. SGI
menganggap bahwa IrisGL API itu sendiri tidak cocok untuk membuka karena masalah
lisensi dan paten. Juga, IrisGL memiliki fungsi-fungsi API yang tidak relevan dengan grafik
3D. Sebagai contoh, termasuk windowing, keyboard dan mouse API, sebagian karena
dikembangkan sebelum Sistem X Window dan Suns NEWS sistem dikembangkan. Selain
itu, SGI memiliki sejumlah besar pelanggan perangkat lunak; dengan mengubah ke OpenGL
API mereka berencana untuk mempertahankan pelanggan mereka terkunci ke SGI (dan IBM)
hardware untuk beberapa tahun sementara pasar dukungan untuk OpenGL matang.
Sementara itu, SGI akan terus berusaha untuk mempertahankan pelanggan mereka terikat
pada hardware SGI dengan mengembangkan maju dan kepemilikan Iris Inventor dan Iris
Performer pemrograman API. Akibatnya, SGI merilis standar OpenGL.
5/24/2018 LAPORAN PRAKTIKUM FIKA
6/29
3
B.PENGENALAN OPENGL
OpenGL adalah sebuah program aplikasi interface yang digunakan untuk mendefinisikan
komputer grafis 2D dan 3D. Program lintas-platform API ini umumnya dianggap ketetapan
standar dalam industri komputer dalam interaksi dengan komputer grafis 2D dan juga telah
menjadi alat yang biasa untuk digunakan dengan grafis 3D. Singkatnya, Open Graphics
Library, OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis ulang bagian
grafis dari sistem operasi setiap kali sebuah bisnis akan diupgrade ke versi baru dari sistem.
Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus atau
executable kesistem operasi. Dengan demikian, program ini bekerja dengan perangkat keras
grafis yang ada yang berada pada hard drive atau sumber tertentu lainnya. Setiap perintah
dalam dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus tertentu yang
terkait dengan grafis.
OpenGL adalah suatu spesifikasi grafik yang low-level yang menyediakan fungsi untuk
pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk
keperluan-keperluan pemrograman grafik. OpenGL bersifat Open-Source, multi-platform dan
multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun
objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi(application programming interface (API) yang tidak tergantung pada piranti dan platform
yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan
sistem operasi lainnya.
OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun
dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang
lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL di-
package
secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu,
package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan
bahasa pemrograman yang akan digunakan.OpenGl melayani dua tujuan :
Untuk menyembunyikan kompleksitas dari interfacing dengan berbagai 3D
accelerators, memamerkan oleh programmer dengan satu, seragam API.
5/24/2018 LAPORAN PRAKTIKUM FIKA
7/29
4
Untuk menyembunyikan kemampuan yang berbeda dari hardware platform, oleh
semua yang memerlukan mendukung implementasi penuh fitur opengl set
(menggunakan software emulation jika diperlukan).
C. 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 grafik 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.OpenGL mempunyai bnayak fungsi dan penggunaan
perintah yang sangat luas, penggunaan openGL membutuhkan library tambahan yang harus
di letakkan pada direktory system dari windows (OS),yaitu :
OpenGL32.dll
Glu32.dll
Glut32.dll
I nisial isasi 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
menampilkan obyek,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 :
LoadGlut(glut32.dll) -pemanggilan library openGL
InitGLinisialisasi openGL awal yang harus dilakukan
glViewportuntuk pengaturan viewport
glMatrixModepengaturan viewport
5/24/2018 LAPORAN PRAKTIKUM FIKA
8/29
5
gluPerspectivepengaturan persepektif
Contoh script untuk inisialisasi openGL :
TryLoadGlut(glut32.dll);
InitGL;
Exept one :=
exeption
do
Begin
messageDlg
{ e.message, mtError, [mbOk],};
Halt {1}; End;
End;
Script di atas merupakan script yang paling sederhana, dalam artian minimal diperlukan
untuk
menginisialisasi penggunaan openGL.Fungsi-fungsi lain seperti yang disebut diatas seperti
glViewport, glMatrixMode, dapat di tambah kan pada script sesuai dengan kebutuhan.
Pembuatan gambar
Didalam openGL pembuatan obyek dilakukan dengan titik-titik 3 dimensi,dengan mode
GL_QUARDS, maka otomatis setiap 4 titik digambar menjadi sebuah bidang segiempat,sed
angkan mode GL_LINES, pada setiap 2 titik digambar manjadi sebuah garis.Di dalam tahap
ini setiap garis atau bidang juga dapat di atur warnanya.
Fungsi atau prosedur yang digunakan :
mode GL_QUARDSmenggambarkan segi empat
mode GL_LINESmenggambark garis
glVertex3f-penentuan titik 3 dimensi
glColor3fpenentuan warna
OpenGL memiliki lebih dari 200 fungsi. Fungsi tersebut
bisa dikelompokkan menjadi :
5/24/2018 LAPORAN PRAKTIKUM FIKA
9/29
6
Fungsi primitif, menentukan elemen yang bisa menghasilkan gambar di layar. Fungsi
ini terdiri dari 2 jenis, yaitu primitif geometric seperti polygon (segi banyak) yang
bisa dibuat menjadi dua, tiga, atau empat dimensi, dan primitif gambar seperti
bitmaps.Fungsi atribut, mengontrol tampilan dari primitif. Fungsi ini menentukan warna, jenis
garis, properti material, sumber cahaya, dan tekstur.
Fungsi pandangan, menentukan properti kamera. OpenGL menyediakan sebuah
virtual kamera yang bisa diposisikan dan diorientasikan relatif ke obyek yang
ditentukan dengan fungsi primitif. Lensa kamera juga bisa dikendalikan sehingga bisa
dihasilkan sudut
yang lebar dan pandangan telefoto (jarak jauh).
Fungsi windowing, fungsi ini mengendalikan windows pada layar dan penggunaan
dari mouse dan keyboard.
Fungsi kontrol, menghidupkan macam-macam fitur OpenGL.
Fungsi-fungsi OpenGL dimuat didalam 2 library yang disebut dengan gl dan glu
(atau GL dan GLU). Library yang pertama, adalah fungsi utama dari OpenGL, berisi
semua fungsi OpenGL yang dibutuhkan sedangkan yang kedua, openGL Utility
Llibrary (GLU) memuat fungsi yang ditulis menggunakan fungsi dari library utama
dan sangat
membantu bagi pengguna. Fungsi utama mempunyai nama yang diawali dengan gl seperti
glVertex3f(), sedangkan fungsi didalam GLU mempunyai nama yang diawali dengan glu
seperti gluOrtho2D()
PRIM ITIVE GRAFI CS
Primitif objek merupakan salah satu subbab dari grafika komputer yang terdiri dari titik, garis
dan bangun dua dimensi. Dalam grafika komputer penghasilan citra menggunakan primitive
grafik dasar, primitif ini memudahkan untur merender atau menggambar pada layar monitor
sebagaimana penggunaan persamaan geometri sederhana. Contoh primitive grafika dasar
antara lain : titik, garis, kurva, fill areadan 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.
5/24/2018 LAPORAN PRAKTIKUM FIKA
10/29
7
Primitive grafis yang umum dijelaskan pada tabel berikut :
Fungsi dasar menggambar titik. Berikut adalah beberapa fungsi didalam menggambar suatu
titik, antara lain :
- glVertex2i(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan
berupa integer.
Contoh glVertex2i(10,10)
- glVertex2f(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan
berupa float. Contoh glVertex2f(10.0,10.0)
- glVertex2d(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan
berupa double. Contoh glVertex2d(10.0,10.0);
Cara pendefinisian primitive objek yang digunakan dalam pembuatan suatu objek :
#define GL_POINTSPrimitif 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
# define GL_LINE_STRIP
# define GL_TRIANGLES
Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu
segitiga dengan blok di tengahnya.
OBJEK
GRAFIS
PRIMITIFE GRAFIS
Pixel (dot) Posisi (x,y) warna
Garis (line) Posisi (x1,x2,y1,y2),Warna,Thickness,Pattern
Lingkaran (circle) Pusat (x,y),Radius,Warna,Thickness,Pattern
Ellipse Pusat (x,y),Radius : Horisontal/Vertical,Warna,Thickness,Pattern
Kurva Teratur/Tidak teratur (Bezier)
Character Type,Slanted,Thickness,Colour DLL
5/24/2018 LAPORAN PRAKTIKUM FIKA
11/29
8
# define GL_TRIANGLES_STRIP
Pada triangles strip jumlah vertex yang dipergunakan
adalah 4 buah vertex
# define GL_TRIANGLE_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_STRIP
Pada quads strip 4 buah vertex merupakan 1 kelompok.
Langkah rendering pada quads strip :
a.Nomor yang berhadap (membentuk 2 garis yang sejajar
b.Nomor ganjil dengan nomor ganjil dipertemukan
c.Nomor genap dengan nomor genap dipertemukan
d.Garis yang tersisa akan dipertemukan
# define GL_POLYGON
Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi
menghasilkan kurva tertutup dengan blok warna (fill). Rendering yang
dimiliki oleh GL_POLYGON sama dengan GL_TRIANGLE_FAN.
Catatan :
a) glLineWidth yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis,b) glPointSize yaitu suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek,c) gluOrtho2D yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan
mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas.
Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan
menggunakan fungsi glColor3f(red,green,blue). Di mana red, green, blue berada pada 0
sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala. Berikut
adalah beberapa fungsi color :
glColor3f(0,0,0);//black
glColor3f(0,0,1);//blueglColor3f(0,1,0);//green
5/24/2018 LAPORAN PRAKTIKUM FIKA
12/29
9
glColor3f(0,1,1)//cyan
glColor3f(1,0,0)//red
glColor3f(1,0,1)//magenta
glColor3f(1,1,0);//yellow
glColor3f(1,1,1);//white
GAMBAR 2D
Primitive object 2D adalah suatu model pembuatan gambar yang mengacu kepada prespektif
2 titik. Umumnya object 2D ini merupakan suatu object yang terdiri dari sekumpulan titik-
titik yang menyambung (dihubungkan) menjadi satu dengan perantara garis lurus berupa
polyline, polygon maupun kurva.
GAMBAR3D
Yang membedakan 2 dimensi dan 3 dimensi adalah kedalaman. Kedalaman didefinisikan
sebagai jarak antara viewer terhadap benda yang dia lihat. Ini berarti berbeda dengan 2
dimensi yang hanya menggunakan 2 ukuran, yaitu panjang dan lebar, maka 3 dimensi
menggunakan 3 ukuran, yaitu panjang, lebar dan kedalaman. Secara geometri ketiga ukuran
tersebut disimbolkan dengan sumbu x, y, dan z.
5/24/2018 LAPORAN PRAKTIKUM FIKA
13/29
10
BAB III PRAKTIKUM
1. PEMBUATAN JAJARGENJANGglEnd();#include
void userdraw()
{
static int tick=0;
void drawDot(int x,int y);
glBegin(GL_LINES);
glVertex2i(50,50);
glVertex2i(100,100);
glVertex2i(50,50);
glVertex2i(200,50);
glVertex2i(200,50);
glVertex2i(250,100);
glVertex2i(250,100);
glVertex2i(100,100);
}
void display(void)
{
//clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
5/24/2018 LAPORAN PRAKTIKUM FIKA
14/29
11
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(200,200);
glutInitWindowSize(640,480);
glutCreateWindow("Menampilkan Titik");
glClearColor(1.0f,0.0f,0.0f,0.0f);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Hasilnya
5/24/2018 LAPORAN PRAKTIKUM FIKA
15/29
12
2. GAMBAR 2DPEMBUATAN BUNGA
#include
#include
typedef struct
{
int x,y;
}point2D_t;
typedef struct
{
float r,g,b;
}color_t;
void setColor (color_t col)
{
glColor3f(col.r, col.g, col.b);
}
void drawPolygon(point2D_t pnt[],int n)
{
int i;
glBegin(GL_POLYGON);
5/24/2018 LAPORAN PRAKTIKUM FIKA
16/29
13
for (i=0; i
5/24/2018 LAPORAN PRAKTIKUM FIKA
17/29
14
batang[4]={{-5,-190},{-5,0},{5,0},{5,-190}};
color_t biru ={0,1,1};
fillPolygon(batang,4, biru);
drawPolygon(batang,4);
point2D_t
pot[4]={{-60,-190},{60,-190},{30,-240},{-30,-240}};
color_t hitam ={0,0,1};
fillPolygon(pot,4, hitam);
drawPolygon(pot,4);
point2D_t
pot2[6]={{-80,-160},{-50,-160},{-50,-190},{-60,-190},{-60,-
170},{-80,-170}};
color_t hitam3 ={0,0,1};
fillPolygon(pot2,4, hitam3);
drawPolygon(pot2,4);
point2D_t
pot3[6]={{80,-160},{50,-160},{50,-190},{60,-190},{60,-
170},{80,-170}};
color_t hitam2 ={0,0,1};
fillPolygon(pot3,4, hitam2);
drawPolygon(pot3,4);
5/24/2018 LAPORAN PRAKTIKUM FIKA
18/29
15
static int tick=0;
point2D_t shape[360];
double srad,r;
for(int s=0; s
5/24/2018 LAPORAN PRAKTIKUM FIKA
19/29
16
int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
//posisi layar
glutInitWindowPosition(150,150);
//ukuran layar
glutInitWindowSize(640,480);
//title windows
glutCreateWindow("Bunga Raflesia");
//warna back layar
glClearColor(1.0,1.0,1.0,0.0);
gluOrtho2D(-300.,400.,-300.,300.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
5/24/2018 LAPORAN PRAKTIKUM FIKA
20/29
17
3. GAMBAR 3D#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
5/24/2018 LAPORAN PRAKTIKUM FIKA
21/29
18
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);
}
void setLighting()
{
5/24/2018 LAPORAN PRAKTIKUM FIKA
22/29
19
//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();
5/24/2018 LAPORAN PRAKTIKUM FIKA
23/29
20
gluLookAt(3.3,3.3,3.0,0,0.25,0,0.0,1.0,0.0);
}
void displayObject()
{
setMaterial();
setLighting();
setViewport();
setCamera();
//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);
5/24/2018 LAPORAN PRAKTIKUM FIKA
24/29
21
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();
}
5/24/2018 LAPORAN PRAKTIKUM FIKA
25/29
22
BAB IV ANALISA HASIL PRAKTIKUM
Hasil Percobaan Jajar Genjang
Warna background dan warna bidang yang dibuat sangat tidak combain sehingga
menimbulkan kesulitan dalam melihatnya jika sesaat. Saya akui seharusnya gambar ini dapat
lebih baik dari ini.
5/24/2018 LAPORAN PRAKTIKUM FIKA
26/29
23
Hasil Percobaan Gambar 2D
Gambar 2D diatas meskipun tampak sederhana namun dalam pengerjaannya Saya
mendapatkan kesulitan yang cukup lumayan,Karena gambar tersebut meniliki berbagai
bentuk atau bisa kita sebut sebagai kombinasi dari berbagai bentuk dasar dari gmbar 2D.
5/24/2018 LAPORAN PRAKTIKUM FIKA
27/29
24
Hasil Percobaan Gambar 3D
Hasil yang sangat memuaskan bagi Saya karena selain seluruh bidangnya tampak
simetris,dalam hal warna juga sangat baik.Seperti dapat kita lihat warna tersebut juga
menonjolkan sisi berbayang sehingga semakin menguatkan dari gambar 3D tersebut.
5/24/2018 LAPORAN PRAKTIKUM FIKA
28/29
25
PENUTUP
Dari pemaparan di atas dapat kita simpulkan bahwa penggunaan program OPENGL sangat
membantu dalam studi Komputer Grafik bagi para pemula.Meskipun hasil dari praktikum
yang telah saya lakukan di atas masih banyak mengalami kekurangan namun bagi saya yang
merupakan seorang mahasiswa yang baru mengenal computer grafik, hal ini sangat
membantu Saya dalam pendalaman ilmu saya akan komputer grafik.
Pada bagian penutup ini Saya juga dituntut untuk memberikan saran tentang program
OPENGL tersebut.Tidak akan banyak saran Saya untuk program ini karena mungkin saja
bukan program ini yang memiliki kekurangan,akan tetapi akibat Saya yang merupakan
seorang pemula sehingga sangat kaku dan mengalami kesulitan dalam pengaplikasiannya
didalam praktik langsungnya.Saya harap di kemudian hari program OPEN GT ini dapat
menjadi sebuah program dalam komputer grafik dapat mempermudah dan mengefesiensikan
kinerjanya dengan mengupgrade atau dengan hal lainnya yang dapat mempermudah kami
sebagai pemula untuk dapat memahaminya dengan cepat.
Demikian makalah praktikum sebagai tugas Ujian Akhir Semester program Studi Komputer
Grafik semester IV ini Saya perbuat. Saya sadar betul akan banyak kekurangan dalam
penyajian ataupun dalam hal hasil akhir praktikum Saya. Namun Saya cukup berbangga hati
dapat menyelesaikan makalah ini dengan hasil jerih payah usaha Saya sendiri yang mencari
berbagai sumber pustaka yang berkaitan dengan makalah ini.
Ribuan terimakasih Saya sampaikan kepada Dosen Komputer Grafik Ibu Indri
Sulistianingsih,S.Kom dan seluruh penulis buku ataupun blog yang telah Saya manfaatkan
tulisannya sebagai referensi dari makalah ini.
Semoga makalah ini dapat bermanfaat dan mendapatkan respon yang positif dari dosen yang
bersangkutan.
Wassalamualaikum WRB.
5/24/2018 LAPORAN PRAKTIKUM FIKA
29/29
26
DAFTAR PUSTAKA
___. 2011. Komputer Grafik.
http://dotsal.wordpress.com/2011/09/25/komputer-grafik/
diakses tanggal 3 Juni 2014
_____, 2008. Primitif Grafika. Online.
http://materiquliah.wordpress.com/2008/11/15/primitif-grafika/
. Diakses pada tanggal 3 Juni 2014
_____2013. Grafika Komputer3D. (Online).
(http://id.wikipedia.org/wiki/Grafika_komputer_3D
Diakses pada tanggal 4 Juni 2014
_____2012. Translasi, dan Rotasi Grafik Komputer.
(Online). (http://kripiksukun.blogspot.com/2012 Page 337/04/translasiskala-dan-rotasi-
grafik.html).Diakses pada tanggal 5 Juni 2014
http://id.wikipedia.org/wiki/Grafika_komputer_3Dhttp://id.wikipedia.org/wiki/Grafika_komputer_3Dhttp://id.wikipedia.org/wiki/Grafika_komputer_3Dhttp://id.wikipedia.org/wiki/Grafika_komputer_3D