BAB II
LANDASAN TEORI
2.1
Grafika Komputer
Grafika komputer merupakan salah satu bidang ilmu komputer yang
perkembangannya terbilang sangat pesat.
Penggunaan grafika komputer sangat terasa manfaatnya hampir di seluruh
kegiatan, terutama yang berhubungan dengan komputer. Pada kenyataannya, sebagian besar kegiatan
manusia memanfaatkan grafika komputer.
Indsutri film, televisi, desain grafis dan arsitektur adalah beberapa
contoh kegiatan yang banyak sekali memanfaatkan grafika komputer. Bidang ilmu
murni seperti Fisika, Matematika, Kimia dan Biologi pun merasakan manfaat dari
grafika komputer. Bidang-bidang tersebut
memanfaatkan grafika komputer untuk visualisasi model-model objek yang secara
kasat mata mustahil terlihat seperti; atom, sel dan bakteri. Bahkan perkembangan bidang-bidang tersebut
menjadi semakin cepat, karena para ilmuwan semakin berani melakukan eksperimen
tanpa takut melakukan kesalahan yang mengakibatkan kerugian besar, sehingga
mereka dapat menghasilkan penemuan-penemuan baru.
Pada saat ini industri film dan game adalah yang betul-betul telah merasakan
manfaat dari grafika komputer. Saat ini,
film yang digemari bukan lagi film-film kartun, tetapi film animasi yang
menggunakan teknologi 3D(tiga dimensi).
Dengan grafik 3D(tiga dimensi), dapat dihasilkan suatu objek yang
menyerupai bentuk aslinya. Hal yang sama
terjadi pada industri game. Jika dulu
game-game yang digemari masih dalam bentuk dua dimensi (2D), dengan teknologi
yang ada sekarang dapat dihasilkan suatu game yang lebih realistis karena sudah
dalam bentuk tiga dimensi.
Bidang-bidang yang berhubungan dengan grafika komputer sudah menjadi
alternatif pilihan pekerjaan yang banyak diminati di Indonesia, seperti; desain
grafis, pengolahan citra dan digital fotografi.
Pada bidang ini juga, Indonesia
tidak mengalami ketertinggalan yang jauh jika dibandingkan dengan bidang ilmu
komputer yang lain seperti jaringan komputer dan pemrograman. Bahkan banyak ditemui orang-orang yang sudah
sangat ahli pada bidang-bidang yang digelutinya.
2.1.1
Sejarah Grafika Komputer
Sejarah grafika computer telah
dimulai sejak jaman dahulu yaitu ketika bangsa Mesir, Roma, dan Yunani
perkembangan bidang grafika komputer tidak terpaut jauh dengan perkembangan
dunia komputer, karena keduanya sangat berhubungan erat. Meskipun pada mulanya komputer tidak
menggunakan monitor, justru setalah menggunakan komputer dunia komputer
mengalami perkembangan yang sangat pesat. Sejarah grafika komputer dimulai pada
tahun 1961. Ketika itu seorang mahasiswa
MIT, Ivan Sutherland, membuat suatu program penggambar yang disebut Sketchpad. Dengan menggunakan pena cahaya (light pen),
Sketchpad mengijinkan seseorang untuk manggambar suatu bidang yang
sederhana, menyimpan dan bahkan menampilkannya kembali. Pena cahaya tersebut memiliki sel photoelectric
kecil pada ujungnya. Sel tersebut
mengeluarkan getaran elektronik ketika diletakkan di depan layar komputer,
kemudian pistol elektron yang terdapat pada layar menembakkan elektron ke arah
pena tersebut diletakkan.
Dengan penemuannya tersebut, Sutherland mulai menemukan solusi dari
permasalahan grafika komputer yang dia hadapi.
Bahkan sekarang, banyak standar antarmuka grafika komputer yang bermula
dari program Sketchpad. Salah
satu contoh adalah dalam menggambar constraints. Jika seseorang ingin menggambar kotak,
misalnya, dia tidak perlu mengkhawatirkan tentang bagaimana menggambar empat
garis secara sempurna untuk menghasilkan sisi-sisi kotak tersebut. Dia hanya perlu menentukan lokasi dan ukuran kotak
tersebut, kemudian software akan membuat kotak yang sempurna, dengan
dimensi dan lokasi yang tepat. Contoh
lain adalah bahwa Sketchpad memodelkan objek, tidak hanya menggambar
suatu objek.
Hingga pertengahan
tahun 80-an, banyak penelitian yang telah dilakukan dan menghasilkan penemuan-penemuan
baru yang menambah khazanah bidang grafika komputer. Fraktal, Animasi tiga dimensi, Texture
Mapping dan Rendering adalah beberapa contoh penemuan di bidang
grafika komputer yang sangat berpengaruh pada perkembangan ilmu pengetahuan
secara umum.
2.1.2
Pemanfaatan Grafika
Komputer
Pada awal bab ini telah dijelaskan mengenai beberapa keuntungan dari
pemanfaatan grafika komputer. Untuk itu
pada bagian ini akan dibahas mengenai spesifikasi bidang-bidang yang
menggunakan atau memanfaatkan grafika komputer.
Bidang-bidang tersebut diantaranya adalah sebagai berikut :
a.
Pada Bidang
Computer-Aided Design (CAD)
CAD
merupakan suatu metode yang digunakan untuk merancang suatu model tiga dimensi
yang sekarang sudah rutin digunakan untuk merancang gedung, mobil, model
pesawat, komputer, tekstil dan banyak produk lainnya.
b.
Pada Bidang Hiburan
Tidak dapat dielakan lagi pada bidang grafika komputer ini telah
biasa digunakan, bahkan sudah menjadi suatu kebutuhan untuk menggunakannya.
Pada industri perfilman dan pertelevisian dirasakan sekali akan pentingnya
grafika komputer. Bahkan sampai sejauh ini hampir tidak ada satu pun film yang
tidak memanfaatkan grafika komputer.
Selain itu, grafika komputer juga dimanfaatkan pada pengembangan game di
seluruh dunia.
c.
Pada Bidang Pendidikan
dan Pelatihan
Pemodelan fisika, keuangan, dan sistem ekonomi sering digunakan
sebagai tujuan pendidikan. Pemodelan
dari sistem fisika, sistem fisilogis dan perkembangan populasi bisa membantu
untuk memahami jalannya suatu sistem.
Untuk
beberapa aplikasi latihan, didesain sistem khusus. Contoh dari sistem khusus tersebut adalah
simulator untuk sesi praktik atau latihan bagi kapten kapal, pilot pesawat
terbang, operator peralatan berat control lalu lintas udara. Beberapa simulator tidak memiliki latar
video, sebagai contoh adalah simulator penerbangan yang hanya terdapat panel
kontrol untuk alat-alat penerbangan.
Kebanyakan simulator menyediakan layar grafis untuk operasi visual.
d.
Pada Bidang Visualisasi
Pada
bidang visualisasi ini dapat digambarkan bahwa Ilmuwan, teknisi, personil
medis, analis bisnis dan lainnya sering membutuhkan untuk menganalisa banyaknya
informasi atau melakukan studi atas kelakuan dari proses penting. Dengan menggunakan visualisasi akan semakin
mempermudah untuk mempelajari, memahami dan melakukan analisa terhadap suatu
permasalahan. Dengan adanya visualisasi,
suatu fungsi matematika dapat menjadi suatu bentuk grafis yang menarik,
sehingga orang-orang akan lebih tertarik untuk mempelajarinya.
e.
Pada Bidang Pengolahan
Citra
Perkembangan
perangkat lunak grafis saat ini memungkinkan untuk melakukan pengolahan
citra. Suatu citra yang telah rusak
dapat diperbaiki kembali sehingga kualitasnya hampir menyamai citra yang masih
baru. Selain itu, sering juga
dipergunakan untuk melakukan eksperimen dan eksplorasi terhadap suatu citra,
sehingga dapat menghasilkan citra lain yang lebih menarik.
f.
Pada Bidang Graphical
User Interface
Hingga
akhir tahun 80-an, program-program yang tersedia kurang menarik karena
kebanyakan tampilan pada monitor hanya berupa teks saja. Hal ini sungguh sangat menjemukan bagi para
pengguna komputer. Microsoft dengan
Windows-nya menggebrak dengan mengeluarkan sistem operasi yang menggunakan GUI
(Graphical User Interface).
Keuntungan
dari penggunaan GUI ini adalah perangkat lunak atau program yang tersedia jadi
lebih interaktif dan mudah mengoperasikannya karena perintah-perintah program
yang biasanya diketik cukup diwakili oleh satu tombol saja, bahkan satu tombol
tersebut bisa mewakili beberapa perintah sekaligus. Tentu saja hal ini sangat menguntungkan
karena setiap pengguna komputer tidak perlu lagi menghafal perintah-perintah
yang jumlahnya relatif banyak dan bermacam-macam fungsinya. Ditambah lagi dengan adanya GUI ini setiap
pengguna tidak membutuhkan waktu yang lama untuk menggunakan suatu
program. Bahkan sudah banyak bahasa
pemrograman yang digunakan untuk membangun suatu program yang menggunakan GUI
seperti Delphi , Visual Basic dan Visual C.
2.2
Grafik Objek Tiga
Dimensi
Menampilkan
obyek gambar secara tiga dimensi dapat mempermudah visualisasi dan penyampaian
makna gambar dibandingkan dengan visualisasi secara dua dimensi (2D). Dari dahulu gambar tiga dimensi lebih dekat
dengan orang awam, karena kemudahan proses penyampaian informasi.
Tujuan dari grafik tiga dimensi adalah untuk
merepresentasikan alam tiga dimensi ke alam dua dimensi. Representasi dilakukan dalam dua dimensi
karena media untuk menampilkan grafik tersebut, yaitu layar komputer adalah dua
dimensi. Merepresentasikan obyek dalam
tiga dimensi dapat dilakukan dengan menggunakan sistem koordinat yang
menyediakan tiga sumbu koordinat. Tiga
sumbu ini biasanya dinamakan X,Y,Z. Terdapat dua macam sistem koordinat tiga
dimensi yaitu sistem Tangan Kiri (Left-hand) dan sistem Tangan Kanan (Right-hand). Perbedaan dari kedua sistem ini terletak pada
arah sumbu Z. Pada sistem Tangan Kiri
koordinat yang lebih jauh mempunyai nilai Z yang lebih besar, sedangkan
koordinat yang lebih dekat mempunyai nilai Z yang lebih kecil. Pada layar komputer, arah sumbu-Z terlihat
seolah-olah menjauhi pengguna komputer.
Pada sistem Tangan Kanan, arah sumbu-Z berkebalikan dengan Tangan Kiri,
sehingga pada layar komputer terlihat seolah-olah mendekati pengguna komputer.
2.3
Grafik Komputer Modern
Grafik komputer modern
merupakan implementasi lebih lanjut perkembangan grafik komputer. Banyak contoh
aplikasi dari grafik modern seperti virtul
realty, film animasi dan game. Salah satu bentuk implementasi grafik
komputer modern adalah OpenGL.
OpenGL adalah
interface perangkat lunak untuk
perangkat keras grafik, yang berisi perintah dan sesuai dengan objek dan
operasi yang spesifik serta dibutuhkan untuk membuat aplikasi 3D yang
interaktif. OpenGL menyediakan
perintah yang dapat membangun objek 2D atau objek 3D, menyatukan semua elemen
geometri primitif dengan perintah tertentu yang dapat mengontrol objek tersebut
diterjemahkan pada frame buffer .
OpenGL dirancang
untuk bekerja lebih effisien walaupun komputer yang menampilkan grafik yang
dibangun bukan komputer yang sesuai atau tidak memiliki fasilitas untuk
mengeksekusi program grafik. Sebagai contoh pada suatu jaringan komputer yang
terhubung satu sama lain untuk mengakses data digital, pada situasi ini
komputer yang mampu membangun program dan menghasilkan OpenGL adalah client, dan
komputer yang menerima adalah server.
Format transmisi perintah OpenGL dari
client pada server akan menghasilkan hal yang sama, program OpenGL dapat bekerja pada jaringan
walaupun kedua komputer mempunyai spesifikasi yang berbeda.
OpenGL dapat
diimplementasikan pada berbagai jenis
perangkat keras yang berbeda untuk menghasilkan aplikasi 2D atau 3D. Tidak
terdapat perintah khusus untuk mendapatkan qualitas visi yang baik pada OpenGL, menampikan atau mendapatkan
objek, tetapi kita harus membangun terlebih dahulu objek dari ukuran geometrri
terkecil seperti titik, garis dan polygon.
2.4 Pokok-Pokok Dasar
Matematis Dalam Menggambarkan Objek
OpenGL
berbasis pada dasar-dasar matematika yang sangat penting dan mengarahkan
imajinasi untuk menciptakan sebuah objek, notasi matematika tersebut
mendefinisikan titik koordinat sistem menjadi titik koordinat pada layar, dan
menunjukan bagaimana menempatkan suatu image pada layar. OpenGL mendefinisikan situasi tersebut dalam fungsi pemanggil
secara matematis.
Sebagai contoh pada
gambar 2.2 di bawah ini, suatu sistem koordinat 3D yang akan menampilkan objek
pada bagian alas objek. Pada objek tersebut ditunjukan dengan objek segi empat
berwarna biru yang akan tampak pada layar. Empat titik koordinat mengaktifkan
sinar ( rays ) untuk menciptakan
objek dalam dunia imajiner yang biasa disebut point of view
Gambar 2.1
Ilustrasi objek 3D pada sistem
koordinat
glMatrixMode(GL_PROJECTION);
glFrustum(-0.1, 0.1, -0.1, 0.1, 0.3, 25.0);
Fungsi pemanggil -0.1, 0.1, -0.1, 0.1 mendefinisikan ukuran pada layar virtual untuk posisi kiri, kanan, bawah
dan atas segi empat. 0.3 mendefinisikan jarak titik pandang terdekat pada layar
hal ini sama seperti teknik rencana pemotongan dan pemilihan bagian bidang
objek ( Clipping plane ) untuk ditampilkan pada layar. 25.0
mendefinisikan titik terjauh bagian
objek. Semua objek di depan titik pandang terdekat atau di belakang titik pandang
terjauh akan tidak terlihat, kecuali dengan memanipulasi fungsi pemanggil jika
membutuhkan tampilan objek yang komplek.
Titik untuk menggambarkan objek terbatas pada ketiga axis, setiap axis mendefinisikan satu titik
Titik-titik pada setiap axis
yang sudah didefinisikan akan dihubungkan dengan sebuah vektor yang berupa garis. Kemudian objek akan dibentuk sebagai
permukaan bidang dengan vertex yang
merupakan titik axis yang digunakan
sebagai sudut.
2.4.1 Konversi Geometri
Primitif Menjadi Objek
OpenGL hanya
mendukung bagian dari geometri primitif titik, garis dan poligon. Beberapa
permukaan yang lebih komplek seperti lingkaran tidak bisa digambar sebagai
objek primitif, tetapi bisa dibangun perkiraannya dengan poligon. Misalnya pada
game 3D modern yang dibangun dengan segitiga, tetapi hal ini tidak membatasi
pembuatan objek 3D.
Gambar 2.2
Ilustrasi objek 3D dengan elemen
poligon pembentuknya
2.4.2 Gerakan Objek
Pergerakan objek
merupakan bagian dari animasi yang meliputi metode translasi, scale dan rotasi. Dengan
mengimplementasikan perintah dari keyboard
atau mouse, setiap key didefinisikan menjadi sebuah aksi
atau pergerakan objek. Dari penggalan program di atas kita bisa melihat
indentifikasi dari setiap aksi pada
keyboard, dengan demikian akan terjadi pergerakan pada layar.
2.5 Transformasi
Transformasi adalah
perubahan bentuk, komputer merupakan salah satu transformator yang cukup ideal.
Pada grafik komputer kemungkinan untuk mengubah bentuk atau penampilan dari
suatu objek sangat luas bahkan untuk mengganti objek itu sendiri secara
permanan.
Transformasi
diperlukan untuk mengubah ( transform
) posisi suatu objek dari tempat asal ke posisi elemen grafik, transformasi
juga diperlukan untuk memutarkan posisi suatu objek pada titik pusat, mengubah
ukuran objek dan menarik sebagian objek sehingga tampak terdistorsi.
Bentuk-bentuk transformasi
tersebut secara umum adalah sebagai berikut :
a.
Translation ( mengeser )
b.
Strecthing ( merubah lebar )
c.
Scale ( merubah ukuran )
d.
Rotation ( memutar )
2.5.1 Transformasi Pada
Objek 2 D
2.5.1.1 Pergeseran ( Translasi )
Translasi suatu
gambar atau objek 2D dilakukan dengan cara menambah atau mengurangi koordinat x
atau y dengan sejumlah nilai tertentu sehingga objek bergeser dari suatu posisi
ke posisi lain.
Sebuah objek merupakan
deretan titik-titik yang membangun objek tersebut, jika dilakukan proses
translasi, maka akan mengoperasikan seluruh titik tersebut dan membutuhkan
proses yang komplek dan lama. Untuk mengatasi masalah tersebut maka perlu
ditentukan suatu titik tertentu dari suatu objek yang menjadi titik orientasi
sehingga pergeseran dilakukan terhadap titik orientasi tersebut dan diikuti offset vektornya.
Gambar 2.3
Ilustrasi
pergeseran pada suatu objek yang berbentuk segi tiga
2.5.1.2 Mengubah Lebar ( Strecthing )
Prinsip dasar strecthing sama seperti translasi hanya pada strecthing pergeseran hanya pada satu
titik tertentu hingga objek bertambah besar atau bertambah kecil pada titik
koordinat yang ditentukan.
Gambar 2.4
Ilustrasi strecthing
2.5.1.3 Merubah Ukuran ( Scale )
Scale dapat diartikan
sebagai suatu perubahan terhadap objek tertentu sehingga ukuran objek tersebut
berubah.
Gambar 2.5
Ilustrasi scale
Dari ilustrasi di atas
perubahan besar untuk lingkaran adalah pada radius r menjadi r’ dan perubahan
besar pada segi empat pada P1, P2, P3 dan P4 menjadi P1’, P2’, P3’ dan P4’, maka notasi matematik
untuk perubahan besar adalah
Di mana adalah vaktor perubahan besar x dan adalah vektor perubahan besar y,
2.5.1.4 Memutar ( Rotation )
Rotation dapat
diartikan sebagai aksi pemutaran objek sebesar
sudut dari posisi awalnya
pada titik rotasi ( ).
Gambar 2.6
Ilustrasi rotation
Keterangan :
adalah sudut posisi
awal.
adalah sudut rotasi.
r adalah titik rotasi.
Rotasi suatu objek dengan P ( x, y ) dengan sudut mendapatkan hasil
titik P’ (x’, y’ ), dengan persamaan
2.5.2 Transformasi Pada Objek 3D
2.5.2.1 Pergeseran ( Translation )
Suatu objek yang
terdapat di dalam sistem koordinat ruang 3D dapat dipindahkan dari posisi
awalnya sesuai dengan yang diinginkan selama objek tersebut masih terdapat
dalam sistem koordinat ruang 3D. secara teoritis jarak geser tidak terbatas,
tetapi pada kenyataannya untuk memudahkan indentifikasi keberadaan suatu objek
ditentukan batas maksimumnya untuk mengkonversi objek dari sistem koordinat ke
sistem koordinat layar, karena sistem koordinat layar memiliki batasan
tertentu.
Gambar 2.7
Ilustrasi Translation
Persamaan umum dari
pergeseran objek 3 D adalah :
adalah titik koordinat
awal objek 3D, sedangkan , dan adalah jarak geser
pada objek.
2.5.2.2 Mengubah Lebar ( Strecthing )
Pada objek 3D prinsif
dasar strecthing sama seperti scale hanya pada strecthing pergeseran hanya pada satu titik tertentu hingga objek
bertambah besar atau bertambah kecil pada titik koordinat yang ditentukan.
Gambar 2.8
Ilustrasi Strecthing
Sesuai
dengan pemahaman sistem koordinat untuk ruang 3D, dari gambar 2.8 dapat
disimpulkan bahawa perubahan lebar memiliki proses yang sama dengan scale, perbedaannya adalah pada perubaban
lebar faktor scale dilakukan hanya
pada satu sumbu dengan nilai perubahan tertentu.
2.5.2.3 Mengubah Ukuran ( Scale )
Suatu objek yang
terdapat dalam sisitem koordinat 3D dapat dibesarkan atau dikecilkan dengan
faktor tertentu yang disesuaikan dengan koordinat layar yang mempunyai
keterbatasan. Ilustrasi pada perubahan ukuran sama seperti gambar 2.9, tetapi
pada scalling mencakup semua sumbu
koordinat.
Gambar 2.9
Gambaran Ilustrasi Scale
Keterangan :
Persamaan untuk scale adalah sebagai berikut :
adalah vaktor perubahan besar x
adalah vektor perubahan besar y
adalah vektor perubahan besar z
2.5.2.4 Memutar ( Rotation )
Rotasi pada objek 3D mengikuti
sumbu kordinat pada ketiga sumbu sistem koordinat x,y dan z. Secara umum rotasi
di bagi menjadi dua yaitu rotasi yang berlawanan dengan arah jarum jam dan yang
searah dengan jarum jam. Biasanya diberikan nilai positif dan negatif.
Selajutnya untuk
rotasi yang searah jarum jam diberikan nilai negatif dan yang berlawanan arah
jarum jam diberikan nilai positif untuk setiap sumbu koordinat x, y dan z.
Rotasi tersebut
menggunakan sudut rotasi tertentu dari posisi P (x, y, z ) menjadi P ( x’, y’,
z’ ).
a. Rotasi Pada Sumbu X
Gambar 2.10
Ilustrasi rotasi pada sumbu x
Gambar di atas
merupakan ilustrasi rotasi pada sumbu x dengan sudut rotasi ( ), pada rotasi ini pada sumbu x tidak terjadi
perubahan titik koordinat, yang berubah adalah titik koordinat pada sumbu y dan
z.
Persamaan rotasi pada
sumbu x adalah sebagai berikut :
Dari persamaan
tersebut lebih jelas bahwa sumbu x tidak terjadi perubahan titik koordinat.
b. Rotasi Pada Sumbu Y
Gambar 2.11
Ilustrasi rotasi pada sumbu y
Gambar di atas
merupakan ilustrasi rotasi pada sumbu y dengan sudut rotasi ( ), pada rotasi ini pada sumbu y tidak terjadi
perubahan titik koordinat, yang berubah adalah titik koordinat pada sumbu x dan
z.
Persamaan rotasi pada
sumbu x adalah sebagai berikut :
Dari persamaan
tersebut lebih jelas bahwa sumbu y tidak terjadi perubahan titik koordinat.
c. Rotasi Pada Sumbu Z
Gambar 2.12
Ilustrasi rotasi pada sumbu z
Gambar di atas
merupakan ilustrasi rotasi pada sumbu z dengan sudut rotasi ( ), pada rotasi ini pada sumbu z tidak terjadi
perubahan titik koordinat, yang berubah adalah titik koordinat pada sumbu x dan
y.
Persamaan rotasi pada
sumbu x adalah sebagai berikut :
Dari persamaan
tersebut lebih jelas bahwa sumbu z tidak terjadi perubahan titik koordinat.
2.6
Sistem Koordinat
Sistem koordinat yang selama ini
dikenal antara lain adalah sistem koordinat kartesian yang digunakan untuk
membedakan lokasi atau posisi sembarang titik atau objek yang lain. Sistem
koordinat kartesian terdiri atas sistem koordinat kartesian dua dimensi dan
sistem koordinat kartesian tiga dimensi.
Pada
transformasi ini, objek-objek yang akan ditransformasikan berupa objek-objek
dua dimensi. Dimana objek tersebut hanya terdapat sumbu x dan sumbu y yang akan
mengalami proses transformasi. Transformasi dasar pada objek dua dimensi adalah
translasi, skala dan rotasi. Translasi berarti memindahkan suatu objek
sepanjang sepanjang garis lurus dari suatu koordinat tertentu kelokasi yang
lain. Skala digunakan untuk mengubah uk uran suatu objek, sedangkan
rotasi adalah pemindahan objek menurut garis melingkar.
Lokasi setiap titik dalam sistem
koordinat kartesian dua dimensi ditentukan oleh dua besaran. Nilai dua besaran
tersebut apabila digambar akan membentuk suatu sumbu koordinat mendatar yang
sering dikenal dengan sumbu x dan sumbu koordinat tegak yang sering dikenal
dengan sumbu y. Sedangkan dalam sistem koordinat tiga dimensi terdapat suatu
sumbu lain selain sumbu x dan sumbu y yaitu sumbu z yang arahnya tegak lurus
terhadap sumbu x dan sumbu y.
Gambar
2.13 Sistem Koordinat Kartesian
Tiga Dimensi
Dalam sistem koordinat kartesian tiga dimensi dikenal
dua buah aturan yaitu sistem koordinat kartesian tiga dimensi aturan tangan kan an
dan sistem koordinat kartesian tiga dimensi aturan tangan kiri yang selanjutnya
lebih dikenal dengan sistem koordinat tangan kan an dan sistem koordinat tangan kiri.
Sistem koordinat tangan kanan dapat diilustrasikan
dengan tiga buah jari tangan kanan yaitu ibu jari, jari telunjuk dan jari
tengah dengan telapak tangan kanan menghadap ke pengamat. Ibu jari dianggap
sebagai sumbu x, jari telunjuk sebagai sumbu y, dan jari tengah (yang mengarah
ke pengamat) sebagai sumbu z.
Sistem koordinat tangan kiri dapat diilustrasikan dengan tiga buah
jari tangan kiri, dengan punggung telapak tangan kiri menghadap pengamat. Dalam
hal ini ibu jari sebagai sumbu x, jari telunjuk sebagai sumbu y, dan jari
tengah (yang menjauhi pengamat) sebagai sumbu z.
Gambar 2.14
Sistem Koordinat Kartesian Tiga Dimensi Aturan Tangan Kanan
Gambar 2.15
Sistem Koordinat Kartesian Tiga Dimensi Aturan Tangan Kiri
Sistem koordinat tangan kanan lebih banyak digunakan, meskipun dalam
grafik tiga dimensi, khususnya untuk penampilan dilayar, sistem koordinat
tangan kiri sebenarnya lebih cocok, karena lebih bias itu menunjukan
interpretasi secara alamiah
2.7 Matriks
Matriks
adalah susunan sekelompok bilangan dalam bentuk segi empat siku-siku yang
diatur menurut bari s
dan kolom. Istilah-istilah yang sering digunakan matriks adalah :
1.
Baris
matriks yaitu susunan bilangan-bilangan yang letaknya mendatar (horizontal) dalam matriks tersebut.
2.
Kolom
matriks yaitu susunan bilangan-bilangan yang letaknya tegak (vertikal) dalam matriks tersebut.
3.
Elemen
matriks yaitu bilangan-bilangan yang menyusun matriks tersebut dan letaknya
didalam tanda kurung.
Matriks
dinyatakan dengan huruf besar, dan elemen-elemen dari matriks dituliskan dalam
tanda kurung yang dinyatakan dalam huruf kecil. Banyaknya bari s
dan kolom suatu matriks menyatakan uk uran matriks tersebut. Uk uran matriks bermacam-macam besarnya, jika
suatu matriks terdapat m bari s dan n
kolom maka uk uran
matriks tersebut adalah m x n.
2.8 Ray Tracing
Ray tracing adalah aplikasi untuk ilmu yang mempelajari
proses paralel dengan pixel yang banyak, yang menghasilkan kebebasan dan
menghitung paralel. Ray tracing merupakan global pencahayaan dengan menggunakan metode
render. Render adalah proses
pembangkitan gambar dari deskripsi objek
3D yang menggunakan OpenGl sebagai interface perangkat lunak. Deskripsinya
menggunakan bahasa, stukur data yang tepat, dan dapat berisi geometri, point
tampilan, tekstur dan informasi cahaya. Gambar merupakan gambar digital.
Gambar 2.16
Gambaran Proses Pencahayaan dari Sumber
Cahaya ke Objek
2.8.1 Pencahayaan Dan Bayangan
a. Rendering
Rendering merupakan
salah satu teknik pencitraan objek tiga dimensi untuk mendapatkan image yang
realistis dengan penambahan beberapa efek seperti pencahayaan, material,
mapping image, dan background. Kebanyakan manusia menggemari sesuatu
yang bergerak dan hidup dan bukannya sesuatu yang kaku atau static.
b. Model Pencahayaan
Model tiga dimensi yang realistik
menyangkut dua elemen yang penting yaitu representasi grafik dari objek yang
akurat dan pendeskripsian efek cahaya yang baik dalam scene. Model pencahayaan menggambarkan tentang representasi cahaya
pada scene. Penghitungan pencahayaan
didasarkan pada sifat-sifat optik suatu permukaan, kondisi pencahayaan latar
belakang dan spesifikasi sumber cahaya.
Model pencahayaan ini berkaitan
erat dengan shading model. Pada model
pencahayaan ini di definisikan sifat-sifat yang harus dimiliki oleh sebuah
objek tiga dimensi dimana algoritma shading
memerlukan data ini untuk proses rendering.
Model yang paling sederhana untuk
sebuah pancaran cahaya adalah sebuah titik sumber, sinar-sinar dari sumber
kemudian mengikuti secara radial
membedakan alur-alur dari letak sumber.
c. Cahaya Ambien (Ambient Light)
Secara
sederhana ambient light adalah cahaya
yang berada atau tersebar dimana-mana. Cahaya ini tidak terfokus kesuatu arah
tertentu, tidak jatuh kepermukaan tertentu dan penyebaran sinarnya merambat
kesemua arah. Walau sebenarnya ambient
light memiliki sumber, namun sangat sulit untuk mengatur arah rambatan dan
penyebaran cahaya ini serta bagaimana interaksinya dengan scene.
Ambient light
menyebabkan penyebaran pada latar belakang dan sifat sumber cahaya yang unik
karena sumber cahaya itu bisa dianggap tidak ada dan tidak memiliki arah. Sekumpulan cahaya
ambien yang jatuh pada suatu objek bersifat konstan untuk seluruh permukaan dan
dari seluruh arah.
Level cahaya ambien dalam gambar
dapat ditentukan dengan menggunakan parameter Ia, dan kemudian setiap permukaan disinari dengan
nilai tersebut. Hasilnya, cahaya yang dipantulkan bersifat konstan untuk setiap
permukaan, tidak tergantung kepada arah pandang dan orientasi dari permukaan.
d. Pantulan Tersebar (Diffuse Reflection)
Pantulan
cahaya ambien adalah rata-rata dari efek global pencahayaan yang tersebar.
Pantulan tersebut konstan untuk setiap permukaan di dalam suatu scene, tidak tergantung dari arah
pandang. Jumlah cahaya yang jatuh dan dipantulkan secara tersebar, dapat diatur
dengan menggunakan parameter kd,
untuk setiap permukaan kd
disebut koefisien pantulan tersebar. Para meter kd diisi nilai konsatanta tertentu yang berkisar
antara 0 sampai 1, sesuai dengan tingkat
pantulan yang kita inginkan pada suatu permukaan. Jika diinginkan tingkat
pantulan yang sangat tinggi, maka nilai kd harus mendekati 1. Hal ini akan menghasilkan permukaan yang cerah dengan
intensitas cahaya yang dipantulkan
hampir sama dengan intensitas cahaya yang datang. Sedan gkan untuk mensimulasikan suatu
permukaan yang menyerap sebagian besar dari cahaya yang datang, maka nilai kd
harus mendekati 0.
e. Pantulan Spekular (Specular Reflection)
Ketika
suatu permukaan yang mengkilat disinari cahaya, seperti apel atau logam, akan tampa k suatu daerah yang
terang pada arah pandang tertentu. Hal ini disebut pantulan spekular yang
merupakan pantulan total dari cahaya yang jatuh dalam suatu daerah yang
terkonsentrasi disekitar sudut pantulan spekular.
2.8.2
Model Bayangan (Shading Model)
Proses pengaplikasian shading model kedalam scene dinamakan rendering. Rendering
mentransformasikan scene menjadi pixel di layar komputer karena pixel merupakan unit terkecil yang dapat
menerima sebuah pengalamatan yang ditujukan pada layar.
Banyak sekali jenis algoritma shading yang dapat diterapkan dalam
grafika tiga dimensi. Algoritma shading
yang paling sederhana adalah constant
intensity shading atau flat shading.
Sedan gkan
algoritma shading yang lebih kompleks
adalah diffuse shading.
a. Flat Shading
Metode
yang cepat dan mudah untuk merender permukaan objek adalah constant intensity shading atau
flat shading. Dalam metode ini, sebuah intensitas dihitung untuk tiap
permukaan. Semua titik pada permukaan ditampilkan dengan nilai intensitas yang
sama.
b. Diffuse Shading
Karena
cahaya ambien hanya menghasilkan suatu bentuk permukaan yang tidak menarik,
maka jarang sekali suatu gambar di render dengan hanya menggunakan cahaya
ambien saja Paling tidak ada suatu sumber cahaya dalam gambar, yang pada
umumnya digunakan juga sebagai titik pandang.
c. Phong Shading
Model
empiris untuk menghitung daerah pantulan spekular, dikembangkan oleh Phong Bui Thong dan disebut model
pantulan spekular Phong (Phong
specular-reflection model), atau secara singkat disebut model Phong,
mengatur intensitas dari pantulan spekular sebanding dengan cosns θ.
sudut θ dapat bern ilai
0o sampai 90o derajat, maka cos θ akan bernilai antara 0
sampai 1. Nilai yang diberikan pada parameter pantulan spekular ns,
ditentukan oleh jenis permukaan objek yang akan ditampilkan.
Ada dua bagian
pencahayaan yaitu :
1.
Objek sendiri yang bersinar.
2.
Bias cahaya, biasanya bekerja saat objek berputar sehingga kandungan
cahaya objek dan teksturnya berubah.
Dua hal yang perlu
didefinisikan yaitu posisi cahaya, apakah dari atas, bawah, kiri atau kanan
atau kombinasinya dan pembiasaan cahaya pada objek yang berpengaruh pada
perubahan warna termasuk bayangan.
Gambar 2.17
Objek lingkaran yang ditampilkan
pada layar
Pencahayaan bisa berupa manipulasi pewarnaan atau bisa
berupa teknik pemutihan jalur cahaya.
Pencahayaan tidak terbatas pada origin
tetapi bisa juga berasal dari satu sumber atau beberapa sumber yang
dikombinasikan. Pencahayaan sangat penting dalam semua animasi untuk lebih
akurat menyampaikan visi dari pada objek yang tidak memiliki pencahayaan.
Beberapa komponen pencahayaan adalah :
1.
Emitted ( memancarkan ) : Cahaya berasal
dari objek, biasanya cahaya ini kurang memberikan efek bayangan jika terdapat
sumber cahaya dari luar objek.
2.
Ambient ( Kesilauan ) : Sinar dari
sumber cahaya yang menyebar karena lingkungan.
3.
Diffuse ( Menyebar ) : Sinar datang dari
satu sumber cahaya.
4.
Specular : Cahaya yang timbul karena
objek tertentu, misalnya pantulan dari
plastik dan bahan metal.
Bui-Tuong Phong mempublikasikan model iluminasi
pencahayaan pada tahun 1973 pada sebuah artikel berjudul “ Illuminations For Computer – Generate Image “. Model Phong adalah model pencahayaan secara
lokal, artinya hanya refleksi secara langsung yang memberikan nilai. Sinar yang
tidak dipantulkan lebih banyak dari pada satu permukaan, sebelum menjangkau
mata tidak termasuk pada perhitungan. Pada tahun 1977 Jim Blinn mengeluarkan
sebuah artikel berjudul “ Models of Light
Reflection for Computer Synthesised Pictures “ sebagai pengembangan
dari model Phong yang berbasis pada persamaan pencahayaan, dengan mengkalkulasikan pencahayaan specular.
2.9 Pemrograman Delphi
Delphi
merupakan sebuah bahasa pemrograman, karena Delphi adalah bahasa pemrogramna
tingkat tinggi (high level) sehingga sangat memudahkan user (pengguna) untuk
bermain-main di tingkat ini, apa lagi bagi mereka yang malas berurusan dengan
level-level yang rendah . Pemrograman delphi sangatlah mudah kita tinggal click
and drag , dan jadilah program aplikasi yang kita inginkan .
File-file pada Delphi :
*.pas :
Merupakan source file, disina akan disimpan kode pascal yang kita tulis
*.dpr :
Merupakan projek file. Sebagai projek file, file ini berguna untuk
menggabungkan satu atau
lebih file – file source (*.pas).
*.dcu (delphi compiled unit) : Pada saat kita
membuat sebuah aplikasi , Delphi
akan membuat file ini. File
ini berfungsi untuk melinkkan kita dengan file
lain (*.dcu) sehingga kita
bisa membuat beberapa form yang terhubung
satu dengan yang lainnya.
*.dfm (Delphi
form) : File ini berisi informasi mengenai data – data form .
*.res (windows resources)
*.dof (Delphi
project option) : Kita dapat
mengubah icon aplikasi
tersebut, dan
datanya disimpan pada file ini.
*.exe : Merupakan application file setelah kita
compile program kita.