Anda di halaman 1dari 31

1

Nama Pratikan Nomor


Mahasiswa
Tanggal
Kumpul
Tanda Tangan
Pratikan
Rizky Agustin 1214370081
12 juni 2014


Nama Penilai Tanggal Koreksi Nilai

Tanda tangan
Dosen
Indri
sulistianingsih.S,KOM



FAKULTAS TEKNIK
JURUSAN SISTEM KOMPUTER
UNIVERSITAS PEMBANGUNA PANCA BUDI
MEDAN
2014
LAPORAN PRAKTIKUM
KOMPUTER GRAFIK
Kelas
TI4D
SORE



2

KATA PENGANTAR

Sebelumnya kami mengucapkan puji dan syukur kehadirat TUHAN YANG MAHA
ESA yang telah melimpahkan rahmat dan karunianya kepada kami, sehingga kami dapat
menyelesaikan Tugas Grafika Komputer ini tepat pada waktunya.
Terdorong oleh rasa ingin tahu, kemauan, kerja sama dan kerja keras, kami kerahkan seluruh
upaya demi mewujudkan ke ingin-tahuan dan tugas dari dosen pembimbing untuk
menyelesaikan tugas ini.
Semoga tulisan ini dapat memenuhi kewajiban kami dalam tugas perkuliahan Grafika
Komputer.
Adapun harapan kami, semoga tulisan ini dapat menambah wawasan pembaca mengenai
Grafika Komputer dan penerjemah bahasa pencitraan OpenGL, dengan maksud nantinya
pembaca mampu untuk memahami apa itu Grafika Komputer, OpenGL, dan lain sebagainya
yang menyangkut objek 2 dimensi (2D) dan 3 dimensi (3D).
Kami menyadari bahwa tulisan ini masih jauh dari sempurna, untuk itu kami mengharapkan
kritik dan saran yang membangun dari pembaca demi kesempurnaan tulisan ini.


Medan , 07 juni 2014
Hormat saya ,


Penulis











3

DAFTAR ISI
Kata Pengantar ..2
Daftar isi ....3
BAB I PENDAHULUAN ......4
I.I. Latar Belakang ..4
I.3. Tujuan Pratikum4
BAB II LANDASAN TEORI ..5
2.1 Pengertian Grafika Komputer .5
2.2 Elemen Dasar Grafika .......6
2.3 Grafik Komputer 2D .....6
2.4 Grafik komputer 3D.....7
2.5 Perbedaan Grafik 2D dan 3D...7
2.6 Transformasi..8
2.7 Color (Warna)...10
2.8 Blending (Pencampuran.....12
2.9 Texture Mapping.13
BAB III HASIL PERCOBAAN.14
3.1 Primitive drawing....14
3.2. Contoh Fungsi 2D (dimensi ).15
3.3. Contoh fungsi 3D ( dimensi ).19
3.4 Syntax Monas..23
BAB IV Analisa Hasil Percobaan.30
4.1 TUJUAN....30
BABV Penutup...30
5.1 Kesimpulan .30
5.2 Saran....30
DAFTAR PUSAKA 31


4

BAB I
Pendahuluan

1.1 Latar Belakang Masalah
Semakin berkembangnya ilmu pengetahuan dan teknologi grafis pada masa sekarang
ini, maka pengetahuan mengenai grafik komputer semakin banyak dipakai. Namun sebelum
kita membahas lebih jauh mengenai grafik komputer, kita akan mengetahui dahulu definisi
sebenarnya tentang apa itu grafik komputer.
Secara umum grafik komputer adalah gambar yang dihasilkan oleh komputer, yang
hasilnya sudah sering kita lihat seperti di majalah dan televisi. Disini dibahas bahwa tiap
karakter yang dihasilkan diambil dari library dari bentuk karakter yang ada pada memori
komputer. Gambar-gambar yang berada pada majalah atau televisi tersebut ada beberapa
yang terlihat sangat natural, sehingga kita para pembaca akan sulit membedakan mereka
buatan atau hasil dari fotografi asli.
Selain itu grafik komputer juga digunakan untuk membuat design dari background
ataupun objek-objek dalam game di komputer. Gambar-gambar yang ada pada game itu
adalah gabungan antara kenyataan dan imajinasi dari programmer-nya. Dalam bidang lain,
grafik komputer digunakan dalam dunia seni, entertainment, dan publikasi. Khususnya
dipakai dalam produksi film, animasi, dan spesial efek. Animasi dibuat dengan membuat
sebuah gambar yang berkelanjutan di film atau videotape. Gambar satu dan yang selanjutnya
hanya mempunyai perbedaan yang tipis ( slightly different ). Bidang-bidang lain yang
menggunakan grafika komputer adalah untuk browsing di World Wide Web, untuk
pengawasan proses, dan banyak lagi.

I.2. Tujuan Pratikum
Adapun tujuan yang akan dicapai dari penulisan laporan ini adalah sebagai berikut :
1. Mengetahui fungsi-fungsi pada openGL.


\



5

BAB II
LANDASAN TEORI
2.1 Pengertian Grafika Komputer
Grafika komputer (Computer graphics) adalah bagian dari ilmu komputer yang
berkaitan dengan pembuatan dan manipulasi gambar secara digital. Bentuk sederhana dari
grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika
komputer 3D, pemrosesan citra (image processing), dan pengenalan pola (pattern
recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data. grafika
komputer tidak hanya mengenai hardware, software maupun berbagai keahlian yang terkait
dengan pengolahan grafis tetapi merupakan keseluruhan keseluruhan hal-hal tersebut.
Grafika komputer berkaitan dengan pengolahan dan pendokumentasian teknologi yang
mengarah kepada komunikasi dan informasi secara akurat dan deskriptif.
Grafika komputer (Computer Graphic) juga dapat diartikan sebagai seperangkat alat
yang terdiri dari hardware dan software untuk membuat gambar, grafik atau citra realistik
untuk seni, game komputer, foto dan animasi komputer dan lain-lain.

Bagian dari grafika komputer meliputi:
1. Geometri: mempelajari cara menggambarkan permukaan bidang
2. Animasi: mempelajari cara menggambarkan dan memanipulasi gerakan
3. Rendering: mempelajari algoritma untuk menampilkan efek cahaya
4. Citra (Imaging): mempelajari cara pengambilan dan penyuntingan gambar.
Teknik-teknik yang dipelajari dalam grafika komputer adalah teknik-teknik
bagaimana membuat atau menciptakan gambar menggunakan komputer. Ada perbedaan yang
sangat mendasar antara foto dan gambar, yaitu pada foto semua detail obyek terlihat
sedangkan pada gambar (baik itu gambar manusia atau gambar komputer) tidak dapat
memperlihatkan semua detail yang ada tetapi hanya detail-detail yang dianggap penting
dalam menunjukkan pola suatu gambar.






6

1. Elemen Dasar Grafika
Ada beberapa elemen dasar dari grafika komputer antara lain:
1. Point
2. Polyline
3. Polygon
4. Filled Polygon ( Face )
5. Gradate Polygon

2.2.1. Point
Point adalah sebuah titik yang digunakan untuk membangun obyek. Setiap titik
dalam obyek 3 dimensi memiliki nilai dalam x, y dan z.

2.2.2. Polyline
Polyline adalah sebuah fungsi yang dibentuk dari beberapa garis yang saling
berhubungan dan membentuk sebuh kurva yang terbuka.

2.2.3 Polygon
Polygon adalah suatu fungsi yang mirip dengan polyline hanya saja hasilnya adalah
kurva tertutup, sedangkan polyline hasilnya kurva terbuka.

2.2.4 Filled Polygon (Face)
Filled Polygon adalah sebuah polygon yang bagian dalamnya diwarnai atau dipenuhi
dengan sebuah warna tertentu. Filled polygon biasanya digunakan sebagai face dari
pembentukan obyekobyek 3 Dimensi.

2.2.5. Gradate Polygon
Gradate polygon adalah sebuah polygon yang bagian dalamnya memiliki warna
warna yang bergradasi dari satu warna ke warna yang lainnya.

2.2 Grafik Komputer 2D
Grafik komputer 2D adalah pembuatan objek gambar dengan menggunakan 2 titik
sebagai acuannya yaitu sumbu x dan y. Grafik 2D ini dapat digunakan dalam berbagai


7

aplikasi yang pada awalnya dikembangkan pada teknologi cetak tradisional dan gambar,
seperti tipografi, kartografi, gambar teknik, iklan, dan lain-lain.
Grafik komputer 2D ini merupakan langkah paling awal dalam membentuk model
objek yang akan dibangun dalam grafik komputer 3D. Dalam aplikasi, gambar dua dimensi
adalah bukan hanya representasi dari objek dunia nyata, tetapi sebuah artefak independen
dengan nilai tambah semantik. Keseluruhan obyek 2D dapat dimasukkan dengan jumlah lebih
dari satu, model yang akan dibentuk sesuai dengan kebutuhan. Tahap rekayasa hasil obyek
2D dapat dilakukan dengan aplikasi program grafis seperti Adobe Photoshop, Corel Draw,
dan lain sebagainya.

2.3 Grafik komputer 3D
Grafik komputer 3D merupakan representasi dari data geometrik 3 dimensi sebagai
hasil dari pemrosesan dan pemberian efek cahaya terhadap grafik komputer 2D. hasilnya
dapat ditampilkan secara real time untuk keperluan simulasi. Prinsip yang dipakai mirip
dengan grafik komputer 2D dalam penggunaan algoritma, grafika vektor, model frame kawat
(wire frame model), dan grafik rasternya.
Grafik komputer 3D sering disebut sebagai model 3D. Namun, model 3D ini lebih
menekankan pada representasi matematis untuk objek 3 dimensi. Obyek pada grafik 3D
adalah sekumpulan titik-titik 3D (x,y,z) yang membentuk suatu face (bidang) yang
digabungkan menjadi satu kesatuan. Face sendiri adalah gabungan titik-titik yang membentuk
bidang tertentu. 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.

2.4 Perbedaan Grafik 2D dan 3D
Perbedaan yang paling mendasar dan terlihat dengan sangat jelas adalah tampilan gambarnya.
Gambar 2D tampil flat adn frame tampilannya cenderung terbatas karena objek gambarnya
disajikan hanya dengan sumbu x dan y. Sedangkan pada grafik 3D, gambar yang ditampilkan
lebih hidup, membentuk ruang, tidak flat, serta framenya lebih luas yang dikarenakan gambar
3D disajikan dengan 3 sumbu, yaitu x, y, dan z.



8

2.5 Transformasi
Transformasi dasar pada objek dua dimensi yang pertama adalah translasi
(translation). Translasi berarti memindahkan suatu objek sepanjang garis lurus dari suatu
lokasi koordinat tertentu ke lokasi yang lain. Transformasi skala (scaling) digunakan untuk
mengubah ukuran suatu objek, sedangkan rotasi (rotation) adalah pemindahan objek menurut
garis melingkar.
Jenis jenis dari transformasi dasar:
1. Translasi
Translasi dilakukan dengan penambahan translasi pada suatu titik koordinat dengan translasi
vektor atau shift vektor, yaitu (t
x
,t
y
), dimana t
x
adalah translation vektor menurut sumbu x,
sedangkan t
y
adalah translation vektor menurut sumbu y. koordinat baru titik yang ditranslasi
dapat diperoleh dengan

X= x + t
x
Y= y + t
y
Dimana (x,y) adalah koordinat asal suatu objek dan (x , y) adalah koordinat baru objek
tersebut setelah ditranslasi.
Kadang-kadang transformasi dinyatakan dalam bentuk matriks, sehingga matriks tranformasi
untuk translasi dapat dinyatakan sebagai berikut :

Dengan demikian translasi dua dimensi dapat ditulis dalam bentuk matriks :
P = P + T

Disamping dinyatakan dalam vektor kolom, matriks transformasi dapat dituliskan dalam
bentuk vektor baris, sehingga menjadi P = [ x y ] dan T = [ t
x
t
y
]. Bentuk vektor kolom adalah
standar dari symbol matematik, yang juga berlaku bagi notasi grafik seperti GKS dan PHIGS.







9

2. Skala
Transformasi skala adalah perubahan ukuran suatu objek. Koordinat baru dapat diperoleh
dengan melakukan perkalian nilai koordinat dengan scaling factor, yaitu (s
x
, s
y
) ,dimana s
x

adalah scaling factor menurut sumbu x, sedangkan s
y
adalah scaling factor menurut sumbu y.
koordinat baru titik yang diskala dapat diperoleh dengan
X

= x + s
x
Y = y + s
y
Dimana (x , y) adalah koordinat asal suatu objek dan (x,y) adalah koordinat setelah diskala.
Matriks transformasi untuk skala dapat dinyatakan sebagai berikut:

Dengan demikian skala dapat juga dituliskan
P = S . P
Scaling factor s
x
dan s
y
dapat diberikan sembarang nilai positif. Nilai lebih dari 1
menyebabkan objek diperbesar, sebaliknya bila nilai lebih kecil dari 1, maka objek akan
diperkecil. Bila s
x
dan s
y
mempunyai nilai yang sama, maka skala disebut uniform scaling.
Nilai yang tidak sama dari s
x
dan s
y
menghasilkan differential scaling, yang biasa digunakan
pada program aplikasi.

3. Rotasi
Rotasi dua dimensi pada suatu objek kan memindahkan objek tersebut menurut garis
melingkar. Pada bidang xy. Untuk melakukan rotasi diperlukan sudut rotasi dan pivot point
(x
p
y
p
) atau rotasi point dimana objek di rotasi, seperti pada gambar 5-3 nilai positif dari
sudut rotasi menentukan arah rotasi berlawanan dengan jarum jam, dan sebaliknya nilai
negative akan memutar objek searah jarum jam.
Rotasi dapat dilakukan dengan pivot point yaitu titik pusat koordinat, seperti pada gambar 5-
4. Pada betuk ini, r adalah jarak konstan dari titik pusat, sudut adalah sudut posisi suatu
titik dengan sumbu horizontal, sedangkan adalah sudut rotasi. Menggunakan trigonometri,
transformasi dapat dinyatakan dengan sudut dan sebagai berikut:
X= r cos ( + ) = r cos cos r sin sin
y = r sin ( + ) = r cos sin + r sin cos


10

sedangkan dengan koordinat polar diketahui bahwa
x = r cos , y = r sin
dengan melakukan substitusi, diperoleh rumus transformasi untuk rotasi suatu titik (x, y)
dengan sudut rotasi sebagai berikut:
x = x cos y sin
y = x sin y cos
matriks transformasi untuk rotasi dapat dinyatakan sebagai berikut:
P = R . P
Rotasi dapat dinyatakan dalam bentuk lain, yaitu matriks. Matriks rotasi dapat dituliskan
dengan

Rotasi suatu titik terhadap pivot point (x
p
y
p
) seperti pada gambar 5-5, menggunakan bentuk
trigonometri, secara umum dapat dituliskan sebagai berikut:
X = x
p
+(x - x
p
) cos (y - y
p
) sin
Y = y
p
+ (x x
p
) sin + (y y
p
) cos

2.6 Color (Warna)
Bentuk gelombang elektromagnetik yang terkandung dalam cahaya yang berasal dari
sumber cahaya. Spectrum warna memiliki panjang gelombang elektomagnetik antara 350-
750 nanometer .
Pembagian Warna
RGB (Red-Green-Blue) : warna dasar yang dijadikan patokan warna secara universal
(primary colors)
CMYK (Cyan-Magenta-Yellow-Black) : Sistem representasi pada warna tinta yang
diterapkan dalam dunia fotografi dan produksi grafika
Sistem Warna Lingkaran (the color wheel) : Digunakan untuk mengkombinasikan dan
mengharmonikan warna pada karya seni dan design


11


Gambar 1 Pembagian warna
Warna dapat didefinisikan secara obyektif/fisik sebagai sifat cahaya yang
dipancarkan, atau secara subyektif/psikologis sebagai bagian dari pengalaman indera
pengelihatan. Secara obyektif atau fisik, warna dapat diberikan oleh panajang gelombang.
Dilihat dari panjang gelombang, cahaya yang tampak oleh mata merupakan salah satu bentuk
pancaran energi yang merupakan bagian yang sempit dari gelombang elektromagnetik.
Dari sekian banyak warna, dapat dibagi dalam beberapa bagian yang sering
dinamakan dengan sistem warna Prang System yang ditemukan oleh Louis Prang pada 1876
meliputi :
1. Hue, adalah istilah yang digunakan untuk menunjukkan nama dari suatu warna, seperti
merah, biru, hijau dsb.
2. Value, adalah dimensi kedua atau mengenai terang gelapnya warna. Contohnya adalah
tingkatan warna dari putih hingga hitam.
3. Intensity, seringkali disebut dengan chroma, adalah dimensi yang berhubungan dengan cerah
atau suramnya warna.

2.7 Lighting (pencahayaan)
Lighting merupakan proses menghitung intensitas cahaya terutama pada 3-Dimensi
point, biasanya diatas suatu permukaan.
Beberapa cara mengatasi masalah pencahayaan, antara lain :
Mengerti persepsi dari cahaya (warna)
Membuat sebuah solusi untuk merepresentasikan dan menghasilkan warna menggunakan
komputer.


12

Mengerti akan pengaruh cahaya dan objek
` Bayangan
Bayangan akan muncul saat cahaya jatuh menyinari suatu objek.
Pada dunia maya, layaknya cahaya, terdapat beberapa jenis bayangan yang dapat dihasilkan
oleh komputer.
Bayangan bekerja sama dengan cahaya untuk memberi kesan natural atau realistic pada scene
yang ada. Bayangan dapat membantu mendefinisikan posisi objek-objek, apakah berada di
lantai atau melayang di udara. Bayangan yang dihasilkan bisa tajam dan solid namun bisa
juga lembut dan buram (blurry). Keberadaan bayangan atau ketiadaannya dapat digunakan
untuk memberi keseimbangan dan kontras pada objek-objek di dalam scene.

2.8 Blending (Pencampuran)
Pencampuran merupakan fungsi yang menggabungkan nilai warna dari sumber dan
tujuan. Operasi campuran yaitu cara yang paling alami untuk mengetahui bahwa komponen
RGB adalah suatu fragmen yang mewakili warna dan komponen alfa adalah suatu fragmen
yang mewakili sifat tidak tembus cahaya.
Faktor sumber dan tujuan
Pada proses pencampuran, nilai cairan warna yang masuk fragmen (sumber)
digabungkan dengan warna yang sesuai dengan nilai saat ini yang disimpan pada piksel
(tujuan) dalam dua tahap proses. Yang pertama menghitung faktor sumber dan tujuan, factor-
faktor tersebut adalah RGBA quadruplets yang masing-masing dikalian dengan komponen-
komponen R, G, B dan nilai-nilai dari sumber dan tujuan. Kemudian komponen yang sesuai
dalam dua set RGBA quadruplets. Secara sistematis, faktor sumber dan tujuan pencampuran
(SR, Sg, Sb, Sa) dan (Dr, Dg, dB, Da) dan nilai RGBA ditandai dengan s atau d dan terakhir
nilai RGBA dicampurkan yang diperoleh dengan (RsSr + RdDr, GsSg + GdDg, BsSb +
BdDb, AsSa + Adda) dimana setiap komponen adalah quadruplets is eventually clamped to
[0,1].
Dengan menggunakan glBlendFunc () untuk persediaan pada dua hal utama, yang
pertama menentukan bagaimana faktor sumber dan tujuan harus dihitung dan yang kedua
menunjukan bagaimana faktor sumber dan tujuan dihitung. Dan untuk proses
pencampurannya harus ada faktor pengaktifannya menggunakan : glEnable (GL_BLEND).
Menggunakan glDisable () dengan GL_BLEND untuk menonaktifkan Pencampuran dan
menggunakan konstan GL_ONE (sumber) dan GL_ZERO (tujuan) memberikan hasil yang


13

sama seperti ketika Pencampuran dinonaktifkan. Nilai-nilai ini bersifat default dengan void
glBlendFunc (GLenum sfactor, GLenum dfactor).
Mengontrol bagaimana nilai warna dalam fragmen yang diproses digabungkan
dengan yang sudah disimpan dalam framebuffer (tujuan). Pendapat sfactor menunjukkan
bagaimana untuk menghitung faktor sumber Pencampuran dan dfactor menunjukkan
bagaimana untuk menghitung faktor tujuan Pencampuran. Campuran faktor yang
diasumsikan terletak pada rentang [0,1]; setelah nilai warna dalam sumber dan tujuan
digabungkan, setelah dihitung kisaran [0,1].

2.9 Texture Mapping
Texture mapping merupakan teknik pemetaan sebuah tekstur pada pola gambar
wireframe, dimana wireframe yang telah dibuat akan ditampilkan memiliki kulit luar seperti
tekstur yang diinginkan. Dalam pemberian tekstur, perlu diperhatikan dasarnya seperti:
1. Menentukan tekstur
a. Menandai tekstur
b. Mengenablekan tekstur
2. Menandai koordinat tekstur pada vertek
3. Menentukan parameter tekstur














14

BAB III
HASIL PERCOBAAN

3.1 Primitive drawing

Penghasilan gambar pada grafika komputer menggunakan primitif grafik dasar.
Primitif ini memudahkan untuk menggambar pada layar monitor sebagaimana penggunaan
persamaan geometrik sederhana. Contoh primitif grafik dasar adalah :
o Titik
o Garis, Segiempat
o Kurva, Lingkaran, ellipse, kurva bezier, kurva lainnya
o Fill area
o Text


Objek kompleks dapat dibuat dengan kombinasi dari primitif ini. Adapun contoh grafik
primitif yang lain adalah :
o Poligaris yaitu urutan garis lurus yang saling terhubung.
o Teks adalah bentuk bahasa tulisan dengan simbol-simbol tertentu. Teks merupakan
kumpulan lebih dari dua karakter.
o Citra raster adalah gambar yang dibuat dengan piksel yang membedakan bayangan 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.


15

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.

3.2. Contoh Fungsi 2D (dimensi )

#include <GL/glut.h>
#include <math.h>

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);
for (i=0; i<n; i++)
{
glVertex2i(pnt[i].x,pnt[i].y);


16

}
glEnd();
}

void fillPolygon (point2D_t pnt[], int n, color_t color)
{
int i;
setColor(color);
glBegin(GL_POLYGON);
for (i=0; i<n; i++)
{
glVertex2f(pnt[i].x, pnt[i].y);
}
glEnd();
}

void userdraw()
{

point2D_t
batang[4]={{-5,-190},{-5,0},{5,0},{5,-190}};
color_t biru ={0,0,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,0};
fillPolygon(pot,4, hitam);
drawPolygon(pot,4);



17

point2D_t
pot2[6]={{-80,-160},{-50,-160},{-50,-190},{-60,-190},{-60,-170},{-80,-170}};
color_t hitam3 ={0,0,0};
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,0};
fillPolygon(pot3,4, hitam2);
drawPolygon(pot3,4);



static int tick=0;
point2D_t shape[360];
double srad,r;
for(int s=0; s<360; s++)
{
srad =(s+tick)*3.14/360;
r=80*sin(200*srad);
shape [s].x = (float)(r*cos(100*srad));
shape [s].y = (float)(r*sin(100*srad));
color_t merah ={1,0,0};
fillPolygon(shape,1, merah);
}
drawPolygon(shape, 360);
}

void display(void)
{


18

//clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
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;
}










19

Hasilnya :





3.3. Contoh fungsi 3D ( dimensi )

#include <Windows.h>
#include <iostream>
#include <gl\GL.h>
#include <gl\GLU.h>
#include <gl\glut.h>
#include <math.h>
void cube()
{
//menggambar kubus dan transformasi tarnslasi ke titik 0.5 0.5 0.5 dan skala 1 1 1
glPushMatrix();


20

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);
}


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);
}



21


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();
//startDrawing
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
cube();//memanggil fungsi menggambar kubus
glFlush();//mengirim smua objek untuk dirender
}



22


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();
}
Hasilnya :





23


3.4 Syntax Monas
#include <GL/glut.h>
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_LINE_LOOP);
for (i=0; i<n; i++)
{
glVertex2i(pnt[i].x,pnt[i].y);
}
glEnd();
}

void fillpolygon(point2D_t pnt[],int n,color_t color)
{


24

int i;
setColor(color);
glBegin(GL_POLYGON);
for (i=0; i<n; ++i)
{ glVertex2f(pnt[i].x, pnt[i].y);
}
glEnd();
}

void userdraw(void)
{

point2D_t
petakdasar[4]={{0,0},{0,80},{350,80},{350,0}};
color_t hijau ={0,1,0};
fillpolygon(petakdasar, 4, hijau);
drawPolygon(petakdasar,4);

point2D_t
tangga[4]={{10,10},{50,50},{310,50},{340,10}};
color_t merah ={1,0,0};
fillpolygon(tangga, 4, merah);
drawPolygon(tangga,4);


point2D_t
petaktengah1[4]={{110,50},{100,70},{260,70},{250,50}};
color_t kuning ={1,1,0};
fillpolygon(petaktengah1, 4, kuning);
drawPolygon(petaktengah1,4);



25

point2D_t
petaktengah2[4]={{100,70},{80,90},{280,90},{260,70}};
color_t kuning2 ={1,1,0};
fillpolygon(petaktengah2, 4, kuning2);
drawPolygon(petaktengah2,4);

point2D_t
petaktengah3[4]={{80,90},{70,110},{290,110},{280,90}};
color_t kuning3 ={1,1,0};
fillpolygon(petaktengah3, 4, kuning3);
drawPolygon(petaktengah3,4);


point2D_t
batang2[4]={{160,510},{160,530},{200,530},{200,510}};
color_t hitam4 ={0,0,0};
fillpolygon(batang2, 4, hitam4);
drawPolygon(batang2,4);


point2D_t
batang[4]={{150,120},{170,520},{190,520},{210,120}};
color_t putih2 ={1,1,1};
fillpolygon(batang, 4, putih2);
drawPolygon(batang,4);

point2D_t
petaktengah4[4]={{70,110},{70,120},{290,120},{290,110}};
color_t hitam3 ={0,0,0};
fillpolygon(petaktengah4, 4, hitam3);
drawPolygon(petaktengah4,4);


26



point2D_t
segitiga[3]={{170,530},{180,580},{190,530}};
color_t kuning4 ={1,1,0};
fillpolygon(segitiga, 3, kuning4);
drawPolygon(segitiga,3);


point2D_t
bayangbatang[4]={{160,530},{160,535},{200,535},{200,530}};
color_t putih3 ={1,1,1};
fillpolygon(bayangbatang, 4, putih3);
drawPolygon(bayangbatang,4);

point2D_t
bayangbatang2[4]={{200,510},{200,535},{203,535},{203,510}};
color_t putih4 ={1,1,1};
fillpolygon(bayangbatang2, 4, putih4);
drawPolygon(bayangbatang2,4);

point2D_t
tanggatgh1[4]={{140,10},{140,50},{150,50},{150,10}};
color_t hitam ={0,0,0};
fillpolygon(tanggatgh1, 4, hitam);
drawPolygon(tanggatgh1,4);

point2D_t
tanggatgh2[4]={{210,10},{210,50},{220,50},{220,10}};
color_t hitam2 ={0,0,0};
fillpolygon(tanggatgh2, 4, hitam2);


27

drawPolygon(tanggatgh2,4);


point2D_t
tangga2[4]={{10,10},{50,50},{310,50},{340,10}};
drawPolygon(tangga2,4);

point2D_t
petaktengah11[4]={{110,50},{100,70},{260,70},{250,50}};
drawPolygon(petaktengah11,4);

point2D_t
petaktengah22[4]={{100,70},{80,90},{280,90},{260,70}};
drawPolygon(petaktengah22,4);

point2D_t
petaktengah33[4]={{80,90},{70,110},{290,110},{280,90}};
drawPolygon(petaktengah33,4);

point2D_t
batang3[4]={{150,120},{170,520},{190,520},{210,120}};
drawPolygon(batang3,4);

point2D_t
anaktangga[4]={{150,40},{150,45},{210,45},{210,40}};
drawPolygon(anaktangga,4);

point2D_t
anaktangga2[4]={{150,30},{150,35},{210,35},{210,30}};
drawPolygon(anaktangga2,4);



28

point2D_t
anaktangga3[4]={{150,20},{150,25},{210,25},{210,20}};
drawPolygon(anaktangga3,4);

point2D_t
anaktangga4[4]={{150,10},{150,15},{210,15},{210,10}};
drawPolygon(anaktangga4,4);


}
void display(void)
{
//clear screen
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(500,640);
glutCreateWindow("MONUMEN NASIONAL JAKARTA");
glClearColor(0.0,0.0,1.0,0.0);
gluOrtho2D(0.,350.,-5.,600.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}


29


Hasilnya :




















30

BAB IV
Analisa Hasil Percobaan
4.1 TUJUAN

1. Agar kita mengetahui fungsi-fungsi dari open GL
2. Mengkaji beberapa pembuatan grafik menggunkan bahasa pemograman
menggunakan bahassa aplikasi dan bahasa pemograman


BAB V
Penutup
5.1. Kesimpulan

Grafika komputer akhir-akhir ini mulai dirasa sangat penting dan mencakup hampir
semua bidang kehidupan seiring dengan semakin pentingnya sistem komputer dalam berbagai
kegiatan. Grafika komputer merupakan gambar atau grafik yang dihasilkan oleh komputer.
Teknik-teknik yang dipelajari dalam grafika komputer adalah teknik-teknik bagaimana
membuat atau manciptakan gambar dengan menggunakan komputer, salah satunya adalah
Teknik Transformasi tiga dimensi yaitu suatu model atau bentuk atau teknik memindahkan
atau mengubah nilai posisi objek dalam sistem koordinat tiga dimensi. Pemindahan objek ini
dapat diartikan sebagai pemindahan titik. Transformasi tiga dimensi ini mencakup proses
translasi, penskalaan, rotasi, dll.
Dari laporan tugas ini diketahui cara-cara memindahkan polygon dengan GL Translatef,
memutar objek dengan GL Rotatef, membuat polygon tersebut lebih besar atau lebih kecil
dengan menggunakan GL Scalef. Di samping perintah-perintah yang kami sebutkan di atas,
masih banyak lagi objek-objek yang dapat dihasilkan dengan menggunkan transformasi tiga
dimensi.


5.2. Saran

Dari pemaparan di atas maka penulis menyarankan kepada pembaca agar lebih
memperdalam lagi ilmu tentang grafika komputer untuk menghasilkan suatu grafik
atau gambar yang menarik.






31


DAFTAR PUSAKA

http://elsa-rachmanto.blogspot.com/2013/05/penghasilan-gambar-padagrafika-komputer.html
http://ariatmancool.blogspot.com/2013/05/makalah-tentang-grafika-komputer.html
http://ebookbrowsee.net/laporan-pemandangan-3d-docx-d375288541
http://rusdiary.wordpress.com/2011/09/24/apa-itu-komputer-grafik-oo%E2%80%99/
http://four07.wordpress.com/2013/09/13/materi-komputer-grafik/

Anda mungkin juga menyukai