bahan ajar terseleksi komputer grafis
TRANSCRIPT
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
1/59
Bahan Ajar Terseleksi
Matakuliah : Komputer Grafis (TIS5623)
Semester Ganjil
Pengusul :
Anisya, S. Kom., M. Kom
NIDN. 1005079101
Jurusan Teknik Informatika
Fakultas Teknologi Industri
Institut Teknologi Padang
Agustus 2015
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
2/59
ii
DAFTAR ISI
HALAMAN JUDUL ....................................................................................................i
DAFTAR ISI ............................................................................................................ii
Rencana Program Dan Kegiatan Pembelajaran Semester (RPKPS)..............................v
BAB I PENGANTAR GRAFIKA KOMPUTER ...........................................................1
1.1 Definisi Komputer Grafik ....................................................................1
1.2. 2 Dimensi.........................................................................................1
1.3. 3 Dimensi.........................................................................................1
1.4. Pengolahan Citra vs Grafika Komputer ...............................................2
1.5. Elemen-Elemen Pembentuk Grafik .....................................................2
1.6. Sekilas Pemakaian Grafik Komputer ...................................................3
BAB II PENGENALAN KONSEP DEV C++ .............................................................4
2.1 Sekilas Mengenai OpenGL ..................................................................4
2.2 Penggunaan OpenGL .........................................................................4
BAB III TRANSFORMASI OBJEK 2 DIMENSI ..........................................................10
3.1 Maksud Transformasi 2 Dimensi .........................................................10
3.2 Tujuan Transformasi ..........................................................................10
3.3 Transformasi objek ............................................................................10
3.4 Transformasi koordinat ......................................................................10
3.4.1 Translasi ..................................................................................10
3.4.2 Skala........................................................................................10
3.4.3 Rotasi ......................................................................................14
3.5 Transformation Sebagai Sebuah Matriks..............................................15
BAB IV ALGORITMA PERPOTONGAN OBJEK .........................................................18
4.1 Clipping ............................................................................................18
4.2 Clipping Window / Viewport ...............................................................18
4.2.1 Digital Differential Analyzer(DDA) ClippingTitik ........................18
4.2.2 ClippingGaris ...........................................................................19
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
3/59
iii
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 PEMODELAN BENDA PADAT DENGAN JARING POLYGONAL .......................36
6.1 Pengenalan Jaring Polygonal ..............................................................36
6.2 Macam-Macam Poligon ......................................................................36
6.2.1 Poligon Terbuka........................................................................36
6.2.2 Poligon Tertutup .......................................................................36
6.2.3 Poligon Bercabang ....................................................................37
6.3 Teori Geometris Dari Poligon ..............................................................38
6.4 Sifat-Sifat Jaring Poligonal ............................................................39
BAB VII PEMODELAN POLYHEDRA DENGAN JARING POLYGONAL...........................41
7.1 Jenis-Jenis Polyhedra.........................................................................41
BAB VIII VISUALISASI 3 DIMENSI .........................................................................44
8.1 Konsep Kamera ................................................................................44
8.1.1 Cahaya.....................................................................................44
8.2 Jenis-Jenis Proyeksi ...........................................................................45
8.2.1 Perspektif Proyeksi....................................................................45
8.2.2 Ortografi Proyeksi .....................................................................46
8.2.3 Fisheye Proyeksi .......................................................................46
8.2.4 Ultra Proyeksi Sudut Lebar ........................................................46
8.2.5 Omnimax Proyeksi ....................................................................46
8.2.6 Proyeksi Panoramic ...................................................................47
8.2.7 Proyeksi Silinder .......................................................................47
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
4/59
iv
8.2.8 Proyeksi Bulat...........................................................................47
Daftar Pustaka
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
5/59v
RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN SEMESTER
(RPKPS)
1. Nama Matakuliah : Komputer Grafis
2. Kode / SKS : TIS5623 / 3
3. Semester : V
4. Sifat Matakuliah : Wajib
5. Prasyarat : Metode Numerik
6. Deskripsi Matakuliah :
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.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
6/59vi
8) Menguasai penggunaan teknologi terkini dalam pengembangan sistem informasi
dalam berbagai platform pengembangan perangkat lunak.
b. Intellectual and Skill
1) Mahasiswa mampu menjelaskan konsep dasar dan prinsip dalam perancangan grafika
komputer.
2) Mahasiswa mampu menguraikan kerangka kerja dalam pembuatan aplikasi .
3) Mahasiswa mampu menganalisa kesalahan yang ada dalam aplikasi dan mampu
melakukan kegiatan penanganan terhadap masalah yang dihadapi.
c. Practical Skill
Mahasiswa akan mendapatkan Practical Skill melalui tugas kuliah.
d. Managerial Skill and Attitude
1) Mahasiswa mampu memanfaatkan kesempatan dan peluang yang ada pada
sekitarnya dalam mengembangkan ilmu yang telah diberikan.
2) Mahasiswa mampu memberikan umpan balik kepada kelas.
3) Mahasiswa mengetahui peningkatan dari ilmu dan pengalaman yang mereka miliki.
4) Mahasiswa mendapatkan ilmu bagaimana cara memimpin diskusi dan memimpin
sebuah proyek dalam pembangunan program aplikasi.
9. Materi Pembelajaran
1. Pendahuluan:1.1 Sekilas Pemakaian Grafik Komputer,1.2 Elemen gambar yang dibuat pada grafik computer,1.3 Device tayangan grafik,1.4 Tipe Data dan Device Input.
2. Konsep Dasar OpenGL dan Menggambarkan objek-objek sederhana denganOpenGL,2.1 Algoritma Clipping2.2 Pengembangan Class dalam OpenGL,
3. Pendahuluan Kurva-Kurva Parametrik3.1 Bentuk-bentuk parametric dari kurva,3.2 Super-ellips,
4. Kurva-Kurva Parametrik4.1 Koordinat Polar,4.2 Kurva 3 Dimensi,4.3 Representasi objek geometri dalam bentuk vector,
5. Algoritma perpotongan objek5.1 Perpotongan dua garis5.2 Perpotongan antara garis dan poligon5.3 Perpotongan antara poligon
6. Transformasi objek 2 dimensi6.1 Pengantar transformasi6.2 Transformasi affin 2 dimensi
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
7/59vii
6.3 Sifat-sifat transformasi affin 2 dimensi
7. Transformasi objek 3 dimensi7.1 Transformasi affin 3 dimensi7.2 Sifat-sifat transformasi affin 3 dimensi7.3 Relasi antara berbagai sistem koordinat
8. Pemodelan benda padat dengan jaring polygonal8.1 Pengenalan jaring polygonal8.2 Sifat-sifat jaring poligonal8.3 Bekerja dengan jaring poligonal8.4 Representasi benda padat dengan jaring polygonal
9. Pemodelan polyhedra dengan jaring polygonal9.1 Jenis-jenis polyhedra9.2 Representasi polihedra dengan jaring polygonal
9.3 Representasi bentuk-bentuk spiral dengan jaring polygonal.10. Pemodelan permukaan dengan jaring polygonal
10.1 Bentukimplicit dari permukaan10.2 Vektor normal dari permukaan10.3 Permukaan dan transformasi affin10.4 Bentuk-bentuk umum dari permukaan dan representasinya
11. Visualisasi 3 dimensi11.1 Konsep kamera11.2 Jenis-jenis proyeksi11.3 Proyeksi geometri11.4 Studi kasus
11.5 Proyeksi geometri dalam OpenGL
10. Jadual Kegiatan Mingguan
MingguKe-
Topik ( Pokok Bahasan ) MetodePembelajaran
EstimasiWaktu(Menit)
Media
1 2 3 4 5
1 Pendahuluan- Penjelasan tentang RPKPS,- SAP dan- Kontrak Kuliah Komputer Grafis
-Pengenalan matakuliah KomputerGrafis
Ceramah danDiskusi Kelas
1 x 3 x50
Notebook,LCD,Papan tulis
2 Konsep pembuatan gambardengan OpenGL- Pengenalan OpenGL- Penggambaran objek- objek
sederhana dengan OpenGL-AlgoritmaClipping- Pengembangan Class dalam
OpenGL
Tutorial,
Diskusi dan
Tanya Jawab
1 x 3 x50
Notebook,LCD,Papan tulis
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
8/59viii
3 Pendahuluan Kurva-kurvaparametrik- Bentuk-bentuk parametrik dari
kurva- Super-elipsKurva-kurva parametrik- Koordinat Polar- Kurva 3 dimensi
Tutorial,Diskusi danTanya Jawab
1 x 3 x50
Notebook,LCD,Papan tulis
4 Representasi Grafik dalambentuk vector- Pengulangan tentang vektor- Representasi dari objek-objek
geometri
Tutorial,Diskusi danTanya Jawab
1 x 3 x50
Notebook,LCD,Papan tulis
5,6 Algoritma perpotongan objek
-Perpotongan dua garis
- Perpotongan antara garis danpoligon
- Perpotongan antara poligonTransformasi objek 2 dimensi- Pengantar transformasi- Transformasi affin 2 dimensi- Sifat-sifat transformasi affin 2
dimensi
Tutorial,
Diskusi danTanya Jawab
2 x 3 x
50
Notebook,
LCD,Papan tulis
7 Transformasi objek 3 dimensi
- Transformasi affin 3 dimensi
-
Sifat-sifat transformasi affin 3dimensi
- Relasi antara berbagai sistem
koordinat
Tutorial,Diskusi danTanya Jawab
1 x 3 x50
Notebook,LCD,Papan tulis
8 Ujian Tengah Semester
9 Pemodelan benda padat
dengan jaring polygonal
- Pengenalan jaring polygonal
-Sifat-sifat jaring poligonal
- Bekerja dengan jaring poligonal
- Representasi benda padat dengan
jaring polygonal
Tutorial,
Diskusi dan
Tanya Jawab
1 x 3 x50
Notebook,LCD,Papan tulis
10,11,12 Pemodelan polyhedra dengan
jaring polygonal
- Jenis-jenis polyhedra
Tutorial,
Diskusi dan
Tanya Jawab
1 x 3 x50
Notebook,LCD,Papan tulis
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
9/59ix
- Representasi polihedra dengan
jaring polygonal
-
Representasi bentuk-bentuk spiraldengan jaring polygonal.
Pemodelan permukaan dengan
jaring polygonal
- Bentuk implicit dari permukaan
-Vektor normal dari permukaan
- Permukaan dan transformasi affin
- Bentuk-bentuk umum dari
permukaan dan representasinya
13 Visualisasi 3 dimensi
- Konsep kamera
- Jenis-jenis proyeksi
- Proyeksi geometri
- Studi kasus
- Proyeksi geometri dalam OpenGL
Tutorial,
Diskusi dan
Tanya Jawab
3 x 3 x50
Notebook,LCD,Papan tulis
14,15 Pembuatan Project Grafika
Komputer
Diskusi dan
Tanya Jawab
3 x 3 x50
Notebook
16 Ujian Akhir Semester
11. Evaluasi Hasil Pembelajaran
Evaluasi hasil pembelajaran pada matakuliah Interaksi Manusia dan Komputer ini dilakukan
dengan berbagai macam cara penilaian sebagai berikut :
1. Penilaian terhadap kehadiran dan partisipasi di kelas
2. Penilaian terhadap tugas, quiz, dan PR
3. Penilaian terhadap dokumen laporan diskusi kelompok
4. Penilaian terhadap hasil kerja kelompok
5. Penilaian terhadap evaluasi mid test (UTS)6. Penilaian terhadap evaluasi final test (UAS)
Pembobotan :
No. Penilaian Bobot
1 Kehadiran 5%
2 Partisipasi Kelas (diskusi Penyelesaian Masalah) 10%
3 Tugas dan PR 20%
4 Quiz 10%
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
10/59x
5 UTS 25%
6 UAS 30%
Range Nilai
No. Range Nilai Angka Nilai Huruf
1 80 100 A
2 65 - 79 B
3 55 64 C
4 45 54 D
5 0 - 44 E
12. Bahan, Sumber Informasi dan Referensi
Sumber Informasi
1) Melakukan diskusi dengan tatap muka langsung atau lewat email.
2) Memanfaatkan kemajuan teknologi informasi dalam mengembangkan ilmu yang telah
didapat dikelas.
Referensia) Buku Teks :
1) Alan Oursland, Using Opengl In Visual C++, Interface Technologies, Inc., 2000.2) Dave Shreiner, Jakie Neider, Opengl Programming Guide, Fifth Edition, Addison
Wesley 20063) Richard S. Wright, Jr., Benjamin Lipchak, Nicholas Haemel, Opengl Superbible
Fourth Edition, Comprehensive Tutorial And Reference, 20074) Shalini Govil-Pai, Sunnyvale, CA, U. S. A. Principles Of Computer Graphics Teory And
Practice Using OpenGL And Maya, Springer, 20045) Tom Mcreynolds, David Blythe, Advanced Graphics Programming Using Opengl,
Elsevier, Addison Wesley, 2005
6) Bhatia, Computer Graphics. I. K. International Pvt Ltd, 20087) Iwan Bunanto, Multimedia Digital - Dasar Teori dan Pengembangannya.Yogyakarta : Andi Offset, 2010
8) Samuel R Buss, 3D Computer Graphics: A Mathematical Introduction withOpenGL. Cambridge University Press, 2003
9) James D Foley, Computer Graphics: Principles and Practice. Addison-WesleyProfessional, 1996
10)Fabio Ganovelli, Introduction to Computer Graphics: A Practical LearningApproach. CRC Press, 2014
11) Jonas Gomes, Computer Graphics: Theory and Practice. CRC Press, 2012
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
11/59
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
Gambar 1.1 Bentuk 2 Dimensi
1.3. 3 Dimensi
Gambar 1.2 Bentuk 3 Dimensi
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
12/59
1.4. Pengolahan Citra vs Grafika Komputer
Pengolahan citra
a. Berorientasi pixel
b. Mengolah suatu gambar
c. Materi nya berisi cara manipulasi gambar untuk menyajikan informasi dari gambar
Grafika komputer
a. Berorientasi vektor
b. Menhasilkan gambar
c. Materi berisi teknik2 cara menggambar
Gambar 1.3 Cara Kerja Grafika Komputer
Graphics Library (GL) perantara aplikasi denganDisplay Hardware (Graphics System).
Application Program = memetakan objek aplikasi ke tampilan / citra dengan memanggil
graphics library.
1.5. Elemen-Elemen Pembentuk Grafik
Gambar 1.4 Elemen-Elemen Pembentuk Grafik
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
13/59
1.6. Sekilas Pemakaian Grafik Komputer
a. Bidang Sains, Teknologi, Bisnis
Dalam bidang ini bentuk grafik dua dimensi (2D) dan tga dimensi (3D) banyak dimanfaatkan
untuk menunjukkan suatu fungsi matematik, fenomena fisis, fungsi ekonomi, histogram,
diagram batang, pie chat, diagram penjadwalan pekerjaan, diagram produksi dll.
b. Bidang Kartografi
Dalam bidang ini, grafika komputer banyak digunakan untuk menyajikan informasi geografis
dan fenomena alamiah lain. Contoh : peta geografi, peta relief, peta eksplorasi minyak dan
pertambangan, peta cuaca, peta kepadatan penduduk dll.
c. Simulasi dan Animasi
Simulasi dan animasi dalam grafika komputer dan citra banyak dipakai untuk membuat film
animasi dan game. Keterkaitan Antara Grafik Komputer dan Pengolahan Citra dalam game
dan film yaitu Grafik Komputer bertujuan menghasilkan citra (lebih tepat disebut grafik atau
image). Sedangkan Pengolahan Citra ini bertujuan untuk memperbaiki kualitas citra pada
grafik agar mudah diinterpretasi oleh manusia atau mesin (dalam hal ini komputer).
d. Computer-Aided Design and Drafting
Dalam CAD, grafika computer biasa digunakan untuk merancang komponen dari sistem
mekanis, elektris, elektromekanis, piranti elektronis maupun piranti lain. Termasuk dalam
kelompok ini adalah struktur bangunan, reaktor kimia, badan mobil, pesawat terbang, kapal
lengkap dengan ruang-ruang yang ada, jaringan komputer. Dalam bidang ini tekanan untama
dari pemakaian grafika komputer adalah untuk memproduksi gambar dengan ketelitian yang
sangat tinggi.
e. Kendali proses (Process Control) - GUI (Graphical User Interface)
Dalam bidang ini grafika computer seolah-olah menyediakan suatu bahasa antarmuka
pemakai (user interfaces) yang baru, karena dialog antara pemakai dan komputer tidak lagi
diketikkan dari keyboard, tetapi pemakai cukup memiliki suatu simbol / icon yang tersedia
pada layar dengan menggunakanmouse,lightpen dll.
f. Seni dan Komersial
Dalam bidang ini, grafika komputer banyak dimanfaatkan untuk pembuatan ulang
(reproduksi) gambar yang memiliki nilai historis tinggi dan penting untuk dilestarikan, seperti
gambar- gambar dari pelukis terkenal. Juga digunakan untuk pembuatan iklan / logo dari
suatu produk
g. Office Automation and Electronic Publishing
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
14/59
Komputer Grafis / Anisya, S. Kom., M. Kom 4
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 danmulti-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.
2.1 Penggunaan OpenGL
1. Persiapkan aplikasi Dev-C++ anda.
2. Mulai dengan klik File
New
Project
Pilih Tab Multimedia
Pilih Open GL.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
15/59
Komputer Grafis / Anisya, S. Kom., M. Kom 5
Gambar 2.1 Awal Project
3. Setelah dipilih OK, kita akan dipandu untuk menentukan dimana lokasi penyimpanan
untuk project tersebut. Terserah anda mau nyimpan filenya dimana.
4. Defaultnya, sudah ditambahkan file main.cpp.
5. Coba anda Compile (Execute Compile).
6. Setelah itu di running (Execute Run).
7. Perhatikan apa yang terjadi.
Gambar 2.2 HasilRunning Program
8. Sekarang coba edit coding yang dalam kotak.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
16/59
Komputer Grafis / Anisya, S. Kom., M. Kom 6
Menjadi coding dibawah ini.
Jika langkah-langkah yang telah anda lakukan sesuai dengan yang seharusnya, maka
hasilnya akan terlihat seperti berikut.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
17/59
Komputer Grafis / Anisya, S. Kom., M. Kom 7
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
dany) sedangkan 3 (x, y, danz).
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 :
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
18/59
Komputer Grafis / Anisya, S. Kom., M. Kom 8
glVertex3f(x,y,z);glVertex3i(1,0,-2);
glVertex3f(1.0, 0.0, -2.0);
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
Gambar 2.2 Warna
TUGAS :
Buatkan coding untuk pembuatan garis vertikal dan segitiga (triangles) dengan warna
dimasing-masing sudut berbeda-beda.
PENYELESAIAN :
a. Garis Vertikal
/* OpenGL animation code goes here */glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glClearColor(1,1,1,0);
glColor3f(1,1,1); //
glBegin(GL_LINES);
glVertex3f(0.10,10.0,13.13);
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
19/59
Komputer Grafis / Anisya, S. Kom., M. Kom 9
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 [email protected]==
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
20/59
Komputer Grafis / Anisya, S. Kom., M. Kom 10
BAB III
TRANSFORMASI OBJEK 2 DIMENSI
3.1 Maksud Transformasi 2 Dimensi
Suatu model atau bentuk atau teknik-teknik memindahkan atau mengubah nilai posisi
objek dalam sistem koordinat dua dimensi. Pemindahan objek ini dapat diartikan sebagai
pemindahan titik.
3.2 Tujuan Transformasi
a. Merubah atau menyesuaikan komposisi pandangan.
b. Memudahkan membuat objek yang simetris
c. Melihat objek dari sudut pandang berbeda
d. Memindahkan satu atau beberapa objek dari satu tempat ke tempat lain, biasanya
digunakan pada animasi komputer.
Ada dua cara yang dapat digunakan untuk mentransformasi gambar yaitu : transformasi objek
dan transformasi koordinat.
3.3 Transformasi objek
Definisinya adalah mengubah koordinat-koordinat dari tiap-tiap titik di objek dengan beberapa
aturan, meninggalkan underlying system koordinat yang tidak bisa di ubah lagi.
3.4 Transformasi koordinat
Definisinya adalah sistem koordinat yang baru di buat sebelumnya merupakan semua titik objek
dalam sistem yang baru.
Transformasi dasar pada objek dua dimensi terdiri dari :
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
{2x2 Matrices} {2D Linear Transformation}
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
21/59
Komputer Grafis / Anisya, S. Kom., M. Kom 11
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=2 +4 = 6
=1 +3 = 4
a (6,4)
b(4,1) Tx,Ty =4,3
b =4 +4 = 8
=1 +3 = 4
b(8,4)
c(4,3) Tx,Ty = 4,3
b =4 +4 = 8
=3 +3 = 6
c(8,6)
d(2,3) Tx,Ty = 4,3
b =2 +4 = 6
=3 +3 = 6
d(6,6)
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
22/59
Komputer Grafis / Anisya, S. Kom., M. Kom 12
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)
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
23/59
Komputer Grafis / Anisya, S. Kom., M. Kom 13
a=2 *3 = 6
=1 *2 = 2
b(4,1) dx,dy =3,2
b =4 *3 = 12
=1 *2 = 2
b(12,2)
c(4,3) dx,dy =3,2
b =4 *3 = 12
=3 *2 = 6
c(12,6)
d(2,3) dx,dy =3,2
b =2 *3 = 6
=3 *2 = 6
d(6,6)
x2 = sxx1 y2 = syy1
ysy
xsx
y
x
*
*
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
24/59
Komputer Grafis / Anisya, S. Kom., M. Kom 14
3.4.3 Rotasi
Untuk rotasi garis atau polygon, kita membutuhkan sumbu sebagai arah untuk merotasikannya
Rotasi P oleh lawan arah jarum jam
Nilai x = r cos ,y = r sin
x = x cos y sin
y = y sin + y cos
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
25/59
Komputer Grafis / Anisya, S. Kom., M. Kom 15
3.5 Transformation Sebagai Sebuah Matriks
Scale:
x = sxx
y = syy
Rotation:
x = xcos - ysin
y = xsin + ycos
Translation:
x = x + tx
y = y + ty
x' = xr+ (x - xr) cos(q) - (y - y r) sin (q)
y' = yr+ (x - xr) sin (q)+(y - yr) cos(q)
ys
xs
y
x
s
s
y
x
y
x
0
0
cossin
sincos
cossin
sincos
yx
yx
y
x
y
x
y
x
ty
tx
y
x
t
t
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
26/59
Komputer Grafis / Anisya, S. Kom., M. Kom 16
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 :
Translasi
w (1,2) Tx,Ty =4,3
a=1 +4 = 5
=2 +3 = 5
a (5,5)
x(6,2) Tx,Ty =4,3
b =6 +4 = 10
=2 +3 = 5
b(10,5)
y(5,4) Tx,Ty = 4,3
b =5 +4 = 9
=4 +3 = 7
c(9,7)
z(2,4) Tx,Ty = 4,3
b =2 +4 = 6
=4 +3 = 7
d(6,7)
Skala
w (5,5) dx,dy =-2,3a=5 *-2 = -10
=5 *3 = 15
w (-10,15)
x(10,5) dx,dy =-2,3
b =10 *-2 = -20
x(-20,15)
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
27/59
Komputer Grafis / Anisya, S. Kom., M. Kom 17
=5 *3 = 15
y(9,7) dx,dy =-2,3
b =9 *-2 = -18
=7 *3 = 21
y(-18,21)
z(6,7) dx,dy =-2,3
b =6 *-2 = -12
=7 *3 = 21
z(-12,21)
Untuk Rotasi sesuaikan dengan NoBP saudara
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
28/59
BAB IV
ALGORITMA PERPOTONGAN OBJEK
4.1Clipping
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 bentukwindow dan baru kemudian menentukan hanya objek yang terdapat di
dalamwindowtersebut yang akan ditampilkan.
Contoh TeknikClipping
Gambar 3.1 Perpotongan Gambar
4.2Clipping Window / Viewport
Fungsiclipping window:
Mengidentifikasi obyek yang akan di-clipdan memastikan bahwa data yang di ambil hanya
yang terletak di dalam clipping window.
BentukClipping window:
a. Segi empat, segi tiga
b. Lingkaran atau elips
c. Poligon dan lain-lain.
4.2.1 Digital Differential Analyzer(DDA)ClippingTitik
Untuk menentukan letak suatu titik didalam
clipping windowmenggunakan rumus sbb:
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
29/59
Xmin x Xmax
Ymin y Ymax
Terdapat 2 buah titik P1(x1,y1) dan P2(x2,y2
dengan:
P1 terletak di dalamclipping window,
karena :
Xmin X1 Xmax
Ymin Y1 Ymax
P2 terletak di luarclipping window, karena :
X2 Xmax
walaupunYmin Y2Ymax,,dan
X2 Xmin
4.2.2 ClippingGaris
Clippingsebuah garis P1-P2 dengan window L,R,T,Bakanberhubungan dengan.garis yang
terletak di dalam windowdangaris di luar window.
Dalam hal ini garis yang ingin kita tampilkan hanya garis yangterdapat di dalam window
(visible)
Sedangkan garis di luar windowakan di buat tidaktampak (invisible).
Setelah garis di-clipping, data garis P1 dan P2 tidak boleh hilang.
Dalam hal ini harus dibuatkan satu copygaris P1dan P2yangterletak di dalam window.
Copygaris inilah yang ditampilkanpada layar.
Gambar 3.2 Clipping Garis
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
30/59
Algoritma ClippingGaris
1.Baca data garis
2.Baca dataclipping window
3. Cek kondisi garis terhadapclipping window
4.ProsesClipping
Kondisi garis terhadap clipping windowdapat:
1. Invisible
Tidak kelihatan, terletak di luar clipping window2. Visible
Terletak di dalam clipping window
3. Halfpartial
Terpotong sebagian oleh clipping window
4. Vollpartial
Terpotong penuh oleh clipping window, garis melintasi clipping window
Gambar 3.3 Kondisi Garis
Untuk kondisi garis, aksi clippingyang perlu dilakukan:
a. Invisible, garis tidak perlu ditampilkan
b. Visible, garis ditampilkan
Visibilitas suatu titik
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
31/59
Pointcode Arti Kode
0000 Terletak di dalamwindow
0001 Terletak di sebelah kiriwindow
0010 Terletak di sebelah kananwindow
0100 Terletak di sebelah bawahwindow
1000 Terletak di sebelah ataswindow
1001 Terletak di sebelah kiri ataswindow
1010 Terletak di sebelah kanan ataswindow
0101 Terletak di sebelah kiri bawahwindow
0110 Terletak di sebelah kanan bawahwindow
a. Titik yangvisible,titik terletak di dalam window
b. Titik yanginvisible,titik terletak di luar window
c. Titik yangvisible,jika nilai point codel,r,t,b =0d. Jika salah satu dari nilai point codel,r,t,b 0, makatitik tersebutdiluarwindow.
Midpoint Subdivision
Contoh:
Asumsi : Sumbu koordinatkartesian
Clipwindow (-100,100,100,-100)
P1(-140,90),P2(160,40)
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
32/59
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
33/59
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
34/59
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 P1P2
c. P3 (-24 , 5)P4 (22 , -2) = Garis P3P4
d. P5 (24 , 6)P6 (4 , 23) = Garis P5P6
e. P7 (-18 , 2)P8 (10 , 5) = Garis P7P8
PENYELESAIAN :
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
35/59
Garis P1-P2
X1 Y1 X2 Y2 xM yM Garis Midpoint
4 23 -4 -24 0 -1 P1 - P2 M
4 23 0 -1 2 11 P1 - M M1
4 23 2 11 3 17 P1 - M1 M2
4 23 3 17 4 20 P1 - M2 M3
X1 Y1 X2 Y2 xM yM Garis Midpoint
-4 -24 0 -1 -2 -13 P2 - M M1
-4 -24 -2 -13 -3 -19 P2 - M1 M2
-4 -24 -3 -19 -4 -22 P2 - M2 M3
-4 -22 -3 -19 -4 -21 P2 - M3 M4
-4 -21 -3 -19 -4 -20
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
36/59
Komputer Grafis / Anisya, S. Kom., M. Kom 26
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 sebagaiAffine 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)
ZDzZ
YDyY
XDxX
'
'
'
atau P' = T * P dimana
1
'
'
'
'Z
Y
X
P
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
37/59
Komputer Grafis / Anisya, S. Kom., M. Kom 27
),,(
10
1
0
0
0
0
1
0
0
0
0
1
DzDyDxTDz
Dy
Dx
T
5.3 Scaling 3D
1
'
'
'
'Z
Y
X
P
),,(
1
0
0
0
0
0
0
0
0
0
0
0
0SzSySxS
Sz
Sy
Sx
S
1
Z
Y
X
P
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.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
38/59
Komputer Grafis / Anisya, S. Kom., M. Kom 28
1
'
'
'
'Z
Y
X
P
1000
0100
00)cos()sin(
00)sin()cos(
Rz
1000
0)cos()sin(0
0)sin()cos(0
0001
Rx
)(
1000
0)cos(0)sin(
0010
0)sin(0)cos(
RyRy
1
Z
Y
X
P
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 rotasiyang 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
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
39/59
Komputer Grafis / Anisya, S. Kom., M. Kom 29
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.
5.5 OpenGL Transform Operasi
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.)
5.6 Komputer Grafis Menggunakan VB 6.0
5.6.1 Membuat Garis Menggunakan VB 6.0
a. Persiapkan aplikasi visual basic 6.0 anda
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
40/59
Komputer Grafis / Anisya, S. Kom., M. Kom 30
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
Anda modifikasi coding diatas seperti berikut
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
41/59
Komputer Grafis / Anisya, S. Kom., M. Kom 31
Jika udah selesai, tekan F5 atau klik . 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 :
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
42/59
Komputer Grafis / Anisya, S. Kom., M. Kom 32
Lakukan Penyimpanan Project, dengan cara :
a. Tekan Ctrl + S,
b. Tentukan lokasi penyimpanan
c. Jika lokasi penyimpanannya sudah dipilih, klik Save untuk menyimpan form.
d. Dan klik Save untuk menyimpan Project.
Sekarang kita membuat kotak pada form vb 6.0.
a. Kita masih bekerja di project yang sama, tapi pada form yang berbeda, kita tambahkan
form baru pada project sebelumnya,
Klik Kanan Project Pilih Add Form
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
43/59
Komputer Grafis / Anisya, S. Kom., M. Kom 33
b. Pilih Open
Form2 Caption Membuat Kotak
Form2 StartupPosition CenterScreen
c. Untuk menambahkan coding, sama halnya seperti form sebelumnya,
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).
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
44/59
Komputer Grafis / Anisya, S. Kom., M. Kom 34
e. Setelah itu , tekan F5 atau klik .
f. Hasilnya :
Tugas Anda, Analisa coding berikut,
5.6.2 Sintaks Garis & Lingkaran
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
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
45/59
Komputer Grafis / Anisya, S. Kom., M. Kom 35
Line (22, 0)-(32, 55), vbRed, B
Line (32, 0)-(42, 42), , BF
End Sub
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) :
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
46/59
BAB VI
PEMODELAN BENDA PADAT DENGAN JARING POLYGONAL
6.1 Pengenalan Jaring Polygonal
Sebuah poligon di komputer grafis (generasi gambar) sistem adalah bentuk dua dimensi yang
dimodelkan dan disimpan dalam database. Sebuah poligon dapat berwarna, berbayang dan
bertekstur, dan posisinya dalam database ditentukan oleh koordinat dari simpul (sudut).
Polygon Sebelum masuk pada permodelan tiga dimensi, ada beberapa hal yang harus
dijelaskan secara mendasar, terutama pada poligon itu sendiri Poligon secara literal berarti
banyak sudut. Dapat didefinisikan sebagai bangun datar yang terdiri dari susunan garis
garis yang yang membentuk sebuah sirkuit yang memiliki banyak sudut.
6.2 Macam-Macam Poligon
6.2.1 Poligon Terbuka
Poligon terbuka adalah poligon yang titik awal dan titik akhirnya merupakan titik yang
berlainan (tidak bertemu pada satu titik).
Gambar 5.1 Poligon Terbuka
6.2.2 Poligon Tertutup
Poligon tertutup atau kring adalah poligon yang titik awal dan titik akhirnya bertemu pada
satu titik yang sama.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
47/59
Gambar 5.2 Poligon Tertutup
6.2.3 Poligon Bercabang
Poligon cabang adalah suatu poligon yang dapat mempunyai satu atau lebih titik simpul,
yaitu titik dimana cabang itu terjadi.
Gambar 5.3 Poligon Bercabang
Dalam pembuatan grafis tiga dimensi, pemodelan poligonal adalah metode untuk
menciptakan model 3D dengan menghubungkan segmen garis melalui titik-titik dalam ruang
3D. Model poligonal sangat fleksibel dan dapat ditampilkan oleh komputer dengan sangat
cepat. Kekurangannya polygonal modeling adalah tidak dapat membuat permukaan
melengkung secara akurat sesuai dengan ukuran geometris yang tepat. Permukaan
melengkung biasanya dibentuk melalui metode penghalusan (smoothing) yang dibentuk dari
satu garis ke garis lainnya, atau dari satu poligon ke poligon lainnya. Oleh karena itu,
polygonal modeling biasa dipergunakan untuk membuat model-model 3 Dimensi objek non
geometris, seperti pada kartun, mahluk hidup, dan lain-lain.
Sebelum masuk lebih dalam ke dalam model poligonal tiga dimensi, ada beberapa istilah
yang penting dalam permodelan poligonal ini, diantaranya :
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
48/59
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
segitigasegitiga 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.
6.3 Teori Geometris Dari Poligon
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.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
49/59
Gambar 5.4 Ruang Euclidean
RuangEuclidean adalah sebuah ruang tiga dimensi dimana setiap titik yang berada di dalam
ruang tersebut memiliki alamatalamat berdasarkan koordinatkoordinat.
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 dengantiga tepi, mendefinisikan sebuah segitiga, yang merupakan poligon sederhana dalam ruang
Euclidean.
6.4 Sifat-Sifat Jaring Poligonal
a. Angles
Setiap poligon memiliki banyak sudut karena memiliki sisi. Setiap sudut memiliki beberapa
sudut. Dua yang paling penting adalah:
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.
Eksterior Sudut, Sudut eksterior sudut tambahan untuk sudut interior.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
50/59
Nama Sudut Sifat
Monogon 1
Tidak umumnya diakui sebagai poligon, meskipun beberapa
disiplin ilmu seperti teori graf kadang-kadang menggunakan
istilah.
Digon 2Tidak umumnya diakui sebagai poligon pada bidang euclidean,
meskipun dapat kita jumpai sebagai poligon bola.
Triangle 3Poligon sederhana yang bisa dijumpai di bidang euclidean.
Bisa seperti permukaan pesawat.
Quadrilateral 4
Poligon sederhana yang bisa menyeberang sendiri; poligon
sederhana yang dapat cekung; poligon sederhana yang dapat
non-cyclic.
Pentagon 5
Poligon sederhana yang biasa kita jumpai sebagai bintang
biasa. Sebuah bintang pentagon dikenal sebagai pentagram
atau pentakel.
Hexagon 6 Bisa seperti permukaan pesawat.
Heptagon 7
Poligon sederhana sehingga bentuk biasa tidak constructible
dengan kompas dan sejajar. Namun, hal itu dapat dibangun
menggunakan konstruksi neusis.
Hendecagon (or
undecagon)11
Poligon sederhana sehingga bentuk biasa tidak dapat dibangun
dengan dom, sejajar, dan sudut trisector.
TUGAS :
Buatkan satu program c++ untuk menampilkan poligon dengan banyak sudut tergantung digit
terakhir dari noBP anda.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
51/59
Komputer Grafis / Anisya, S. Kom., M. Kom 41
BAB VII
PEMODELAN POLYHEDRA DENGAN JARING POLYGONAL
7.1 Jenis-Jenis Polyhedra
Polyhedra adalah suatu bidang tiga dimensi yang tersusun atas sisi-sisi berbentuk polygon. Kata
Polyhedra diambil dari kata yunani kuno, yaitu poly atau banyak dan edon yang berarti dasar.
Setiap garis penghubung (edge) pada polyhedra menyatukan tepat dua buah polygon.
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:
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
52/59
Komputer Grafis / Anisya, S. Kom., M. Kom 42
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,
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
53/59
Komputer Grafis / Anisya, S. Kom., M. Kom 43
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.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
54/59
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. Objek-
objek 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
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
55/59
ini juga membuat sebuah world menjadi lebih realistis dengan adanya bayangan dari objek-
objek 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:
Kotak yang kedap cahaya (badan kamera)
Sistem lensa
Pemantik potret (shutter)
Pemutar film
8.2 Jenis-Jenis Proyeksi
Daftar berikut menjelaskan jenis proyeksi yang berbeda yang dapat digunakan dengan
kamera. Jenis yang paling umum adalah perspektif dan proyeksi ortografi. CAMERA_TYPE
harus item pertama dalam sebuah pernyataan kamera. Jika tidak ada yang ditentukan, kamera
perspektif adalah default.
Anda harus mencatat bahwa buffer vista hanya dapat digunakan dengan perspektif dan
kamera ortografi.
8.2.1 Perspektif Proyeksi
Perspektif kata kunci menentukan kamera bawaan perspektif yang mensimulasikan kamera
lubang jarum klasik. (Horisontal) sudut pandang yang baik ditentukan oleh rasio antara
panjang vektor arah dan panjang vektor yang tepat atau dengan sudut kata kunci opsional,
yang merupakan cara yang lebih disukai. The sudut pandang harus lebih besar dari 0 derajat
dan lebih kecil dari 180 derajat. Lihat gambar di "Menempatkan Kamera" untuk geometri
kamera perspektif.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
56/59
8.2.2 Ortografi Proyeksi
Kamera ortografi menawarkan dua mode operasi:
Proyeksi ortografi murni. Proyeksi ini menggunakan sinar kamera sejajar dengan membuat
gambar adegan. Daerah pandang ditentukan oleh panjang kanan dan atas vektor. Salah
satunya harus ditentukan, mereka tidak diambil dari kamera default. Jika dihilangkan metode
kedua kamera yang digunakan.
Jika, dalam kamera perspektif, Anda mengganti perspektif kata kunci dengan ortografi dan
meninggalkan semua parameter lainnya sama, Anda akan mendapatkan pandangan ortografi
dengan bidang gambar yang sama, yaitu ukuran gambar adalah sama. Hal yang sama dapat
dicapai dengan menambahkan kata kunci sudut untuk kamera ortografi. Sebuah nilai sudut
adalah opsional. Jadi modus kedua ini aktif jika ada up dan kanan berada dalam pernyataan
kamera, atau ketika kunci sudut adalah dalam pernyataan kamera.
Anda harus menyadari bahwa meskipun bagian terlihat dari perubahan adegan ketika beralih
dari perspektif pandangan ortografi. Selama semua objek menarik yang dekat titik look_at
mereka akan tetap terlihat jika kamera ortografi digunakan. Benda jauh mungkin keluar dari
pandangan saat benda dekat akan tinggal di tampilan.
Jika objek terlalu dekat dengan lokasi kamera mereka mungkin hilang. Terlalu dekat sini
berarti, di balik ortografi bidang proyeksi kamera (pesawat yang melewati titik look_at).
8.2.3 Fisheye Proyeksi
Ini adalah proyeksi bola. The sudut pandang ditentukan oleh keyword sudut. Sudut 180
derajat menciptakan "standar"fisheye sementara sudut 360 derajat menciptakan super-fisheye
("I-lihat-segala-view"). Jika Anda menggunakan proyeksi ini Anda harus mendapatkan
gambar lingkaran. Jika hal ini tidak terjadi, yaitu Anda mendapatkan gambar elips, Anda
harus membaca "Rasio Aspek".
8.2.4 Ultra Proyeksi Sudut Lebar
Proyeksi ini agak mirip dengan fisheye tetapi proyek gambar ke persegi panjang bukan
lingkaran. The sudut pandang dapat ditentukan dengan menggunakan kata kunci sudut.
8.2.5 Omnimax Proyeksi
Proyeksi Omnimax adalahfisheye 180 derajat yang memiliki sudut pandang berkurang dalam
arah vertikal. Pada kenyataannya proyeksi ini digunakan untuk membuat film yang dapat
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
57/59
dilihat di kubah-seperti Omnimax bioskop. Gambar akan terlihat agak elips. Sudut kata kunci
tidak digunakan dengan proyeksi ini.
8.2.6 Proyeksi Panoramic
Proyeksi ini disebut "silinder proyeksi persegi panjang". Ini mengatasi masalah degenerasi
proyeksi perspektif jika sudut pandang pendekatan 180 derajat. Ini menggunakan jenis
proyeksi silinder untuk dapat menggunakan tampilan sudut yang lebih besar dari 180 derajat
dengan distorsi lateral peregangan ditoleransi. Sudut kata kunci yang digunakan untuk
menentukan sudut pandang.
8.2.7 Proyeksi Silinder
Menggunakan proyeksi ini adegan diproyeksikan ke silinder. Ada empat jenis proyeksi
silinder tergantung pada orientasi silinder dan posisi sudut pandang. Sebuah nilai float dalam
kisaran 1 sampai 4 harus mengikuti kata kunci silinder. The sudut pandang dan panjang
vektor atau kanan menentukan dimensi dari kamera dan gambar terlihat. Kamera untuk
digunakan ditentukan oleh nomor. Jenis adalah:
silinder vertikal, sudut pandang tetap
silinder horisontal, sudut pandang tetap
silinder vertikal, sudut pandang bergerak sepanjang sumbu silinder
silinder horisontal, sudut pandang bergerak sepanjang sumbu silinder
8.2.8 Proyeksi Bulat
Menggunakan proyeksi ini adegan diproyeksikan ke sebuah bola.
Sintaks:
kamera {
bulat
[Sudut HORIZONTAL [VERTIKAL]]
[CAMERA_ITEMS ...]
}
Nilai pertama setelah sudut menetapkan sudut pandang horizontal kamera. Dengan nilai
kedua opsional, sudut pandang vertikal diatur: baik dalam derajat. Jika sudut vertikal tidak
specfied, standarnya ke setengah sudut horizontal.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
58/59
Proyeksi bola mirip dengan proyeksifisheye, 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.
-
7/25/2019 Bahan Ajar Terseleksi Komputer Grafis
59/59
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. 1996. Computer Graphics: Principles and Practice. Addison-WesleyProfessional
Ganovelli , Fabio , et al. 2014. Introduction to Computer Graphics: A Practical Learning
Approach. CRC Press
Gomes, Jonas , et al. 2012. Computer Graphics: Theory and Practice. CRC Press
Govil-Pai, Shalini et. al. 2004. U. S. A. Principles Of Computer Graphics Teory And Practice
Using OpenGL And Maya, Springer,
Jankel, Annabel . 1984. Creative Computer Graphics. Cambridge University Press
Klawonn, Frank. 2012. Introduction to Computer Graphics: Using Java 2D and 3D. Springer
Science & Business Media
McConnell , Jeffrey J. 2006. Computer Graphics: Theory Into Practice. Jones & Bartlett
Learning
Mcreynolds, Tom, et. al. 2005. Advanced Graphics Programming Using OpenGL, Elsevier,
Addison Wesley
Oursland, Alan. 2000. Using OpenGL In Visual C++, Interface Technologies, Inc.
Shreiner , Dave et. al. 2006. OpenGL Programming Guide, Fifth Edition, Addison Wesley
Wright, Richard S et. al. 2007. OpenGL Superbible Fourth Edition, Comprehensive TutorialAnd Reference,
2011. Komputer Grafis: Bahasa Pemrograman Visual, GUI, Pengolahan Citra, PerangkatLunak Grafis, Peranti Penunjuk, Seni Komputer. books llc, wiki series