Professional Documents
Culture Documents
Pengusul :
Anisya, S. Kom., M. Kom
NIDN. 1005079101
DAFTAR ISI
BAB II
BAB III
BAB IV
BAB V
TRANSFORMASI 3 DIMENSI.....................................................................26
5.1 Transformasi 3D ................................................................................26
5.2 Translasi 3D ......................................................................................26
5.3 Scaling 3D.........................................................................................27
5.4 Rotation 3D.......................................................................................27
5.5 OpenGL Transform Operasi ................................................................29
5.6 Komputer Grafis Menggunakan VB 6.0 ................................................29
5.6.1 Membuat Garis Menggunakan VB 6.0........................................29
5.6.2 Sintaks Garis & Lingkaran........................................................34
BAB VI
BAB VII
iv
Nama Matakuliah
Kode / SKS
Semester
Sifat Matakuliah
Prasyarat
Deskripsi Matakuliah
:
:
:
:
:
:
Komputer Grafis
TIS5623 / 3
V
Wajib
Metode Numerik
Mata kuliah ini mengajarkan tentang pembuatan dan manipulasi gambar (visual) secara
digital. Yang sebelumnya bentuk sederhana dari grafika komputer 2D sekarang sudah
berkembang menjadi grafika komputer 3D. Setelah menjalani matakuliah ini mahasiswa
diharapkan mampu memahami prinsip dan metode dasar dalam manipulasi gambar. Dan
mampu mengimplementasian dalam bahasa pemrograman OpenGL. serta mampu
memanfaatkan tool yang tersedia dalam memanipulasi grafik 2D dan 3D.
Matakuliah ini diberikan pada semester 5 dan bersifat wajib bagi seluruh mahasiswa
jurusan Teknik Informatik
7. Tujuan Pembelajaran
:
Setelah menyelesaikan Mata Kuliah Komputer Grafis , setiap mahasiswa diharapkan
Mampu merepresentasi dan transformasi objek 2-D dan objek 3-D.
menguasai tentang konsep dan teori pengembangan sistem berbasis grafik
menguasai tentang prinsip dan teknik manipulasi gambar.
8. Outcome Pembelajaran :
a. Knowledge and Understanding
1) Memiliki pengetahuan, wawasan serta pemahaman terhadap konsep sistem berbasis
grafik.
2) Mampu mengimplementasikan prinsip dan teknik dalam memanipulasi gambar.
3) Mampu merepresentasikan dan mentransformasi grafik 2D dan 3D menggunakan
bahasa pemrograman OpenGL.
4) Mampu menerapkan prinsip komunikatif dalam bekerja mandiri , dan atau dengan
kelompok, untuk menyelesaikan suatu pekerjaan dengan efektif dan efisien
5) Mampu berkomunikasi secara lisan maupun tulisan untuk menyampaikan ide,usulan,
gagasan maupun transfer pengetahuan dalam bidang Informatika kepada orang lain
6) Memiliki wawasan teknologi dan sosial guna menganalisa efek solusi berbasis ICT
bagi perusahaan, masyarakat dan komponen lain yang terkait
7) Mampu menganalisa, memodelkan masalah dan mengimplementasikan solusi yang
adaptable, changable dan kompetitif untuk menghasilkan suatu sistem informasi yang
memenuhi standar mutu yang ditetapkan.
v
Metode
Pembelajaran
3
Ceramah dan
Diskusi Kelas
Pendahuluan
- Penjelasan tentang RPKPS,
- SAP dan
- Kontrak Kuliah Komputer Grafis
- Pengenalan matakuliah Komputer
Grafis
Konsep pembuatan gambar Tutorial,
dengan OpenGL
Diskusi dan
- Pengenalan OpenGL
Tanya Jawab
- Penggambaran
objekobjek
sederhana dengan OpenGL
- Algoritma Clipping
- Pengembangan Class dalam
OpenGL
Estimasi
Waktu
(Menit)
4
1x3x
50
Media
1x3x
50
Notebook,
LCD,
Papan tulis
5
Notebook,
LCD,
Papan tulis
vii
5,6
Pendahuluan
Kurva-kurva
parametrik
- Bentuk-bentuk parametrik dari
kurva
- Super-elips
Kurva-kurva parametrik
- Koordinat Polar
- Kurva 3 dimensi
Representasi
Grafik
dalam
bentuk vector
- Pengulangan tentang vektor
- Representasi dari objek-objek
geometri
Algoritma perpotongan objek
- Perpotongan dua garis
- Perpotongan antara garis dan
poligon
- Perpotongan antara poligon
Transformasi objek 2 dimensi
- Pengantar transformasi
- Transformasi affin 2 dimensi
- Sifat-sifat transformasi affin 2
dimensi
Transformasi objek 3 dimensi
- Transformasi affin 3 dimensi
- Sifat-sifat transformasi affin 3
dimensi
- Relasi antara berbagai sistem
koordinat
Tutorial,
Diskusi dan
Tanya Jawab
1x3x
50
Notebook,
LCD,
Papan tulis
Tutorial,
Diskusi dan
Tanya Jawab
1x3x
50
Notebook,
LCD,
Papan tulis
Tutorial,
Diskusi dan
Tanya Jawab
2x3x
50
Notebook,
LCD,
Papan tulis
Tutorial,
Diskusi dan
Tanya Jawab
1x3x
50
Notebook,
LCD,
Papan tulis
Pemodelan
benda
padat Tutorial,
dengan jaring polygonal
Diskusi dan
- Pengenalan jaring polygonal
Tanya Jawab
- Sifat-sifat jaring poligonal
- Bekerja dengan jaring poligonal
- Representasi benda padat dengan
jaring polygonal
1x3x
50
Notebook,
LCD,
Papan tulis
10,11,12
1x3x
50
Notebook,
LCD,
Papan tulis
Tutorial,
Diskusi dan
Tanya Jawab
viii
Visualisasi 3 dimensi
- Konsep kamera
- Jenis-jenis proyeksi
- Proyeksi geometri
- Studi kasus
- Proyeksi geometri dalam OpenGL
Tutorial,
Diskusi dan
Tanya Jawab
3x3x
50
Notebook,
LCD,
Papan tulis
14,15
Diskusi dan
Tanya Jawab
3x3x
50
Notebook
16
Bobot
5%
10%
20%
10%
ix
5
6
UTS
UAS
Range Nilai
No.
Range Nilai Angka
25%
30%
Nilai Huruf
80 100
65 - 79
55 64
45 54
0 - 44
BAB I
PENGANTAR GRAFIKA KOMPUTER
1.1. Definisi Komputer Grafik
Bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi gambar
(visual) secara digital.
Ilmu komputer pembuatan Gambar (Visual) <--> Digital
Bentuk sederhana dari grafika komputer,
Computer Graphics 2 D (2Dimensi) Computer Graphics 3 D (3Dimensi) Image
Processing Pattern Recognition
1.2. 2 Dimensi
BAB II
PENGENALAN KONSEP DEV C++
2.1. Sekilas Mengenai OpenGL
OpenGL (Open Graphics Library) adalah suatu spesifikasi grafik yang low-level yang
menyediakan fungsi untuk mempermudah pekerjaan atau untuk keperluan keperluan
pemrograman grafis (Graphics Programming / GP), termasuk grafik primitif (titik, garis, dan
lingkaran). OpenGL(Open Graphic Library) adalah sebuah library terdiri dari berbagai macam
fungsi dan biasanya digunakan untuk menggambar sebuah objek 2D atau 3D. OpenGL bersifat
Open-Source, multi-platform dan multi-language.
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,SGI, Linux, frreBSD dan sistem
operasi lainnya.
Sebelumnya, OpenGL dirancang untuk dimanfaatkan pada pemrograman C/C++, namun seiring
dengan berjalannya waktu, OpenGL ini mampu dapat dimanfaatkan pada berbagai jenis bahasa
pemrograman seperti Java, Visual, Basic, Delphi, dan sebagainya. Untuk menggunakan
OpenGL dalam compiler bahasa pemrograman misalnya C++, dibutuhkan instalasi library
tertentu. GLUT (OpenGL Utility Toolkit) merupakan salah satu library dari pengembangan
OpenGL untuk sistem windows. GLUT didesain untuk membuat program OpenGL yang
berukuran kecil sampai medium. GLUT tidak dapat secara langsung digunakan, karena
membutuhkan beberapa file tambahan antara lain : glut.h, glut.lib, dan glut32.dll yang disimpan
pada direktori tertentu.
Jika langkah-langkah yang telah anda lakukan sesuai dengan yang seharusnya, maka
hasilnya akan terlihat seperti berikut.
Logikanya :
Artikan sendiri apa pengaruh dari penetapan angka yang digaris bawahi tersebut.
Diatas terdapat glVertex3f dan glVertex2f. 2 dan 3 itu maksudnya adalah jumlah sumbunya. 2 (x
dan y) sedangkan 3 (x, y, dan z).
Semua perintah yang ada pada opengl diawali dengan gl dan diikuti dengan huruf kapital pada
setiap kata membentuk nama perintah (sebagai contoh glClearColor).
Sebagai contoh pada dua perintah berikut ini :
glVertex3i(1,0,-2);
glVertex3f(1.0, 0.0, -2.0);
glVertex3f(x,y,z);
adalah sama yaitu meletakkan titik di layar pada koordinat x = 1, y = 0 dan z = -2, perbedaannya
yaitu pada perintah pertama menspesifikasikan titik dengan tipe data integer 32-bit, sedangkan
yang kedua dengan tipe data single precision floating point.
The Colour Cube
glVertex3f(0,0,0.0);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
Sleep (1);
}
}
/* shutdown OpenGL */
b. Segitiga
/* OpenGL animation code goes here */
glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glRotatef (theta, 0.0f, 0.0f, 1.0f);
glBegin (GL_TRIANGLES);
glColor3f (1.0f, 0.0f, 0.0f);
glVertex2f (0.0f, 1.0f);
glColor3f (0.0f, 1.0f, 0.0f);
glVertex2f (0.87f, -0.5f);
glColor3f (0.0f, 0.0f, 1.0f);
glVertex2f (-0.87f, -0.5f);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
theta += 1.0f;
Sleep (1);
}
}
/* shutdown OpenGL */
==_SELAMAT BERJUANG_@a.sya==
BAB III
TRANSFORMASI OBJEK 2 DIMENSI
3.4.1
Translasi
Translasi merupakan suatu proses yang menyebabkan perpindahan objek dari satu titik ke
titik lain. Translasi dilakukan dengan penambahan translasi pada suatu titik koordinat dengan
Komputer Grafis / Anisya, S. Kom., M. Kom
10
translasi vector yaitu (trx,try), dimana trx adalah translation vector menurut sumbu x sedangkan
try adalah translasi vector terhadap sumbu y.
Koordinat baru titik yang ditranslasi dapat diperoleh dengan menggunakan rumus:
x = x + trx
y = y + try
(x,y) adalah koordinat asal suatu objek dan (x,y) adalah koordinat baru objek tersebut setelah
ditranslasi.
Berikut contoh transformasi objek. Dengan a=(2,1), b= (4,1),c=(4,3), d=(2,3). Dengan translasi
(Tx,Ty) = (4,3)
a (2,1)
Tx,Ty = 4,3
a (6,4)
a= 2 + 4 = 6
=1+3 =4
b(4,1)
Tx,Ty = 4,3
b(8,4)
b = 4 + 4 = 8
=1+3 =4
c(4,3)
Tx,Ty = 4,3
c(8,6)
b = 4 + 4 = 8
=3+3=6
d(2,3)
Tx,Ty = 4,3
d(6,6)
b = 2 + 4 = 6
=3+3=6
11
3.4.2
Skala
Penskalaan koordinat dimaksudkan untuk menggandakan setiap komponen yang ada pada objek
secara skalar. Berikut contoh kasus dengan skala (dx,dy) = (3,2)
a (2,1)
dx,dy = 3,2
a (6,2)
12
a= 2 * 3 = 6
=1*2 =2
b(4,1)
dx,dy = 3,2
b(12,2)
b = 4 * 3 = 12
=1*2 =2
c(4,3)
dx,dy = 3,2
c(12,6)
b = 4 * 3 = 12
=3*2 =6
d(2,3)
dx,dy = 3,2
d(6,6)
b = 2 * 3 = 6
=3*2 =6
x 2 = s xx 1
y 2 = s yy 1
x s x * x
y s y * y
Komputer Grafis / Anisya, S. Kom., M. Kom
13
3.4.3
Rotasi
Untuk rotasi garis atau polygon, kita membutuhkan sumbu sebagai arah untuk merotasikannya
Nilai x = r cos ,
y = r sin
x = x cos y sin
y = y sin + y cos
14
sx
0
0 x sx x
s y y s y y
Rotation:
x = xcos - ysin
y = xsin + ycos
Translation:
x = x + tx
y = y + ty
t x x x t x
t y t
y
y y
15
CONTOH SOAL :
Translasi dengan Tx,Ty = (4,3)
w (1,2)
x (6,2)
y (5,4)
z (2,4)
Selanjutnya di Skalakan dengan aturan Sx,Sy=(-2,3)
Selanjutnya di Rotasi terhadap sumbu x 30(derajat) = Untuk Nobp Genap
Selanjutnya di Rotasi terhadap sumbu y 30(derajat) = Untuk Nobp Ganjil
PENYELESAIAN :
w (1,2)
Translasi
Tx,Ty = 4,3
a (5,5)
a= 1 + 4 = 5
=2+3 =5
x(6,2)
Tx,Ty = 4,3
b(10,5)
b = 6 + 4 = 10
=2+3 =5
y(5,4)
Tx,Ty = 4,3
c(9,7)
b = 5 + 4 = 9
=4+3=7
z(2,4)
Tx,Ty = 4,3
d(6,7)
b = 2 + 4 = 6
=4+3=7
w (5,5)
Skala
dx,dy = -2,3
w (-10,15)
a= 5 * -2 = -10
= 5 * 3 = 15
x(10,5)
dx,dy = -2,3
x(-20,15)
b = 10 * -2 = -20
16
= 5 * 3 = 15
y(9,7)
dx,dy = -2,3
y(-18,21)
b = 9 * -2 = -18
= 7 * 3 = 21
z(6,7)
dx,dy = -2,3
z(-12,21)
b = 6 * -2 = -12
= 7 * 3 = 21
Untuk Rotasi sesuaikan dengan NoBP saudara
17
BAB IV
ALGORITMA PERPOTONGAN OBJEK
4.1 Clipping
Istilah Kliping (Clipping) merupakan kumpulan guntingan Koran. Clipping berarti juga
memotong objek dengan bentuk tertentu. Untuk Sarana pemotong objek disebut clipping
window.
Dalam konteks grafika komputer, untuk melakukan clipping, kita lebih dulu harus
menentukan bentuk window dan baru kemudian menentukan hanya objek yang terdapat di
dalam window tersebut yang akan ditampilkan.
18
Xmin x Xmax
Ymin y Ymax
dengan :
P1 terletak di dalam clipping window,
karena :
Xmin X1 Xmax
Ymin Y1 Ymax
19
20
Arti Kode
Terletak di dalam window
Terletak di sebelah kiri window
Terletak di sebelah kanan window
Terletak di sebelah bawah window
Terletak di sebelah atas window
Terletak di sebelah kiri atas window
Terletak di sebelah kanan atas window
Terletak di sebelah kiri bawah window
Terletak di sebelah kanan bawah window
Midpoint Subdivision
Contoh :
Asumsi : Sumbu koordinat kartesian
Clipwindow (-100,100,100,-100)
P1(-140,90), P2(160,40)
21
22
23
TUGAS.
Tentukan titik potong pada grafik berikut, dimana clipping windownya berupa persegi.
a. Clip window (-20, 20, 20, -20)
b. P1 (4 , 23) P2 (-4 , -24) = Garis P1 P2
c. P3 (-24 , 5) P4 (22 , -2) = Garis P3 P4
d. P5 (24 , 6) P6 (4 , 23)
= Garis P5 P6
e. P7 (-18 , 2) P8 (10 , 5)
= Garis P7 P8
PENYELESAIAN :
Komputer Grafis / Anisya, S. Kom., M. Kom
24
Garis P1-P2
X1
4
4
4
4
Y1
23
23
23
23
X2
-4
0
2
3
Y2
-24
-1
11
17
xM
0
2
3
4
yM
-1
11
17
20
Garis
P1 - P2
P1 - M
P1 - M1
P1 - M2
Midpoint
M
M1
M2
M3
X1
-4
-4
-4
-4
-4
Y1
-24
-24
-24
-22
-21
X2
0
-2
-3
-3
-3
Y2
-1
-13
-19
-19
-19
xM
-2
-3
-4
-4
-4
yM
-13
-19
-22
-21
-20
Garis
P2 - M
P2 - M1
P2 - M2
P2 - M3
Midpoint
M1
M2
M3
M4
25
BAB V
TRANSFORMASI 3 DIMENSI
5.1 Transformasi 3D
Salah satu sub bagian dari grafika komputer adalah pemodelan objek (object modeling). Pada
dasarnya transformasi adalah memindahkan objek tanpa merusak bentuk. Tujuan transformasi
adalah : Merubah atau menyesuaikan komposisi pemandangan. Memudahkan membuat objek
yang simetris. Melihat objek dari sudut pandang yang berbeda. Memindahkan satu atau beberapa
objek dari satu tempat ke tempat lain, ini biasa dipakai untuk animasi komputer.
Transformasi pada dunia 3 dimensi, pada dasarnya sama dengan transformasi pada 2 dimensi,
hanya pada 3 dimensi kita juga memperhitungkan sumbu Z. Sama seperti pada 2 dimensi, ada
tiga transformasi dasar yang dapat dilakukan yaitu translasi, penskalaan, rotasi. Perbedaannya
adalah pada objek 3 dimensi proses transformasinya dilakukan dengan mempertimbangkan
koordinat yang merupakan besarnya kedalaman dari objek. Transformasi pada 3 dimensi pada
dasarnya sama dengan transformasi pada 2 dimensi, hanya pada 3 dimensi kita juga
memperhitungkan sumbu z. sama seperti pada 2 dimensi, ada 3 transformasi dasar yang
dilakukan terhadap vertex, yaitu: translasi, penskalaan, rotasi. Titik hasil transformasi dapat
diperoleh melalui rumus dibawah ini disebut sebagai Affine Transformation.
Serupa dengan transformasi 2D, yang menggunakan matriks 3 x 3, sedangkan untuk transformasi
3D menggunakan matriks 4 x 4 (X, Y, Z, W)
5.2 Translasi 3D
Titik (X,Y,Z) akan dirubah oleh jumlah Dx, Dy, dan Dz ke lokasi (X, Y, Z)
X ' Dx X
Y ' Dy Y
Z ' Dz Z
X '
Y '
P'
Z '
1
Komputer Grafis / Anisya, S. Kom., M. Kom
26
1 0 0 Dx
0 1 0 Dy
T ( Dx, Dy, Dz )
T
0 0 1 Dz
0 0 0 1
5.3 Scaling 3D
X '
Y '
P'
Z '
1
Sx 0 0 0
0 Sy 0 0
S ( Sx, Sy, Sz )
S
0 0 Sz 0
0 0 0 1
X
Y
P
Z
1
5.4 Rotation 3D
Rotasi 3 dimensi menggunakan sumbu koordinat sebagai pusat perputaran. Dengan demikian ada
3 macam rotasi yang dapat dilakukan, yaitu:
a. Rotasi sumbu x
b. Rotasi sumbu y
c. Rotasi sumbu z
Untuk rotasi 3D, kita perlu memilih sumbu untuk memutar objek. Baik itu sumbu X, sumbu Y,
atau sumbu Z.
27
X '
Y '
P'
Z '
1
cos( ) sin( )
sin( ) cos( )
Rz
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0 cos( ) sin( )
Rx
0 sin( ) cos( )
0
0
0
0
0
0
cos( )
0
Ry
sin( )
0
X
Y
P
Z
1
0
0
Ry ( )
0
0 sin( )
1
0
0 cos( )
0
0
Sekarang bagaimana jika rotasi yang terjadi selain di sekitar salah satu sumbu Cartesian? Ada
dua cara untuk melihat hal ini:
Serangkaian rotasi sekitar sumbu Cartesian, yang dapat dikombinasikan dengan mengalikan
matriks yang sesuai bersama-sama. Sekali lagi, matriks righmost adalah operasi yang terjadi
pertama. Perhatikan bahwa dengan pendekatan ini mungkin ada lebih dari satu kombinasi rotasi
yang menghasilkan hasil akhir yang sama.
Sumbu alternatif rotasi dapat dipilih, selain sumbu Cartesian, dan titik diputar jumlah yang
diberikan tentang sumbu ini. Untuk setiap perubahan orientasi terdapat sumbu dan rotasi unik
sudut tunggal (0 <= theta <= 180 derajat) yang akan menghasilkan rotasi yang diinginkan.
Pendekatan alternatif ini adalah dasar untuk "quaternions", yang tidak mungkin akan dibahas
Komputer Grafis / Anisya, S. Kom., M. Kom
28
lebih lanjut dalam kursus ini. (Quaternions digunakan berat dalam paket WorldToolKit, yang
tidak lagi diproduksi, dan dapat berguna untuk interpolasi rotasi antara dua sudut miring.)
Komposisi ditangani dengan cara yang mirip dengan kasus 2D, mengalikan matriks transformasi
dari kanan ke kiri.
Dalam terjemahan OpenGL, rotasi, dan skala yang dilakukan dengan menggunakan perintah
seperti:
glTranslate{fd} (X, Y, Z) - glTranslatef (1,0, 2,5, 3,0)
glRotate{df} (Angle, X, Y, Z) - glRotatef (60,0, 0,0, 0,0, 1,0)
glScale{df} (X, Y, Z) - glScalef (1,0, 1,5, 2,0)
Apa perintah ini dilakukan dalam praktek adalah untuk menghasilkan matriks transformasi yang
sesuai untuk operasi yang diminta, kalikan dengan matriks apapun saat ini di atas matriks
tumpukan sedang aktif, dan mengganti matriks di atas tumpukan dengan hasilnya. Jika Anda
ingin menghitung dan menyimpan hasil dari serangkaian kompleks transformasi, satu
pendekatan adalah untuk mendorong sebuah matriks identitas ke stack, melakukan setiap operasi
pada gilirannya, dan kemudian menyimpan salinan hasil dari puncak stack menjadi variabel
global atau statis, (mungkin muncul itu dari tumpukan jika tidak akan dibutuhkan di sana
segera.)
29
b. Jika tampilan vb 6.0 anda sudah seperti tampilan di atas, selanjutnya anda atur properties
dari form tersebut, seperti dibawah ini.
Form1
Caption
Membuat Garis
Form1
StartupPosition
CenterScreen
Selanjutnya menambahkan listing program kedalam form, dengan cara klik double pada area
kosong. Jika itu telah anda lakukan, maka akan muncul
30
. Tampilan selanjutnya
Untuk melihat hasilnya, terlebih dahulu kita klik di area yang kosong didalam form. Untuk
mengetahui arti dari scale (0 , 70) (70 , 0), anda ganti aja angkanya sesuai yang anda mau dan
amati perubahannya.
Hasilnya :
31
c. Jika lokasi penyimpanannya sudah dipilih, klik Save untuk menyimpan form.
d. Dan klik Save untuk menyimpan Project.
32
b. Pilih Open
Form2
Caption
Membuat Kotak
Form2
StartupPosition
CenterScreen
d. Untuk melihat hasilnya, kita harus ganti Startup Object nya terlebih dahulu (Klik Kanan
Project1 Pilih Project1 Propertis Pada Startup Object Kita ganti dengan
Form2).
33
f. Hasilnya :
5.6.2
a. Line Method adalah metode yang digunakan untuk membuat garis horizontal, vetikal,
atau diagonal.
Sintaks:
ObjectName.Line(x1,y1)-(x2,y2),Color,[B][F]
Cara membuat :
Private Sub Form_Click()
Scale (0, 90)-(90, 0)
Line (12, 0)-(22, 45), vbBlue
Komputer Grafis / Anisya, S. Kom., M. Kom
34
b. Circle Method
Circle Method adalah metode yang digunakan untuk menggambar lingkaran.
Sintaks:
ObjectName.Circle(x,y),Radius,Color
Cara membuat :
Private Sub Form_Click()
Circle (2000, 1000), 800
End Sub
TUGAS :
Buatkan coding vb 6.0 untuk menghasilkan gambar seperti dibawah ini (Persegi Panjang,
Lingkaran, dan Garis Miring) :
35
BAB VI
PEMODELAN BENDA PADAT DENGAN JARING POLYGONAL
36
37
a. Vertex
Vertex adalah representasi sebuah titik ke dalam bidang tiga dimensi. Vertex tunggal disebut
juga vertices. Vertex maupun vertices jika dalam bahasa sehari hari sering disebut sebagai
simpul.
b. Edge
Edge dalam bahasa inggris berarti tepi. Tepi atau edge dalam permodelan grafik ini merujuk
pada garis yang menghubungkan dua vertices.
c. Segitiga
tiga buah vertex yang saling berhubungan satu sama lain membentuk sebuah bidang datar
(plane) segitiga, inilah yang merupakan objek dasar dalam permodelan poligonal.
d. Poligon
seperti yang sudah dibahas diatas, poligon merupakan sebuah bangun datar yang memiliki
banyak sudut. Namun dalam permodelan tiga dimensi, poligon merujuk pada kumpulan dari
segitiga segitiga yang membentuk bangun datar lain, atau bahkan bangun ruang yang kasar.
Poligon yang lebih kompleks dapat membuat objek yang terdiri lebih dari 3 simpul.
Sekelompok poligon, terhubung satu sama lain dengan simpul bersama, umumnya disebut
sebagai elemen. Setiap poligon yang membentuk elemen disebut wajah (face) atau
permukaan. Poligon adalah kumpulan dari wajah atau permukaan tersebut.
e. Mesh atau wireframe mesh atau wireframe (jala) adalah kumpulan kumpulan dari poligon
yang tersusun dan terhubung sedemikian sehingga membentuk sebuah objek tiga dimensi.
Permodelan poligon dalam grafik tiga dimensi merupakan sebuah cara yang sederhana.
Dalam permodelan poligon ini, sebuah bangun ruang, atau objek tiga dimensi yang akan
dibangun dapat dengan leluasa dibuat karena bagaimanapun juga, prinsip dari permodelan ini
adalah menyusun sedemikian vertex dan tepi tepi dengan bebas, tergantung dari pikiran si
pembuat tersebut.
38
Ruang Euclidean adalah sebuah ruang tiga dimensi dimana setiap titik yang berada di dalam
ruang tersebut memiliki alamat alamat berdasarkan koordinat koordinat.
Seperti yang telah dibahas sebelumnya, obyek dasar yang digunakan dalam pemodelan
poligon ini adalah simpul (vertices), titik dalam ruang tiga dimensi. Dua simpul dihubungkan
oleh sebuah garis lurus menjadi tepi (edge). Tiga simpul, terhubung satu sama lain dengan
tiga tepi, mendefinisikan sebuah segitiga, yang merupakan poligon sederhana dalam ruang
Euclidean.
Interior sudut, Jumlah dari sudut interior sederhana-n gon adalah (n - 2) radian atau (n - 2)
180 derajat. Hal ini karena setiap sederhana-n gon (memiliki "n" sisi) dapat dianggap terdiri
dari (n - 2) segitiga, yang masing-masing memiliki jumlah sudut radian atau 180 derajat.
39
Nama
Sudut
Sifat
Tidak umumnya diakui sebagai poligon, meskipun beberapa
Monogon
Digon
Triangle
Quadrilateral
Pentagon
Hexagon
Heptagon
Hendecagon (or
undecagon)
11
TUGAS :
Buatkan satu program c++ untuk menampilkan poligon dengan banyak sudut tergantung digit
terakhir dari noBP anda.
40
BAB VII
PEMODELAN POLYHEDRA DENGAN JARING POLYGONAL
Polyhedra memiliki beberapa jenis sesuai dengan banyaknya sisi yang dimiliki.
1. Tetrahedron
Penamaan polyhedra ini berasal dari kata tetra- yang berarti empat, karena terdiri atas 4 sisi
poligon berbentuk segitiga. Bentuk ini lebih dikenal sebagai bentuk piramida atau limas
segitiga sama sisi. Memiliki 6 garis penghubung antar sisi serta 4 buah titik sudut.
Dalam OpenGL, fungsi yang dapat dipakai untuk membuat bentuk ini adalah sebagai berikut:
glutWireTetrahedron();
atau
glutSolidTetrahedron();
Gambar 1. Tetrahedron
2. Hexahedron
Nama Hexahedron diambil dari kata hexa yang berarti enam. Polyhedra ini terdiri atas 6 sisi
poligon berbentuk segiempat. Bentuk ini umumnya dikenal sebagai kubus. Memiliki 12 garis
penghubung antara poligon dan 8 titik sudut. Dalam OpenGl, fungsi yang dapat digunakan
adalah:
Komputer Grafis / Anisya, S. Kom., M. Kom
41
glutWireCube(panjangsisi);
Atau
glutSolidCube(panjangsisi);
Parameter panjang sisi dapat berupa bilangan integer, foating point, ataupun double.
Gambar 2. Hexahedron
3. Octahedron
Nama polyhedra ini berasal dari kata octal yaitu delapan, karena terdiri dari 8 sisi poligon.
Polyhedra ini memiliki 12 garis penghubung poligon dan 6 titik sudut.
Fungsi yang dapat dipakai di dalam OpenGL adalah:
glutWireOcatahedron();
atau
glutSolidOctahedron();
Gambar 3. Octahedron
4. Dodecahedron
Polyhedra yang memiliki sisi 12 buah poligon. Poligon-poligon tersebut berupa pentagon, yaitu
polihon yang memiliki 5 garis tepi. Fungsi yang dapat digunakan untuk membuat polyhedra ini
menggunaka OpenGL adalah,
42
glutWireDodecahedron();
atau
glutSolidDodecahedron();
Gambar 4. Dodecahedron
5. Icosahedron
Polyhedra ini memiliki 20 buah sisi poligon yang berbentuk segitiga. Seluruh segitiga yang ada
merupakan segitiga yang kongruen. Fungsi yang dapat dipakai untuk membuat bentuk ini
menggunaka OpenGL adalah,
glutWireIcosahedron();
atau
glutSolidIcosahedron();
Gambar 5. Icosahedron
TUGAS:
Buat sebuah polyhedra sesuai keinginan anda pada kertas milimeter yang telah disediakan.
43
BAB VIII
VISUALISASI 3 DIMENSI
8.1 Konsep Kamera
Rendering adalah proses menghasilkan gambar dari 2D atau 3D model (atau model dalam
apa yang secara kolektif bisa disebut file adegan), dengan program-program komputer. Juga,
hasil model seperti itu bisa disebut render a.
Ini adalah upaya untuk mensimulasikan fenomena visual yang dihasilkan dari karakteristik
optik kamera dan mata manusia. Efek ini dapat meminjamkan unsur realisme untuk adegan,
bahkan jika efeknya hanyalah artefak simulasi kamera.
Secara umum, proses untuk menghasilkan rendering 2D dari objek-objek 3D
melibatkan 5 komponen utama :
1. Geometri
2. Kamera
3. Cahaya
4. Karakteristik Permukaan
5. Algoritma Rendering
Dalam grafika 3D, sudut pandang (point of view) adalah bagian dari kamera. Kamera dalam
grafika 3D biasanya tidak didefinisikan secara fisik, namun hanya untuk menetukan sudut
pandang kita pada sebuah world, sehingga sering disebut virtual camera.
Pada kamera, dikenal field of view yaitu daerah yang terlihat oleh sebuah kamera. Field of
view pada grafika 3D berbentuk piramid, karena layar monitor sebuah komputer berbentuk
segiempat.
Objek-objek yang berada dalam field of view ini akan terlihat dari layar monitor, sedang
objek-objek yang berada di luar field of view ini tidak terlihat pada layar monitor. Field of
view ini sangat penting dalam pemilihan objek yang akan diproses dalam rendering. Objekobjek diluar field of view biasanya tidak akan diperhitungkan, sehingga perhitungan dalam
proses rendering, tidak perlu dilakukan pada seluruh objek.
8.1.1 Cahaya
Sumber cahaya pada grafika 3D merupakan sebuah objek yang penting, karena dengan
cahaya ini sebuah world dapat terlihat dan dapat dilakukan proses rendering. Sumber cahaya
44
ini juga membuat sebuah world menjadi lebih realistis dengan adanya bayangan dari objekobjek 3D yang ada.
Sebuah sumber cahaya memiliki jenis. Pada grafika 3D dikenal beberapa macam sumber
cahaya, yaitu :
a. Point light
Memancar ke segala arah
b. Spotlight
Memancarkan cahaya ke daerah tertentu dalam bentuk kerucut.
c. Ambient light
Cahaya latar/alam. Cahaya latar tersebut dimodelkan mengikuti apa yang terjadi di alam,
dalam keadaan tanpa sumber cahaya sekalipun, benda masih dapat dilihat.
d. Directional light
Memancarkan cahaya dengan intensitas sama ke suatu arah tertentu. Sebuah kamera minimal
terdiri atas:
Sistem lensa
Pemutar film
45
46
dilihat di kubah-seperti Omnimax bioskop. Gambar akan terlihat agak elips. Sudut kata kunci
tidak digunakan dengan proyeksi ini.
47
Proyeksi bola mirip dengan proyeksi fisheye, dalam adegan tersebut diproyeksikan pada
bola. Tapi tidak seperti kamera fisheye, menggunakan koordinat persegi panjang bukan
koordinat kutub; dalam hal ini bekerja dengan cara yang sama seperti pemetaan bola
(map_type 1).
Ini memiliki beberapa manfaat. Pertama, memungkinkan gambar diberikan dengan kamera
bola untuk dipetakan pada bola tanpa distorsi (dengan kamera fisheye, pertama Anda harus
mengubah gambar dari kutub ke koordinat persegi panjang di beberapa editor foto). Juga,
memungkinkan efek seperti "pemetaan lingkungan", sering digunakan untuk simulasi refleksi
di penyaji scanline.
48
DAFTAR PUSTAKA
Bhatia. 2008. Computer Graphics. I. K. International Pvt Ltd
Bunanto, Iwan. 2010. Multimedia Digital - Dasar Teori dan Pengembangannya. Yogyakarta :
Andi Offset
Buss, Samuel R. 2003. 3D Computer Graphics: A Mathematical Introduction with OpenGL.
Cambridge University Press
Foley, James D.
Professional