(PEMROGRAMAN GRAFIK) MATERI PEMROGRAMAN GRAFIK KELAS XII
1. Pengenalan Komputer Grafik
Grafika komputer (Inggris: Computer graphics)
adalah bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi
gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah
grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D,
pemrosesan citra (image processing), dan pengenalan pola (pattern recognition).
Grafika komputer sering dikenal juga dengan istilah visualisasi data.
Sejarah grafika komputer :
Istilah ”Grafik Komputer”ditemukan tahun 1960
oleh William Fetter : pembentukan disain model cockpit (Boeing) dengan
menggunakan pen plotter dan referensi model tubuh manusia 3 Dimensi.
Sejarah Perkembangan Komputer Grafik:
o Awal tahun 60-an dimulainya model animasi
dengan menampilkan simulasi efek fisik.
o 1961: Edward Zajac menyajikan suatu model
simulasi satelit dengan menggunakan teknologi Grafik Komputer.
o 1963 : -ditemukan Sutherland (MIT)
-Sketchpad (manipulasi langsung, CAD)
-Alat untuk menampilkan Calligraphic (vector)
-Mouse oleh Douglas Englebert
-Sketchpad (manipulasi langsung, CAD)
-Alat untuk menampilkan Calligraphic (vector)
-Mouse oleh Douglas Englebert
o 1968 : ditemukan Evans & Sutherland.
o 1970: Pierre B´eezier mengembangkan kurva
B´eezier.
o 1972: ditayangkannya filmWestworld, sebagai
film pertama yang menggunakan animasi komputer.
o 1974: Ed Catmull mengembangkan z-buffer
(Utah). Komputer animasi pendek, Hunger:Keyframe animation and morphing.
o 1976: Jim Blinn mengembangkan texture dan bump
mapping.
o 1977: Film terkenal Star Wars menggunakan
grafik komputer.
o 1979: Turner Whitted mengembangkan algoritma
ray tracing,untuk pesawat Death Star.
o Pertengahan tahun 70-an hingga 80-an:
Pengembangan Quest for realism radiosity sebagai main-stream aplikasi realtime.
o 1982: Pengembangan teknologi grafik komputer
untuk menampilkan partikel.
o 1984: Grafik Komputer digunakan untuk
menggantikan model fisik pada film The Last Star Fighter.
o 1986: Pertama kalinya Film hasil produksi
grafik komputer dijadikan sebagai nominasi dalam Academy Award: Luxo Jr.
(Pixar).
o 1989: Film Tin Toy (Pixar) memenangkan Academy
Award.
o 1995: Diproduksi fillm Toy Story (Pixar dan
Disney) sebagai film3D animasi panjang pertama.
o Akhir tahun 90-an, ditemukannya teknologi
visualisasi interaktif untuk ilmu pengetahuan dan kedokteran, artistic
rendering, image based rendering, path tracing, photon maps, dll.
o Tahun 2000 ditemukannya teknologi perangkat
keras untuk real-time photorealistic rendering
Kemajuan dalam komputer grafis adalah berasal
dari seorang mahasiswa MIT, Ivan Sutherland. Pada tahun 1961 Sutherland
menciptakan program komputer untuk menggambar yang disebut Sketchpad. Dengan
menggunakan Light Pen, Sketchpad dapat menggambar bentuk sederhana pada layar
komputer, menyimpan mereka dan bahkan bisa memanggil mereka lagi nanti. Light
pen itu sendiri memiliki sel fotolistrik kecil di ujungnya. Sel ini dipancarkan
pulsa elektronik setiap kali ditempatkan di depan layar komputer dan pistol
elektron layar itu ditembakkan langsung dalam. Dengan waktu yang singkat pulsa
elektronik ini tahu dimana lokasi electron gun, ini mudah untuk menentukan
persis di mana pena ini di layar pada saat tertentu. Begitu yang ditentukan,
komputer kemudian bisa menggambar kursor di lokasi itu.
Sutherland tampaknya terus mencari solusi yang
sempurna untuk banyak masalah grafis yang dihadapinya. Bahkan saat ini, banyak
standar grafis komputer interface mulai mendapatkan masalah dengan program
Sketchpad awal. Salah satu contoh dari hal ini adalah dalam batasan menggambar.
Jika seseorang ingin menggambar persegi misalnya, ia tidak perlu khawatir
tentang menggambar empat baris sempurna untuk membentuk tepi kotak. Satu hanya
dapat menentukan bahwa ia ingin menggambar kotak, dan kemudian tentukan lokasi
dan ukuran kotak. Perangkat lunak kemudian akan membangun sebuah kotak yang
sempurna, dengan dimensi yang tepat dan di lokasi yang tepat. Contoh lain
adalah bahwa perangkat lunak Sutherland model objek - tidak hanya gambar objek.
Dengan kata lain, dengan model mobil, orang bisa mengubah ukuran ban tanpa
mempengaruhi sisa mobil. Itu bisa meregangkan tubuh mobil tanpa deformasi ban.
Revolusi perangkat Hardware
1.
Hukum Moore : “Setiap
12-18 bulan, kemampuan komputer meningkat dua kali lipat dalam hal
harga/performance untuk setiap penggandaan jumlah transistor”.
2.
Memory grafik dan
kecepatan jaringan meningkat secara eksponensial, Graphics chips meningkat
setiap 6-9 bulan (contoh : Sony Playstation 2, nVidia GeForce FX, Nintendo
GameCube, Microsoft Xbox).
Sistem Grafika computer dibedakan antara
non-interaktif dan interaktif:
1.
Grafika computer non
interaktif: dibuat sebagai akhir dari proses dalam bentuk hardcopy.
o Grafika dengan lineprinter: Sistem computer
general purpose dengan perangkat lunak yang sesuai bias digunakan sebagai suatu
system grafika (seperti di masa-masa awalnya grafika computer) yaitu dengan
mengkombinasikan berbagai karakter dengan cara cetak-tumpuk untuk meniru pola
shading (gradasi tingkat keabuan).
o Grafika dengan plotter dan semcam: terutama
untuk grafika “line-drawing”.Grafika dengan hi quality printers: laser,
ink-jet, thermal, dsb.
2.
Grafika interaktif
dapat dibuat dan dimanipulasi secara interaktif pada layar peranti peraga.
Peranti-peranti peraga interaktif yang paling umum digunakan: CRT (tabung sinar
katoda). Lain-lain: DVST, plasma-panel, LED/LCD, laser, dsb.
Komponen Dasar Sistem Grafik Interaktif :
Komponen Dasar Sistem Grafik Interaktif :
o Masukan : mouse, tablet dan stylus, peralatan
force feedback, scanner, live video stream, dll
o Proses dan Penyimpanan
o Keluaran : layar, printer berbasis kertas,
perekam video, non-linear editor, dll
Tujuan dari grafika komputer ini adalah untuk memungkinkan manusia
berkomunikasi lewat gambar, bagan-bagan, dan diagram.
Bagian dari grafika komputer meliputi:
* Geometri: mempelajari cara menggambarkan
permukaan bidang
* Animasi: mempelajari cara menggambarkan dan memanipulasi gerakan
* Rendering: mempelajari algoritma untuk menampilkan efek cahaya
* Citra (Imaging): mempelajari cara pengambilan dan penyuntingan gambar
* Animasi: mempelajari cara menggambarkan dan memanipulasi gerakan
* Rendering: mempelajari algoritma untuk menampilkan efek cahaya
* Citra (Imaging): mempelajari cara pengambilan dan penyuntingan gambar
Beberapa perangkat Lunak Grafis meliputi:
1.
Corel Draw
2.
Auto CAD
3.
3D Studio MAX
4.
Visio
5.
dll.
Aplikasi-aplikasi computer grafik :
1.
Computer-Aided Design (CAD)
CAD adalah alat bantu berbasis komputer yang digunakan dalam proses analisis dam desain, khusunya untuk sistem arsitektural dan engineering. CAD banyak digunakan dalam mendesain bagunan, mobil, pesawat, komputer, alat-alat elektronik, peralatan rumah tangga, dan berbagai produk lainnya. Contoh aplikasinya: AutoCAD.
CAD adalah alat bantu berbasis komputer yang digunakan dalam proses analisis dam desain, khusunya untuk sistem arsitektural dan engineering. CAD banyak digunakan dalam mendesain bagunan, mobil, pesawat, komputer, alat-alat elektronik, peralatan rumah tangga, dan berbagai produk lainnya. Contoh aplikasinya: AutoCAD.
2. Computer-Aided Sofware Engineering (CASE)
CASE mirip dengan CAD tetapi digunakan dalam bidang sofware engineering. CASE digunakan dalam memodelkan user requirement, pemodelan basisdata, workflow dalam proses bisnis, struktur program, dan sebagainya. Contoh aplikasi: Rational Rose, SyBase Power Designer
CASE mirip dengan CAD tetapi digunakan dalam bidang sofware engineering. CASE digunakan dalam memodelkan user requirement, pemodelan basisdata, workflow dalam proses bisnis, struktur program, dan sebagainya. Contoh aplikasi: Rational Rose, SyBase Power Designer
3. Virtual Reality
Virtual Reality adalah lingkungan virtual yang seakan-akan begitu nyata di mana user dapat berinteraksi dengan objek-objek dalam suasana atau lingkungan 3 dimensi. Perangkat keras khusus digunakan untuk memberikan efek pemadangan 3 dimensi dan memampukan user beriteraksi dengan objek-objek yang ada dalam lingkungan. Aplikasi ini dapat memberikan keutungan berupa mengurangi resiko cedera selama latihan, mengurangi biaya penerbangan, melatih perwira sebelum melakukan terjun payung sesungguhnya.
Virtual Reality adalah lingkungan virtual yang seakan-akan begitu nyata di mana user dapat berinteraksi dengan objek-objek dalam suasana atau lingkungan 3 dimensi. Perangkat keras khusus digunakan untuk memberikan efek pemadangan 3 dimensi dan memampukan user beriteraksi dengan objek-objek yang ada dalam lingkungan. Aplikasi ini dapat memberikan keutungan berupa mengurangi resiko cedera selama latihan, mengurangi biaya penerbangan, melatih perwira sebelum melakukan terjun payung sesungguhnya.
4. Visualisasi Data
Visualisasi Data adalah teknik-teknik membuat image, diagram, atau animasi untuk mengkomunikasikan pesan. Visualisasi telah menjadi cara yang efektif dalam mengkomunikasikan baik data atau ide abstrak maupun nyata sejak permulaan manusia.
Visualisasi Data adalah teknik-teknik membuat image, diagram, atau animasi untuk mengkomunikasikan pesan. Visualisasi telah menjadi cara yang efektif dalam mengkomunikasikan baik data atau ide abstrak maupun nyata sejak permulaan manusia.
5. Pendidikan dan Pelatihan
Model-model yang dihasilkan melalui komputer yang tentunya menggunakan grafis biasa digunakan sebagai alat bantu pendidikan. Model-model seperti proses-proses fisika dan kimia, fungsi-fungsi psikologi, simulasi, dan sebagainya dapat membantu sesorang memahami bagaimana operasi atau proses yang terjadi dalam suatu sistem.
Model-model yang dihasilkan melalui komputer yang tentunya menggunakan grafis biasa digunakan sebagai alat bantu pendidikan. Model-model seperti proses-proses fisika dan kimia, fungsi-fungsi psikologi, simulasi, dan sebagainya dapat membantu sesorang memahami bagaimana operasi atau proses yang terjadi dalam suatu sistem.
6. Computer Art
Computer art adalah penggunaan komputer grafis untuk menghasilkan karya-karya seni. Hasil dapat berupa kartun, potret, foto, layout media cetak, logo, lukisan abstrak, desain interior atau eksterior, dan lain sebagainya.
Computer art adalah penggunaan komputer grafis untuk menghasilkan karya-karya seni. Hasil dapat berupa kartun, potret, foto, layout media cetak, logo, lukisan abstrak, desain interior atau eksterior, dan lain sebagainya.
7. Hiburan
Komputer grafis juga digunakan secara luas pada bidang entertainment khususnya pertelevisian, motion pictures, animasi, video clips, dan sebagainya. Film-film animasi yagn berdar di pasaran seperti Shrek, Monster Inc., anime-anime Jepang, menggunakan komputer grafis.
Komputer grafis juga digunakan secara luas pada bidang entertainment khususnya pertelevisian, motion pictures, animasi, video clips, dan sebagainya. Film-film animasi yagn berdar di pasaran seperti Shrek, Monster Inc., anime-anime Jepang, menggunakan komputer grafis.
8. Video Game
Video game adalah permainan yang melibatkan interaksi dengan user interface untuk menghasilkan umpan balik berupa visualisasi pada perangkat video. Aplikasi banyak beredar di pasaran mulai yang sederhana 2 dimensi, seperti tetris, hingga yang rumit, 3 dimensi, dan memerlukan resource banyak, seperti game sepakbola Winning Eleven. Dari yang yang standalone hingga online network, seperti Ragnarok. Dari PC, console, hingga mobile devices.
Video game adalah permainan yang melibatkan interaksi dengan user interface untuk menghasilkan umpan balik berupa visualisasi pada perangkat video. Aplikasi banyak beredar di pasaran mulai yang sederhana 2 dimensi, seperti tetris, hingga yang rumit, 3 dimensi, dan memerlukan resource banyak, seperti game sepakbola Winning Eleven. Dari yang yang standalone hingga online network, seperti Ragnarok. Dari PC, console, hingga mobile devices.
9. Pengolahan Citra
Pengolahan citra berkaitan dengan teknik-teknik untuk modifikasi dna intepretasi citra, meningkatkan kualitas citra, analisis citra, dan mengenali pola-pola visual yang ada dalam suatu citra. Contoh: perbaikan citra sehingga menjadi lebih jelas.
Pengolahan citra berkaitan dengan teknik-teknik untuk modifikasi dna intepretasi citra, meningkatkan kualitas citra, analisis citra, dan mengenali pola-pola visual yang ada dalam suatu citra. Contoh: perbaikan citra sehingga menjadi lebih jelas.
1. Computer Vision
Compute Vision adalah ilmu pengetahuan dan teknologi dari mesin-mesin yang dapat melihat. Sebagai disiplin ilmu, computer vision berkaitan dengan teori untuk membangun sistem buatan yang dapat menarik informasi dari citra-citra. Informasi tersebut kemudian dapat digunakan sebagai input dalam mengambil keputusan atau tindakan. Data citra yang diambil dapat berupa video, citra dari berbagai kamera, dan sebagainya.
Compute Vision adalah ilmu pengetahuan dan teknologi dari mesin-mesin yang dapat melihat. Sebagai disiplin ilmu, computer vision berkaitan dengan teori untuk membangun sistem buatan yang dapat menarik informasi dari citra-citra. Informasi tersebut kemudian dapat digunakan sebagai input dalam mengambil keputusan atau tindakan. Data citra yang diambil dapat berupa video, citra dari berbagai kamera, dan sebagainya.
1. Graphical User Interface
Graphical User Inteface adalah antarmuka grafis yang mempermudah interaksi manusia dengan komputer dan alat-alat yang dikendalikan oleh komputer. GUI sudah sering kita lihat berupa window-window yang digunakan pada sistem operasi Windows, Mac, maupun Linux.
Graphical User Inteface adalah antarmuka grafis yang mempermudah interaksi manusia dengan komputer dan alat-alat yang dikendalikan oleh komputer. GUI sudah sering kita lihat berupa window-window yang digunakan pada sistem operasi Windows, Mac, maupun Linux.
2. Library Grafik
OPENGL
1. Pengertian OpenGL
OpenGL (Open
Graphics Library) adalah suatu spefikasi 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 ata 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.
OpenGL pada
awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun
dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa
pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi,
maupun Fortran. Namun OpenGL di-package secara berbeda-beda sesuai
dengan bahasa pemrograman yang digunakan
2. Sejarah OpenGL
Tahun 1980-an,
mengembangkan perangkat lunak yang dapat berfungsi dengan berbagai
hardware grafis adalah tantangan nyata. Pengembang perangkat lunak
antarmuka dan kebiasaan menulis driver untuk setiap perangkat keras yang
menjadikannya semakin mahal dan mengakibatkan banyak duplikasi.
OpenGL Dikembangkan oleh Silicon Graphics (SGI) pada tahun 1990-an. Pendahulu openGL adalah IRIS GL dari Silicon Grapics, yang pada awalnya berupa GL(Glut Library) 2D, yang berevolusi menjadi API program 3D untuk workstation canggih milik perusahaan tersebut.
OpenGL adalah
hasil dari usaha SGI untuk mengembangkan dan meningkatkan kemampuan
portable IRIS. API grafis yang baru akan menawarkan kemampuan IRIS GL
tetapi dengan standar yang lebih terbuka, dengan input dari pembuatan
hardware lain dan sistem operasi lain, dan akan memudahkan adaptasi ke
hardware platform dan sistem operasi lain. SGI menganggap bahwa IrisGL
API itu sendiri tidak cocok untuk membuka karena masalah lisensi dan
paten. Juga, IrisGL memiliki fungsi-fungsi API yang tidak relevan dengan
grafis 3D. Sebagai contoh, termasuk windowing, keyboard dan mouse API,
sebagian karena dikembangkan sebelum Sistem X Window dan Sun’s NEWS
sistem dikembangkan.
Untuk lebih
mempopulerkan openGL SGI mengijinkan pihak lain untuk mengembangkan
standart openGL,dan beberapa vendor menyambut hal tersebut dengan
membentuk OpenGL Architecture Review Board (ARB).
Pendiri openGL
adalah SGI, Digital Equepment Corporation, IBM, Intel dan Microsoft,
pada tanggal 1 juli 1992 OpenGL versi 1.0 diperkenalkan.
Tahun 1994 SGI
mengeluarkan gaggasan yang disebut “OpenGL + +” yang mencakup
unsur-unsur seperti grafik adegan-API (mungkin berbasis di sekitar
mereka Performer teknologi). Spesifikasi itu beredar di kalangan
beberapa pihak yang berkepentingan – tetapi tidak pernah berubah menjadi
sebuah produk pada tahun 1995, yang akan menjadi pesaing utama dari
OpenGL. Pada tanggal 17 Desember 1997 Microsoft dan SGI memprakarsai
Fahrenheit proyek, yang merupakan upaya bersama dengan tujuan
mempersatukan OpenGL dan Direct3D antarmuka (dan menambahkan adegan-API
grafik juga). Pada tahun 1998 Hewlett-Packard bergabung dengan proyek
ini. Ini awalnya menunjukkan beberapa janji untuk membawa dunia komputer
grafis 3D interaktif API, melainkan karena kendala keuangan di SGI,
alasan strategis di Microsoft, dan kurangnya dukungan industri , itu
ditinggalkan pada tahun 1999.
OpenGL
mengalami beberapa revisi yang sebagian besar ada penambahan ektensi
secara berangsur-angsur pada main body dari API. Contohnya OpenGL 1.1
(1997) ada penambahan glBindTexture. OpenGL 2.0 (2004) memasukkan
tambahan yang paling penting yaitu OpenGL Shading Language (GLSL).
GLUT (GL Utility Toolkit)
1. Pengertian
Dikarenakan
OpenGL tidak menyediakan interface sistem window ataupun input, maka
untuk tujuan ini aplikasi harus mengunakan keseragaman spesifik
platform. Dengan demikian jika aplikasi yang diinginkan tidak hanya
berjalan di satu platfrom saja, maka perlu menggunakan GLUT
GLUT merupakan
pengembangan dari OpenGL yang didesain untuk aplikasi dengan level kecil
hingga menengah dan menggunkan callback function untuk menambahkan
interaksi dari user. GLUT menyediakan interface untuk menejemen window,
menu, dan peralatan input (keyboard, dan mouse). GLUT juga menyediakan
fungsi otomatis untuk menggambar objek primitif (garis, lingkaran,
titik, persegi),objek 3 dimensi wire (kerangka) maupun yang solid,
seperti cube (kubus), sphere (bola), dan teapot (poci teh), cone
(kerucut), torus, dan lain-lain .
GLUT dikembangkan oleh Mark Kilgard, yaitu penulis OpenGL Programming for the X Window System dan The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics, ketika dia masih bekerja di Silicon Graphics.
Dua tujuan GLUT
ialah menciptakan fleksibitas code antar platform yang dapat dijalankan
lebih dari satu sistem operasi (Windows, Linux, Mac OS X, FreeBSD,
OpenBSD, NetBSD), dan untuk lebih mudah mempelajari OpenGL. Dengan
menggunakan GLUT hanya memerlukan sedikit code dibandingkan dengan
OpenGL, tanpa mengetahui spesifikasi sistem operasi, dikarenakan OpenGL
adalah sebagai mesin.
2. Pemrograman Berbasis Event
GLUT pada
dasarnya dibangun untuk menciptakan aplikasi grafis menggunakan
pemrograman yang bersifat prosedural. Di dalamnya terdapat fungsi main loop yang diatur oleh GLUT dan looping yang terjadi dalam aplikasi bertujuan untuk penanganan fungsi-fungsi callback sebagai input dari user seperti fungsi redraw, mouse, keyboard, joystick, dan lain-lain.
Untuk pemrograman OpenGL menggunakan C++, diperlukan library tambahan yaitu :
- glut.h yang dicopy ke drive:\Program Files\Microsoft Visual Studio 2010\Vc\include\GL
- glut32.lib yang dicopy ke drive:\Program Files\Microsoft Visual Studio 2010\Vc\lib
- glut32.dll yang dicopy ke drive:\Windows\System
3. Menejemen Window
Ada 5 fungsi yang harus dipanggil untuk melakukan instalansi window yaitu:
a. glutInit(int argc,char**argv)
Fungsi ini
menginisialisasi glut dan memproses argument command_line yg
disertakan(jika ada). Fungsi ini harus di panggil pertama kali sebelum
pemanggilan terhadap fungsi-fungsi yang lain.
b. glutInitDisplayMode(unsigned intmode)
Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model pewarnaan RGBA
atau indek warna. Dengan fungsi ini juga bisa menentukan apakah akan
menggunakan windows buffer single atau double.
c. GlutInitWindowPosisition(int.x,int.y)
Fungsi ini menentukan letak window dengan patokkannya ialah pada window kiri atas.
d. glutInitWindowSize(int width,int height)
fungsi ini menspesifikasikan ukuran window yang dibuat dalam pixel.
e. glutCreateWindow(char *string)
fungsi untuk membuat window dalam konteks openGL, dan akan menghasilkan identitas atau judul window tersebut.
4. Windowing dengan GLUT
Display Callback
glutDisplayFunc(void(*func)(void))
Fungsi ini memanggil fungsi lain yg menentukan konten dari windows yg telah di buat sebelumnya.
glutPostRedisplay(void)
Untuk mengubah konten window
glutMainLoop(void)
Fungsi untuk event perulangan, display pada callback akan terus ditampilkan selama aplikasi itu tidak ditutup.
3. MORPHING Pada Komputer Grafik
Morphing adalah perubahan bentuk obyek gambar secara bertahap.
Morphing merupakan salah satu teknik yang banyak digunakan dalam dunia
entertainment karena efek dari morphing ini sangat menarik untuk
diamati. Morphing memerlukan dua gambar, yaitu gambar awal dan gambar
akhir. Morphing digunakan untuk membuat gambar yang merupakan gambar
perubahan setiap satuan waktu dari gambar asal ke gambar hasil. Morphing
secara sederhana dapat dilakukan dengan menggunakan interpolasi linier.
contoh Morphing
Rumus Interpolasi
Morphing suatu obyek gambar adalah hasil perubahan pada setiap titiknya, atau dengan kata lain morphing adalah suatu proses perubahan koordinat x dan y pada setiap titik dalam sebuah objek sehingga menjadi objek yang baru. Berikut ini contoh proses morphing pada suatu objek.
Pseudocode Algoritma pada fungsi interpolasi linier :
contoh Morphing menggunakan Sqirls morph
contoh Morphing
Rumus InterpolasiMorphing suatu obyek gambar adalah hasil perubahan pada setiap titiknya, atau dengan kata lain morphing adalah suatu proses perubahan koordinat x dan y pada setiap titik dalam sebuah objek sehingga menjadi objek yang baru. Berikut ini contoh proses morphing pada suatu objek.
Pseudocode Algoritma pada fungsi interpolasi linier :
function interpolasi_linier(x1 : integer,x2 : integer,y1 : integer,y2 : integer,x : integer):integer
var y:integer;begin y:=(x(y1-y2)-(x1*y2)+(x2*y1))/(x2-x1);contoh Morphing menggunakan Sqirls morph
4. FRAKTAL
Pengertian Fraktal
Fraktal adalah benda geometris yang kasar pada segala skala, dan terlihat
dapat "dibagibagi" dengan cara yang radikal. Beberapa fraktal bisa dipecah menjadi
beberapa bagian yang semuanya mirip dengan fraktal aslinya. Fraktal dikatakan
memiliki detil yang tak hingga dan dapat memiliki struktur serupa diri pada tingkat
perbesaran yang berbeda. Pada banyak kasus, sebuah fraktal bisa dihasilkan dengan
cara mengulang suatu pola, biasanya dalam proses rekursif atau iteratif.
Jenis – Jenis Fraktal
Terdapat banyak sekali tipe dari fraktal, namun pada dasarnya fraktal dapat
digolongkan ke dalam 6 kelompok besar :
• Fraktal yang diturunkan dari geometri standar menggunakan transformasi
iterasi pada bentuk-bentuk standar seperti garis lurus (the Cantor dust or the
von Koch curve), segitiga (the Sierpinski triangle), atau kubus (the Menger
sponge).Bentuk fraktal pertama yang diciptakan di akhir abad 19 dan 20
merupakan bagian dari kelompok ini.
• IFS (Iterated Function Sistems). Jenis fraktal ini diperkenalkan oleh Michael
Barnsley. Struktur dari fraktal ini ditentukan oleh satu set dari fungsi linear
yang transformasinya terjadi berdasarkan keseragaman, translasi, dan rotasi.
Fungsi yang dimasukkan ke dalam sistem dipilih secara acak, tapi set akhir/
final adalah pasti dan memperlihatkan struktur fraktal.
• Strange Attractors. Bentuk ini dapat dikatakan adalah representasi dari
pergerakan chaos/ acak. Bentuk ini sangat kompleks dan dibentuk dari garis
yang memiliki panjang yang tidak terbatas, digambarkan dengan perulangan
terus-menerus, tanpa pernah bersilangan.
• Plasma fractals. Dibentuk dengan teknik gerak Brown (Brownian motion)
atau algoritma titik tengah (midpoint). Fraktal jenis ini menghasilkan tekstur
indah dengan sktruktur fraktal seperti awan, api, batu, kayu, dan lain-lain.
Banyak digunakan pada program CAD. Seniman fraktal yang sudah ahli
sangat menyukai plasma untuk membuat tekstur atau latar dari gambar
mereka.
• L-Sistems. Juga disebut sebagai sistem Lindenmayer, tidak diciptakan untuk
membentuk fraktal, tapi untuk memodelkan pertumbuhan dan interaksi.
L-Sistem adalah grammar formal yang secara berulang-ulang melakukan
aturan-aturan (rules) menjadi sebuah set. Sebagai hasilnya, kadang-kadang
dihasilkan suatu struktur fraktal.
• Gambar fraktal yang diciptakan dengan iterasi dari fungsi polinomial.
Mungkin adalah jenis fraktal yang paling terkenal (Julia dan Mandelbrot).
Hanya jenis inilah yang sudah sangat luas diteliti dan dikembangkan dengan
berbagai algoritma pewarnaan.
SEGITIGA SIERPINSKI
Segitiga Sierpinski merupakan salah satu fraktal yang diturunkan dari
geometri standar menggunakan transformasi iterasi pada bentuk-bentuk standar
yaitu segitiga.
Untuk membentuk SS, pada langkah pertama ( n = 0) kita mulai dari sebuah
segitiga sama sisi yang masing-masing sisinya bernilai 1 satuan. Pada langkah
selanjutnya ( n = 1), kita harus memotong seluruh bagian tengah segitiga tersebut
oleh suatu bentuk segitiga terbalik. Kemudian pada n = 2 , lakukan hal yang sama
untuk setiap segitiga yang terbentuk dari langkah sebelumnya. Proses tersebut
diulang terus menerus sampai n = ¥. (Tentu saja, hal ini dapat dilakukan dalam
pikiran, tetapi tidak dalam kenyataan.) Himpunan dari segitiga pada langkah terakhir
( n = ¥) adalah Segitiga Sierpinski yang diinginkan
6. Rendering
Dalam
pemodelan geometris baik yang 2D ataupun 3D maka kita mengenal istilah
rendering. Sebenarnya apa sih yang di maksud rendering itu?? Rendering
adalah suatu proses yang di lakukan untuk menghasilkan citra yang lebih
solid dari model yang telah di bentuk.
Rendering
merupakan salah satu sub topik utama dalam 3D computer graphics. Dan
pada prakteknya selalu berhubungan dengan aspek-aspek yang lain. Seperti
Graphic pipeline, yang merupakan tahapan terakhir, memberikan tampilan
akhir pada model dan animasi.
Rendering tidak hanya digunakan pada game programming. Rendering juga sering digunakan untuk desain arsitektur, simulator, movie atau juga spesial effect pada tayangan televisi, dan design visualization. Setiap bidang tadi mempunyai perbedaan dalam keseimbangan antara features dan tehnik dalam rendering. Terkadang rendering juga diintegrasikan dengan model yang lebih besar, paket animasi, terkadang juga berdiri sendiri dan juga terkadang free open-source product.
Rendering tidak hanya digunakan pada game programming. Rendering juga sering digunakan untuk desain arsitektur, simulator, movie atau juga spesial effect pada tayangan televisi, dan design visualization. Setiap bidang tadi mempunyai perbedaan dalam keseimbangan antara features dan tehnik dalam rendering. Terkadang rendering juga diintegrasikan dengan model yang lebih besar, paket animasi, terkadang juga berdiri sendiri dan juga terkadang free open-source product.
Dalam
bidang 3D Graphics sendiri rendering harus dilakukan secara cermat dan
teliti. Maka dari itu terkadang dilakukan pre rendering sebelum
rendering dilaksanakan. Per rendering sendiri adalah proses
pengkomputeran secara intensif ,yang biasanya digunakan untuk pembuatan
film, menggunakan graphics card dan 3D hardware accelerator untuk
penggunaan real time rendering.
Rendering
merupakan sebuah proses untuk menghasilkan sebuah citra 2D dari data
3D. Prose ini bertujuan untuk untuk memberikan visualisasi pada user
mengenai data 3D tersebut melalui monitor atau pencetak yang hanya dapat
menampilkan data 2D.
Ø Metode Rendering
Metode rendering yang paling sederhana dalam grafika 3D :
· Wireframe rendering
Wireframe
yaitu Objek 3D dideskripsikan sebagai objek tanpa permukaan. Pada
wireframe rendering, sebuah objek dibentuk hanya terlihat garis-garis
yang menggambarkan sisi-sisi edges dari sebuah objek. Metode ini dapat
dilakukan oleh sebuah komputer dengan sangat cepat, hanya kelemahannya
adalah tidak adanya permukaan, sehingga sebuah objek terlihat
tranparent. Sehingga sering terjadi kesalahpahaman antara siss depan dan
sisi belakang dari sebuah objek.
· Hidden Line Rendering
Metode
ini menggunakan fakta bahwa dalam sebuah objek, terdapat permukaan yang
tidak terlihat atau permukaan yang tertutup oleh permukaan lainnya.
Dengan metode ini, sebuah objek masih direpresentasikan dengan
garis-garis yang mewakili sisi dari objek, tapi beberapa garis tidak
terlihat karena adanya permukaan yang menghalanginya.
Metode ini lebih lambat dari dari wireframe rendering, tapi masih dikatakan relatif cepat. Kelemahan metode ini adalah tidak terlihatnya karakteristik permukaan dari objek tersebut, seperti warna, kilauan (shininess), tekstur, pencahayaan, dll.
Metode ini lebih lambat dari dari wireframe rendering, tapi masih dikatakan relatif cepat. Kelemahan metode ini adalah tidak terlihatnya karakteristik permukaan dari objek tersebut, seperti warna, kilauan (shininess), tekstur, pencahayaan, dll.
· Shaded Rendering
Pada
metode ini, komputer diharuskan untuk melakukan berbagai perhitungan
baik pencahayaan, karakteristik permukaan, shadow casting, dll. Metode
ini menghasilkan citra yang sangat realistik, tetapi kelemahannya adalah
lama waktu rendering yang dibutuhkan.
Ø Proses Rendering dari Objek 3D
Secara umum, proses untuk menghasilkan rendering dua dimensi dari objek-objek 3D melibatkan 5 komponen utama :
Secara umum, proses untuk menghasilkan rendering dua dimensi dari objek-objek 3D melibatkan 5 komponen utama :
· Geometri
· Kamera
Dalam
grafika 3D, sudut pandang (point of view) adalah bagian dari kamera.
Kamera dalam grafika 3D biasanya tidak didefinisikan secara fisik, namun
hanya untuk menentukan sudut pandang kita pada sebuah world, sehingga
sering disebut virtual camera. Sebuah kamera dipengaruhi oleh dua buah
faktor penting.
Faktor pertama adalah lokasi (camera location). Lokasi sebuah kamera ditentukan dengan sebuah titik (x,y,z).
Faktor kedua adalah arah pandang kamera. Arah pandang kamera ditunjukkan dengan sebuah sistem yang disebut system koordinat acuan pandang atau sistem (U,N,V). Arah pandang
kamera sangat penting dalam membuat sebuah citra, karena letak dan arah pandang kamera menentukan apa yang terlihat oleh sebuah kamera. Penentuan apa yang dilihat oleh kamera
biasanya ditentukan dengan sebuah titik (x,y,z) yang disebut camera interest.
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. Objekobjek 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.
Faktor pertama adalah lokasi (camera location). Lokasi sebuah kamera ditentukan dengan sebuah titik (x,y,z).
Faktor kedua adalah arah pandang kamera. Arah pandang kamera ditunjukkan dengan sebuah sistem yang disebut system koordinat acuan pandang atau sistem (U,N,V). Arah pandang
kamera sangat penting dalam membuat sebuah citra, karena letak dan arah pandang kamera menentukan apa yang terlihat oleh sebuah kamera. Penentuan apa yang dilihat oleh kamera
biasanya ditentukan dengan sebuah titik (x,y,z) yang disebut camera interest.
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. Objekobjek 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.
· 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 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, namun intensitas cahaya yang diterima objek bergantung dari posisi sumber cahaya. Tipe ini mirip seperti lampu pijar dalam dunia nyata.
b. spotlight
memancarkan cahaya ke daerah tertentu dalam bentuk kerucut. Sumber cahaya terletak pada puncak kerucut. Hanya objek-objek yang terletak pada daerah kerucut tersebut yang akan nampak.
c. ambient light
cahaya latar/alam. Cahaya ini diterima dengan intensitas yang sama oleh setiap permukaan pada benda. Cahaya latar tersebut dimodelkan mengikuti apa yang terjadi di alam, diaman dalam keadaan tanpa sumber cahaya sekalipun, benda masih dapat dilihat.
d. area light
e. directional light
memancarkan cahaya dengan intensitas sama ke suatu arah tertentu. Letak tidak mempengaruhi intensitas cahayanya. Tipe ini dapat menimbulkan efek seolah-olah sumber cahaya berada sangat jauh dari objek
f. parallel point
sama dengan directional, hanya pencahayaan ini memiliki arah dan posisi.
Model dari pencahayaan, dipakai untuk menghitung intensitas dari cahaya yang terlihat dari setiap posisi pada setiap permukaan benda yang terlihat oleh kamera. Ketika melihat sebuah benda, terlihat cahaya yang dipantulkan dari permukaan benda, dimana cahaya ini merupakan intregrasi dari sumber-sumber cahaya serta cahaya yang berasal dari pantulan cahaya permukaan-permukaan yang lain. Karena itu benda-benda yang tidak langsung menerima cahaya dari sumber cahaya, masih mungkin terlihat bila menerima cahaya pantulan yang cukup dari
benda didekatnya.
Model sederhana dari sumber cahaya adalah sebuah titik sumber, dimana dari titik ini cahaya dipancarkan. Perhitungan pencahayaan bergantung pada sifat dari permukaan yang terkena cahaya, kondisi dari cahaya latar serta spesifikasi sumber cahaya.
Semua sumber cahaya dimodelkan sebagai sumber titik yang dispesifikasikan dengan :
a. Lokasi; Lokasi (x,y,z) dari sebuah sumber cahaya akan menentukan pengaruhnya terhadap sebuah objek.
b. Intensitas; Intensitas cahaya menyatakan kekuatan cahaya yang dipancarkan oleh sebuah sumber cahaya. Parameter ini merupakan angka, yang biasanya makin besar nilainya, makin terang sumber cahaya tersebut.
c. Warna; Warna cahaya dari sumber ini akan mempengaruhi warna dari sebuah objek, jadi selain warna objek tersebut warna cahaya yang jatuh pada objek tersebut akan mempengaruhi warna pada rendering. Warna cahaya ini biasanya terdiri dari 3 warna dasar grafika komputer, yaitu: merah, hijau, biru atau lebih dikenal dengan RGB.
yang ada. Sebuah sumber cahaya memiliki jenis. Pada grafika 3D
dikenal beberapa macam sumber cahaya, yaitu :
a. point light
memancar ke segala arah, namun intensitas cahaya yang diterima objek bergantung dari posisi sumber cahaya. Tipe ini mirip seperti lampu pijar dalam dunia nyata.
b. spotlight
memancarkan cahaya ke daerah tertentu dalam bentuk kerucut. Sumber cahaya terletak pada puncak kerucut. Hanya objek-objek yang terletak pada daerah kerucut tersebut yang akan nampak.
c. ambient light
cahaya latar/alam. Cahaya ini diterima dengan intensitas yang sama oleh setiap permukaan pada benda. Cahaya latar tersebut dimodelkan mengikuti apa yang terjadi di alam, diaman dalam keadaan tanpa sumber cahaya sekalipun, benda masih dapat dilihat.
d. area light
e. directional light
memancarkan cahaya dengan intensitas sama ke suatu arah tertentu. Letak tidak mempengaruhi intensitas cahayanya. Tipe ini dapat menimbulkan efek seolah-olah sumber cahaya berada sangat jauh dari objek
f. parallel point
sama dengan directional, hanya pencahayaan ini memiliki arah dan posisi.
Model dari pencahayaan, dipakai untuk menghitung intensitas dari cahaya yang terlihat dari setiap posisi pada setiap permukaan benda yang terlihat oleh kamera. Ketika melihat sebuah benda, terlihat cahaya yang dipantulkan dari permukaan benda, dimana cahaya ini merupakan intregrasi dari sumber-sumber cahaya serta cahaya yang berasal dari pantulan cahaya permukaan-permukaan yang lain. Karena itu benda-benda yang tidak langsung menerima cahaya dari sumber cahaya, masih mungkin terlihat bila menerima cahaya pantulan yang cukup dari
benda didekatnya.
Model sederhana dari sumber cahaya adalah sebuah titik sumber, dimana dari titik ini cahaya dipancarkan. Perhitungan pencahayaan bergantung pada sifat dari permukaan yang terkena cahaya, kondisi dari cahaya latar serta spesifikasi sumber cahaya.
Semua sumber cahaya dimodelkan sebagai sumber titik yang dispesifikasikan dengan :
a. Lokasi; Lokasi (x,y,z) dari sebuah sumber cahaya akan menentukan pengaruhnya terhadap sebuah objek.
b. Intensitas; Intensitas cahaya menyatakan kekuatan cahaya yang dipancarkan oleh sebuah sumber cahaya. Parameter ini merupakan angka, yang biasanya makin besar nilainya, makin terang sumber cahaya tersebut.
c. Warna; Warna cahaya dari sumber ini akan mempengaruhi warna dari sebuah objek, jadi selain warna objek tersebut warna cahaya yang jatuh pada objek tersebut akan mempengaruhi warna pada rendering. Warna cahaya ini biasanya terdiri dari 3 warna dasar grafika komputer, yaitu: merah, hijau, biru atau lebih dikenal dengan RGB.
· Karakteristik Permukaan
Karakteristik
permukaan dari sebuah objek adalah sifat dari permukaan sebuah objek.
Karakteristik permukaan ini meliputi: warna, tekstur, sifat permukaan,
seperti kekasaran (roughness), refleksifitas, diffuseness (jumlah cahaya
yang dipantulkan oleh objek), transparansi, dan lain-lain.
Parameter Warna dalam karakteristik permukaan direpresentasikan dengan tiga warna dasar, yaitu RGB. Saat rendering, warna pada sebuah objek tergantung dari warna dalam karakteristik permukaan dan warna cahaya yang mengenainya. Jadi citra hasil rendering mungkin akan memiliki warna yang sedikit berbeda dengan warna objek tersebut.
Parameter tekstur direpresentasikan dengan sebuah nama file. File ini akan menjadi tekstur pada permukaan objek tersebut. Selain itu juga ada beberapa parameter dalam tekstur yang berguna untuk menentukan letak tekstur pada sebuah objek, sifat tekstur, perulangan tekstur, dan lain-lain.
Sifat Permukaan, seperti diffuseness, refleksisifitas, dan lain-lain direpresentasikan dengan sebuah nilai. Nilai ini menentukan sifat dari parameter-parameter tersebut. Misalnya pada roughness, makin besar nilai parameternya, makin kasar objek tersebut.
Parameter Warna dalam karakteristik permukaan direpresentasikan dengan tiga warna dasar, yaitu RGB. Saat rendering, warna pada sebuah objek tergantung dari warna dalam karakteristik permukaan dan warna cahaya yang mengenainya. Jadi citra hasil rendering mungkin akan memiliki warna yang sedikit berbeda dengan warna objek tersebut.
Parameter tekstur direpresentasikan dengan sebuah nama file. File ini akan menjadi tekstur pada permukaan objek tersebut. Selain itu juga ada beberapa parameter dalam tekstur yang berguna untuk menentukan letak tekstur pada sebuah objek, sifat tekstur, perulangan tekstur, dan lain-lain.
Sifat Permukaan, seperti diffuseness, refleksisifitas, dan lain-lain direpresentasikan dengan sebuah nilai. Nilai ini menentukan sifat dari parameter-parameter tersebut. Misalnya pada roughness, makin besar nilai parameternya, makin kasar objek tersebut.
· Algoritma Rendering
Algoritma
Rendering adalah prosedur yang digunakan oleh suatu program untuk
mengerjakan perhitungan untuk menghasilkan citra 2D dari data 3D.
Kebanyakan algoritma rendering yang ada saat ini menggunakan pendekatan
yang disebut scan-line
rendering berarti program melihat dari setiap pixel, satu per satu, secara horizontal dan menghitung warna di pixel tersebut. Saat ini dikenal 3 algoritma :
Ray-Casting
Ray-Tracing
Radiosity
rendering berarti program melihat dari setiap pixel, satu per satu, secara horizontal dan menghitung warna di pixel tersebut. Saat ini dikenal 3 algoritma :
Ray-Casting
Ray-Tracing
Radiosity
Comments
Post a Comment