Grafika Komputer - Pengantar 1
PENGENALAN
GRAFIKA KOMPUTER
Definisi Grafika Komputer
Menurut Suyoto (2003), grafika komputer (Computer Graphic) dapat diartikan sebagai seperangkat alat yang terdiri dari hardware dan software untuk membuat gambar, grafik atau citra realistik untuk seni, game komputer, foto dan film animasi.
Sistem grafika komputer dapat dijalankan dengan
komputer pribadi (Personal Computer) atau workstation
Pengertian grafik berbeda dengan image/citra, image merupakan gambar yang diperoleh dengan alat pengambil gambar, sperti kamera, scanner, dll. Sedangkan grafik adalah gambar yang dibuat dengan cara tertentu, yaitu cara yang ada di grafik komputer.
Grafik dan image termasuk picture/gambar.
Definisi Grafika Komputer
Sejarah Grafika Komputer
Perkembangan grafika komputer secara sederhana dapat dibagi menjadi empat fase,yaitu :
1. Fase Pertama (1950) era grafika komputer interaktif
▪ Tidak begitu cepat karena teknologi, jumlah dan harga komputer tidak mendukung.
▪ MIT berhasil mengembangkan komputer whirlwind dengan tabung sinar katode (Cathode Ray Tube-CRT).
▪ Sudah menggunakan pena cahaya (light pen) yaitu sebuah alat input bentuknya seperti pensil yang digunakan untuk memilih posisi, menunjuk sesuatu dan menggambar pada layar
▪ Telah ada alat pemrograman otomatis (Automatic Programming Tool)
Sejarah Grafika Komputer
2.
Fase Kedua (1960) Jaman Penelitian/Riset Grafika Komputer Interaktif
• Grafika interaktif modern telah ditemukan oleh Ivan Sutherland
• Mengembangkan teknik interaktif dengan sarana keyboard dan pena cahaya.
• Sejumlah projek penelitian dan produk Computer Aided
• Design/Manufacturing (CAD/CAM) telah muncu
Sejarah Grafika Komputer
3.
Fase Ketiga (1970)
Grafika komputer interaktif telah digunakan oleh sektor industri, pemerintah dan ilmuawan untuk memperbaiki kualitas desain produk secara cepat dan mudah.
4.
Fase Keempat (1980-1990)
◼
Penelitian pada dekade ini bertumpu pada penggabungan dan pengotomasasian pelbagai unsur desain dan pemodelan pejal (solid modelling).
◼
Teknologi hibrid mulai diperkenalkan. Teknologi ini
berguna untuk penggabungan objek pejal dengan
permukaan.
Grafika Komputer - Pengantar 7
Grafika Komputer
◼
Merupakan cabang ilmu komputer yang membahas algorithma untuk menampilkan simulasi (benda).
◼
Grafika komputer tidak sama dengan pemrosesan citra (image processing)
◼
Mata kuliah grafika komputer tidak membahas software komersial seperti adobe photoshop, corel draw dan sebagainya.
◼
Mata kuliah grafika komputer juga tidak membahas
tentang grafik bisnis, seperti diagram pie, diagram garis
dan sebagainya.
Grafika Komputer - Pengantar 8
Bidang Grafika Komputer
◼
Mencakup area/ bidang :
❑
Film (spesial effects)
❑
Industri :
◼ CAD (
computer aided design
)◼ Automated machining
❑
Visualisasi :
◼ data ilmiah
◼ hasil medik (scanning,X-Ray, MRI)
❑
Permainan Komputer
❑
Distribusi Online
Grafika Komputer - Pengantar 9
Film (Special effect)
Grafika Komputer - Pengantar 10
Film (Animasi)
Grafika Komputer - Pengantar 11
Industri / CAD
Grafika Komputer - Pengantar 12
Visualisasi data ilmiah
Grafika Komputer - Pengantar 13
Visualisasi data ilmiah
Grafika Komputer - Pengantar 14
Medical
Grafika Komputer - Pengantar 15
Permainan (Game)
Grafika Komputer - Pengantar 16
Tema Grafika Komputer
◼
Tiga tema utama dalam grafika komputer :
❑ Modeling
◼ Bagaimana kita merepresentasikan (= memodelkan) objek 3 Dimensi ?
◼ Bagaimana kita dapat membuat model dari objek-objek tertentu ?
❑ Animation
◼ Bagaimana kita merepresentasikan gerakan sebuah objek
◼ Bagaimana kita dapat memberikan kendali kepada pembuat animasi (animator) dalam pembuatan animasi
❑ Rendering
◼ Bagaimana kita mensimulasikan formasi gambar
◼ Bagaimana kita dapat mensimulasikan cahaya seperti pada dunia nyata?
Grafika Komputer - Pengantar 17
Modelling
◼
Representasi objek / lingkungan
❑ shape — geometri dari sebuah objek
❑ appearance — emission, reflection, and transmission of light
◼
Bagaimana kita dapat membuat model-model tersebut ?
❑ deskripsimanual (misal : menuliskan rumus)
❑ manipulasi secara interaktif
❑ menggunakan prosedur / program
❑ melakukan pemindaian (scanning) dari objek riil
Grafika Komputer - Pengantar 18
Modelling
Grafika Komputer - Pengantar 19
Animasi
◼
Bagaimana caranya kita menampilkan gerakan objek
❑ posisi, sudut dan sebagainya sebagai fungsi dari waktu
◼
Bagaimana caranya kita mengendailkan gerakan
❑ membuat gerakan menggunakan tangan, mengisi keyframe
❑ simulasi perilaku (membat program yang berfungsi sebagai
"otak" dari sebuah objek)
❑ simulasi fisika
❑ menangkap gerakan
Grafika Komputer - Pengantar 20
Animasi
Rendering
Rendering merupakan sebuah proses untuk menghasilkan sebuah citra 2D dari data 3D. Proses ini bertujuan untuk memberikan nuansa realistis (nyata) kepada model-model geometris sehingga memiliki sifat/ keadaan yang menyerupai sebenarnya.
Gambar yang dibuat melalui proses rendering digital adalah gambar digital atau raster image. Gambar digital tersebut dibuat melalui proses rendering digital sebagai langkah besar terakhir sebelum disusun menjadi animasi
Grafika Komputer - Pengantar 21
Grafika Komputer - Pengantar 22
Rendering
◼
Bagaimana caranya kita meniru dunia nyata ?
❑ cahaya yang datang difokuskan oleh lensa
❑ energi cahaya mempengaruhi film
❑ representasi gambar sebagai titik-titik / pixels (x,y)
❑ membutuhkan representasi dari kamera
◼
Bagaimana caranya kita meniru perilaku cahaya?
❑ cahaya dianggap sebagai photon (partikel cahaya)
❑ menangkap gerak lurus dari photon
❑ membuat model interaksi antara cahaya dengan permukaan benda
Tahapan Rendering
Secara umum, proses untuk menghasilkan rendering dua dimensi dari objek-objek 3D melibatkan 5 komponen utama, yaitu:
Grafika Komputer - Pengantar 23
❑
Geometri
Geometri identik dengan grafik dua dimensi. Definisinya adalah besaran rotasi suatu garis dari satu titik pangkal ke posisi yang lain. Geometri merupakan gambaran untuk dasar pembuatan bidang.
❑
Kamera
Dalam grafis 3D, sudut pandang yang dilihat berasal dari kamera sebagai penentu untuk sudut pandang pada sebuah world (virtual camera). Pada kamera ada istilah Field Of View, yang merupakan grafika 3D berbentuk piramida pada layar monitor yang berbentuk persegi.
Field of view ini sangat penting dalam proses rendering.
Grafika Komputer - Pengantar 24
Tahapan Rendering
Grafika Komputer - Pengantar 25
Tahapan Rendering
Field of View pada kamera
❑ 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.
Pada grafika 3D terdapat beberapa sumber cahaya:
▪ Point light
Memancar ke segala arah
▪ Spot light
Memancarkan cahaya ke daerah tertentu dalam bentuk kerucut.
Grafika Komputer - Pengantar 26
Tahapan Rendering
▪
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.
▪
Directional light
Memancarkan cahaya dengan intensitas sama ke suatu arah tertentu
Grafika Komputer - Pengantar 27
Tahapan Rendering
TEKNOLOGI DISPLAY
Teknologi Display 2
Teknologi Display
• Ada dua cara menampilkan gambar : – Vector Display
– Raster Display
• Vector Display : gambar ditampilkan sebagai kumpulan segmen garis (vector)
• Raster Display : gambar ditampilkan sebagai kumpulan titik (pixel)
• Kuliah Grafika Komputer tidak membahas tampilan
dengan vector display tetapi hanya tampilan dengan
Raster Display
Teknologi Display 3
Raster Display
• Raster Display menggunakan peralatan seperti :
– Cathode Ray Tube (CRT) / Tabung sinar katoda
Tabung vakum yang berisi sumber elektron yang digunakan untuk melihat gambar untuk mempercepat dan membelokkan berkas elektron ke layar neon untuk menciptakan gambar. Gambar dapat mewakili bentuk gelombang listrik (osiloskop), gambar (televisi, monitor komputer), radar target dan lain-lain
– Plasma Display
Sebuah layar plasma adalah video tampilan komputer dimana setiap piksel pada layar diterangi oleh sedikit kecil plasma atau gas yang dibebankan, agak seperti lampu neon kecil.
Plasma menampilkan lebih tipis dari tabung sinar katoda (CRT) menampilkan dan lebih terang dari liquid crystal display (LCD).
- Liquid Cristal Display (LCD)
Suatu jenis display yang menggunakan Liquid Crystal sebagai media refl eksinya. LCD sudah digunakan di berbagai bidang, sebagai contoh: monitor,TV, kalkulator.
Pada LCD berwarna semacam monitor terdapat puluhan ribu pixel. Pixel adalah satuan terkecil di dalam suatu LCD. Pixel- pixel yang berjumlah puluhan ribu inilah yang membentuk
suatu gambar dengan bantuan perangkat
controller, yang terdapat di dalam suatu monitor.
• Prinsip kerja : menyalakan / mematikan satu titik di penampil.
Teknologi Display 4
Teknologi Display 5
CRT (Cathode Ray Tube)
• Paling banyak digunakan
• Bekerja berdasarkan prinsip scanning :
– Horizontal Scanning – Vertical Scanning
• Scanning harus dilakukan
dengan cepat untuk
mencegah efek kerdipan
(flicker)
Teknologi Display 6
LCD
• Liquid Crystal Displays (LCDs)
– LCDs: organic molecules, naturally in crystalline
state, that liquefy when excited by heat or E field
– Crystalline state twists polarized light 90º.
Teknologi Display 7
Plasma Display
• Plasma display panels
– Similar in principle to fluorescent light tubes
– Small gas-filled capsules are excited by electric field,
emits UV light
– UV excites phosphor
– Phosphor relaxes, emits
some other color
Teknologi Display 8
Raster Display System
Teknologi Display 9
Raster Display System
• Setiap kondisi pixel di layar disimpan ke dalam memori yang disebut : frame buffer.
• Pixel mempunyai informasi mengenai :
– lokasi = lokasi memori di frame buffer
• banyaknya (lokasi) pixel yang dapat disimpan disebut sebagai resolusi
– warna = banyaknya byte di frame buffer = 2
n• 1 bit memori = 21 warna = 2 warna
• 4 bit memori = 24 warna = 16 warna
• 8 bit memori (1 byte) = 28 warna = 256 warna
– Kapasitas memori membatasai banyaknya pixel yang
ditampilkan dan warna yang dapat direpresentasikan.
8/1/2020 Synthetic Camera 1
SYNTHETIC CAMERA
8/1/2020 Synthetic Camera 2
SYNTHETIC CAMERA
⚫
Proyeksi perspektif dengan mata berada di sumbu proyeksi sangat membatasi sudut pandang.
⚫
Memutar objek agar memperoleh sudut pandang yang berbeda sangat tidak efisien.
⚫
Pendekatan lain adalah dengan
menggunakan synthetic camera
8/1/2020 Synthetic Camera 3
CARA KERJA CAMERA
film lensa objek
cahaya
Citra objek dibawa cahaya menuju lensa sehingga di lensa muncul bayangan objek, oleh cahaya bayangan tersebut kemudian diteruskan ke film (plastik yang dilapisi dengan bahan kimia peka cahaya) sehingga menimbulkan reaksi kimia yang membentuk citra objek
8/1/2020 Synthetic Camera 4
SYNTHETIC CAMERA
⚫
Synthetic camera adalah metoda memposisikan
‘camera’ untuk melihat benda.
⚫
Membutuhkan tiga komponen :
⚫ Bidang proyeksi
⚫ Sistem koordinat viewer
⚫ mata.
⚫
Cara kerja : objek dipindahkan ke koordinat viewer dan kemudian 'bayangan' objek diproyeksikan perspektif.
⚫
Objek perlu dipindahkan ke koordinat viewer agar
posisi objek sesuai dengan (align) arah mata.
8/1/2020 Synthetic Camera 5
v u
n
proyeksi perspektif mata
Koordinat Viewer Bidang Proyeksi Koordinat
Dunia
transformasi Koordinat dunia ke koordinat viewer
8/1/2020 Synthetic Camera 6
VIEWING COORDINATE
⚫
Viewing coordinate sering juga disebut sebagai UVN system.
⚫
Sistem koordinat UVN mempunyai tiga sumbu :
⚫
U
⚫
V
⚫
N
8/1/2020 Synthetic Camera 7
VIEWING COORDINATE
⚫
Viewing coordinate diperoleh berdasarkan informasi mengenai :
⚫ posisi kamera pada world coordinate, posisi ini disebut juga sebagai VRP (Viewing Reference Point).VRP ditentukan berdasarkan vector r = (rx, ry,rz)
⚫ Arah viewplane, disebut sebagai VPN (Viewplane Normal) dan ditentukan berdasarkan vector n (nx,ny,nz).
Vector n ditentukan berdasarkan world coordinate.
⚫ Arah sumbu V ditentukan berdasarkan vector u. Vector u bersifat tegak lurus terhadap n dan v.
⚫ posisi mata (eye) ditentukan dalam viewing coordinate dan disimbolkan dengan e = (eu,ev,en). Umumnya e berisi (0,0,E)
8/1/2020 Synthetic Camera 8
v u
n
VRP = (rx,ry,rz)
rx z
y x
VPN
ry
rz
eu,ev,en mata
8/1/2020 Synthetic Camera 9
VIEWING COORDINATE
⚫
Bagaimana menghitung n,v dan u?
⚫
Pemakai dapat menentukan nilai n dengan
memasukkan vector norm dan vector n dihitung sebagai :
⚫
Untuk memperoleh norm, tentukan titik yang menjadi pusat pandang camera (look at) dan
kemudian norm dihitung sebagai : norm = scene - r
norm
| norm | n =
8/1/2020 Synthetic Camera 10
VIEWING COORDINATE
⚫
Vector v ditentukan oleh pemakai
berdasarkan vector up (u
x,u
y,u
z) dan dihitung sebagai :
⚫
Catatan :
⚫ tanda • menyatakan dotproduct dua vector
⚫ tanda |up’| menyatakan panjang vector up’
' '
* ) (
'
up v up
n n
up up
up
=
•
−
=
8/1/2020 Synthetic Camera 11
8/1/2020 Synthetic Camera 12
VIEWING COORDINATE
⚫
Karena vector u harus tegak lurus terhadap n dan v maka vector u dapat diperoleh dari :
⚫
Catatan : n x v menyatakan cross product
v n
u =
8/1/2020 Synthetic Camera 13
TRANSFORMASI WORLD KE VIEW PLANE
⚫
Setiap titik di world coordinate (w) dapat
ditransformasikan ke viewing coordinate (p) dengan menggunakan rumus :
⚫
Setelah titik di world coordinate di transformasikan ke viewplane maka tahap selanjutnya adalah
melakukan proyeksi perspektif terhadap titik di viewplane.
t = w - r pu = t • u pv = t • v pn = t • n
8/1/2020 Synthetic Camera 14
PROYEKSI VIEWPLANE
⚫
Jika diketahui titik p=(p
u;p
v;p
n) adalah titik di viewplane dan mata terletak di (e
u;e
v;e
n)
maka titik q (u*,v*) sebagai proyeksi
perspektif dari p dapat diperoleh dengan
u* =
e
np
u- e
up
ne
n- p
nv* =
e
np
v- e
vp
ne
n- p
n8/1/2020 Synthetic Camera 15
PROYEKSI VIEWPLANE
⚫
Apabila e = (0,0,e
n) maka rumus di atas dapat disederhanakan menjadi
u* =
p
up
ne
n1-
v* =
p
vp
ne
n1-
8/1/2020 Synthetic Camera 16
RUMUS VECTOR
Cross Product:
d = n X v
d
x= n
y* v
z- n
z* v
yd
y= n
z* v
x- n
x* v
zd
z= n
x* v
y- n
y* v
xDot product :
d = n • v
d = n
x* v
x+ n
y* v
y+ n
z* v
z|v| = (v
x* v
x+ v
y* v
y+v
z* v
z)
Panjang Vector
WARNA (COLOUR)
Warna dalam Grafika Komputer 1
Warna
◼
Warna sebenarnya merupakan persepsi kita terhadap pantulan cahaya dari benda-benda.
Warna dalam Grafika Komputer 2
pantulan
persepsi warna
Cahaya
◼
Cahaya merupakan energi elektromagnetik
◼
Cahaya dapat dibagi menjadi dua bagian :
❑ Cahaya terlihat (visible light) yaitu bagian dari energi elektromagnetik dengan panjang gelombang 400-700 nm (nanometer)
❑ Cahaya tidak terlihat (invisible light) yaitu bagian dari energi elektromagnetik dengan panjang gelombang < 400 nm atau > 700 nm
◼
Mata manusia hanya peka terhadap panjang gelombang 400 - 700 nm dan perbedaan panjang gelombang tersebut dipersepsikan sebagai 'warna'
Warna dalam Grafika Komputer 3
Spektrum warna
Warna dalam Grafika Komputer 4
Bagaimana manusia melihat warna ?
Warna dalam Grafika Komputer 5
Bagian mata yang sensitif terhadap cahaya disebut sebagai retina, retina berisi dua macam kelompok sel yaitu : rod dan cone
Bagaimana manusia melihat warna
◼
Rods (sel batang)
❑ Hanya dapat membedakan terang dan gelap (hitam / putih)
❑ Mata mempunyai 120 juta rod
❑ Tidak sensitif terhadap warna
◼
Cones
❑ Bagian retina yang peka terhadap warna
❑ Mata mempunyai 60 juta cones
❑ Ada tiga macam cones, masing-masing peka terhadap warna merah (L), biru (S) dan hijau (M).
❑ Dapat membedakan 200 warna sekaligus
Warna dalam Grafika Komputer 6
Bagaimana manusia melihat warna?
◼ Fovea adalah arena di retina yang berisi cones
◼ Berukuran 1/150 inch
◼ Fovea hanya mempunyai sudut pandang sebesar 1,7 derajad.
Diluar itu gambar terlihat kabur.
◼ Setiap cones di fovea mempunyai satu jalur syaraf ke otak dan dapat mengirim 'gambar' sekaligus (paralel)
❑ Bandingkan : Video Kamera mempunyai 400.000 sensor tetapi hanya dapat mengirim 'gambar' satu persatu (stream)
Warna dalam Grafika Komputer 7
Bagaimana manusia melihat warna?
Warna dalam Grafika Komputer 8
Bagaimana warna dibuat ?
◼ Warna dapat diproduksi berdasarkan dua cara :
❑ Substractive Colour
❑ Additive Colour
◼ Substractive : warna dihasilkan sebagai akibat dari diserapnya warna tertentu.
❑ Tinta cetak
◼ Additive : warna dihasilkan sebagai campuran dari warna yang dipancarkan oleh sumber cahaya.
❑ Monitor
Warna dalam Grafika Komputer 9
Representasi warna di komputer
◼
Ada berbagai cara untuk menghasilkan warna menggunakan komputer.
◼
Beberapa model warna yang digunakan antara lain :
❑
RGB
❑
HSV / HSB
❑
HLS
❑
CMY(K)
❑
CIE
Warna dalam Grafika Komputer 10
RGB (Red, Green, Blue)
◼ Warna diperoleh dari campuran tiga warna dasar (primary color), yaitu : Red, Green, Blue
◼ Setiap komponen warna disimpan sebagai angka dari 0- 255 (0-FF), dengan
❑ 0 = tidak ada komponen
❑ 255 = komponen digunakan penuh
Warna dalam Grafika Komputer 11
R = 0 G = 255 B = 0
R = 0 G = 0 B = 255
R = 255 G = 128 B = 128
R = 128 G = 255 B = 255
R = 128 G =75 B = 0 R = 255
G = 0 B = 0
CMY(K) / Cyan, Magenta, Yellow, Black
◼
Menggunakan warna dasar (primary color) : Cyan, Magenta, Yellow dan Black.
◼
Warna lain diperoleh karena campuran warna dasar menyerap warna dasar dan memantulkan warna yang diinginkan.
Warna dalam Grafika Komputer 12
Warna Tinta Menyerap Memantulkan Terlihat
Cyan Merah Biru dan Hijau Sian
Magenta Hijau Merah dan Biru Magenta
Yellow Biru Merah dan Hijau Kuning
Magenta+Yellow Hijau dan Biru Merah Merah
Cyan + Magenta Merah dan Hijau Biru Biru
Cyan + Yellow Merah dan Biru Hijau Hijau
RGB dan CMY(K)
Warna dalam Grafika Komputer 13
Catatan : warna merah disembunyikan
HSV/B (Hue, Saturation, Value / Brightness)
◼ HSB merupakan sistem warna yang menggunakan ukuran :
❑ Hue : warna yang diinginkan, diukur dengan nilai 0o - 360o, dengan 0o = red,12o=green, 240o=blue
❑ Saturation : keaslian warna, diukur dengan nilai 0% - 100%.
Nilai 0 menyatakan warna putih dan 100% menyatakan warna asli
❑ Value / Brightness : pengaruh kecerahan, 0% menyatakan tidak ada cahaya (hitam) dan 100% menyatakan warna putih.
Warna dalam Grafika Komputer 14
HLS (Hue, Lightness, Saturation)
◼ Menggunakan ukuran :
❑ Hue : warna yang diinginkan, diukur dengan nilai 0o - 360o, dengan 0o = red,12o=green, 240o=blue
❑ Lightness : pengaruh warna putih, nilai maksimum Lightness menyatakan warna putih sedangkan nilai minimum menyatakan warna hitam.
❑ Saturation : keaslian warna, diukur dengan nilai 0% - 100%.
Nilai 0 menyatakan warna putih dan 100% menyatakan warna asli
Warna dalam Grafika Komputer 15
C.I.E
◼
CIE (Commission Internationale d'Eclairage)
mendefinisikan tiga sumber cahaya hipotetis x,y,z yang menggunakan kurva positif dari spektrum
Warna dalam Grafika Komputer 16
SISTEM KOORDINAT
https://nitensawitri.wordpress.com/matematika-4/sistem-koordinat/
Definisi
Sistem Koordinat adalah suatu cara/metode untuk menentukan letak suatu titik.
Ada beberapa macam system koordinat:
❑ Sistem Koordinat Kartesius Suku-siku (Cartesian),
❑ Sistem Koordinat Kutub (Polar),
❑ Sistem Koordinat Tabung, dan
❑ Sistem Koordinat Bola
Pada bagian ini hanya akan dibicarakan Sistem Koordinat Cartesius dan Sistem Koordinat Kutub saja.
Sistem Koordinat 2
Sistem Koordinat 3
Sistem Koordinat
⚫
Ada dua macam sistem koordinat :
⚫
Cartesian
⚫
Polar
⚫
Sistem Koordinat Polar menggunakan sudut terhadap garis horison (α) dan jarak dari titik pusat (R) untuk menunjukkan lokasi sebuah benda
R α
Sistem Koordinat 4
Sistem Koordinat
⚫
Sistem Koordinat Cartesian menggunakan pasangan (x,y) untuk menyatakan lokasi sebuah benda di bidang (2D) dan pasangan (x,y,z) untuk lokasi di ruang (3D).
X Y
X Y
Z
Sistem Koordinat 5
⚫
Sistem Koordinat juga dapat dibagi menjadi dua macam bergantung kepada situasi :
⚫
World Coordinate (wc)
⚫ Sistem Koordinate untuk menyatakan lokasi benda di
“dunia”
⚫
Screen Coordinate (sc)
⚫ Sistem Koordinat untuk menyatakan lokasi titik di layar.
Sistem Koordinat
Sistem Koordinat 6
World Coordinate
⚫
World Coordinate mempunyai batas -~
sampai dengan +~ untuk sumbu x dan y
⚫
Apabila area yang dilihat pada world coordinat dibatasi pada area tertentu maka area tersebut dinamakan window.
Y
WR X WL
WB
WT Window (w)
Sistem Koordinat 7
Screen Coordinate
⚫
Screen Coordinate menggunakan orientasi sumbu y yang berbeda dengan World Coordinate.
⚫
Screen Coordinate hanya menggunakan nilai positif untuk sumbu x dan y dan titik (0,0) terletak di pojok kiri atas.
⚫
Batas maksimal pada sumbu x = Xmax dan batas maksimal pada sumbu y = Ymax
X
y
Sistem Koordinat 8
Screen Coordinate
⚫
Perbedaan orientasi tersebut menyebabkan gambar di World menjadi tampak terbalik di screen
⚫
Area yang digunakan untuk menampilkan gambar di layar disebut sebagai viewport.
x y
world screen
viewport
Sistem Koordinat 9
Transformasi wc sc
⚫
Agar gambar di screen tampak sama dengan di world maka perlu dilakukan transformasi koordinat.
ymax
X Y
ywc ymax – ywc
Sistem Koordinat 10
⚫
Dengan demikian setiap titik di wc dapat diketahui lokasinya di sc sebagai :
x
sc= x
wcy
sc= ymax – y
wc⚫
Rumus (1) tidak dapat mengatasi persoalan :
⚫
Pemakaian window dan viewport.
⚫
Nilai negatif dari koordinat wc.
Transformasi wc sc
Sistem Koordinat 11
WL WR
VR WL
WR tx VL
WL WR
VL sx VR
−
= −
−
= −
*
*
X Y
WL WR WB
WT
xwc ywc
VR VL
VT
VB ysc
xsc
Xsc = sx * xwc + tx Ysc = sy * ywc + ty
WB WT
VT WB
WT ty VB
WB WT
VB sy VT
−
= −
−
= −
*
*
Transformasi wc sc
ALGORITHMA GARIS
2
Algorithma Garis
◼
Masalah :
❑
Pixel mana yang harus dipilih untuk menggambar
sebuah garis ?
3
ALGORITHMA GARIS
◼
Algorithma garis adalah algorithma untuk menentukan lokasi pixel yang paling dekat dengan garis sebenarnya (actual line)
◼
Ada tiga algorithma utama untuk menggambar garis :
❑
Line Equation
❑
DDA Algorithm
❑
Bresenham’s Algorithm
4
Kuadran Garis
Kuadran Kriteria Arah Garis Contoh
I (x1 < x2) dan (y1 < y2) (1,1) – (4,5)
(-3,2) – (-1,4)
II (x1 > x2) dan (y1 < y2) (4,2) – (3,4) (-3,-3) – (-6,-1)
III (x1 > x2) dan (y1 > y2) (6,-2) – (4,-5) (9,5) – (1,2)
IV (x1 < x2) dan (y1 > y2) (3,9) – (6,2)
(-2,1) – (4,-5) (x1,y1)
(x2,y2)
(x1,y1) (x2,y2)
(x1,y1) (x2,y2)
(x1,y1)
(x2,y2)
5
Kuadran Garis
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
C D (x1,y1)
(x2,y2)
(x1,y1) (x2,y2)
Di kuadran mana garis A ? Di kuadran mana garis B ? Dapatkah garis A dan B dinyatakan sebagai garis dengan kuadran yang sama ? Bagaimana caranya ? Bagaimana halnya dengan garis C dan D ?
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
A B
(x1,y1)
(x2,y2)
(x1,y1)
(x2,y2)
6
Kuadran Garis
◼
Garis A : (3 ; 1) – (8 ; 4)
❑
Garis A berada di kuadran I
◼
Garis B : (3 ; 7) – (1 ; 2)
❑
Garis B berada di kuadran III
❑
m = (2 – 7) / (1 – 3) = -5 / -2 = 2.5
❑
tetapi apabila garis B dinyatakan sebagai (1 ; 2) – (3 ; 7) maka garis B akan berada di kuadran I
❑
m = (7 – 2 ) / ( 3 – 1) = 5 / 2 = 2.5
7
LINE EQUATION
◼
Sebuah garis lurus dapat diperoleh dengan menggunakan rumus :
y = mx + b
◼
dimana :
❑
m = gradien
❑
b = perpotongan garis dengan sumbu y.
x
1x
2y
1y
2b
8
LINE EQUATION
◼
Apabila dua pasang titik akhir dari sebuah garis dinyatakan sebagai (x1,y1) and (x2, y2), maka nilai dari gradien m dan lokasi b dapat dihitung dengan :
1 2
1 2
x x
y m y
−
= − (1)
1
1
m x
y
b = − (2)
9
Contoh
◼
Gambar garis (0,1) – (5,7) dengan menggunakan Line Equation
0 1 2 3 4 5 6 7 8 7
6 5 4 3 2 1 0
x1 = 0 y1 = 1 x2 = 5 y2 = 7
m = (7-1)/(5-0) = 1,2 b = 1 – 1,2 * 0 = 1
x y
0 1.2 * 0 + 1 = 1
1 1.2 * 1 + 1 = 2,2 ≈ 2 2 1.2 * 2 + 1 = 3,4 ≈ 3 3 1.2 * 3 + 1 = 4,6 ≈ 5 4 1.2 * 4 + 1 = 5,8 ≈ 6 5 1.2 * 5 + 1 = 7
10
Gradien dan Tipe Garis
x1 y1
y2 tegak
m = tak terdefinisi
x1 y1
x2 mendatar
m = 0
x1 y1
y2
x2 miring 45o
m = 1
x1 y1
y2
x2
cenderung mendatar
0 < m < 1
x1 y1
y2
x2
cenderung tegak
m > 1
11
Tipe Garis
Dapatkah anda mencari perbedaan yang esensial
antara garis A dan B (misal : gradien, pertambahan x dan y) ?
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
A B
12
Tipe Garis
◼
Garis A : (3;1) – ( 8;4)
❑
m = (y2 – y1) / (x2 – x1) = (4-1)/ (8-3) = 3/5= 0,6
❑
0 < m < 1
❑
x
i+1= x
i+ 1 ; y
i+1= y
i+ d1
◼
Garis B : (1;2) – (2;7)
❑
m = (7-2) / (2-1) = 5 / 1 = 5
❑
m > 1
❑
x
i+1= x
i+ d2 ; y
i+1= y
i+ 1
◼
Berapa nilai d1 dan d2 ?
13
ALGORITHMA DDA
◼
Digital differential analyzer (DDA) merupakan algorithma untuk menghitung posisi pixel disepanjang garis dengan menggunakan posisi pixel sebelumnya.
◼
Algorithma berikut ini menggunakan asumsi
bahwa garis berada di kuadran I atau II serta
garis bertipe cenderung tegak atau
cenderung mendatar.
14
Algorithma DDA
◼
Untuk garis dengan 0 < m < 1, maka x
i+1= x
i+1 dan :
◼
Untuk garis dengan m > 1, maka y
i+1= y
i+ 1 dan :
m y
y
i+1=
i+ (3)
x m
x
i i1
1
= +
+
(4)
15
Algorithma DDA
◼
Garis dengan 0 > m > -1, maka x
i+1= x
i-1 dan
◼
Sedangkan bila m < -1, maka yi+1 = yi+1 dan
m y
y
i+1=
i− (5)
x m
x
i i1
1
= −
+
(6)
16
Contoh Algorithma DDA
◼
Gambar garis dari (0;1) – (5;7) dengan menggunakan DDA.
x1=0,y1=1 x2=5,y2=7
m = (7-1)/(5-0) = 1,20 1/m=1/1,20 = 0,83
x y
0 1
0+0,83 = 0,83 ≈ 1 2 0,83+0,83 = 1,66 ≈ 2 3 1,66+0,83 = 2,59 ≈ 3 4 2,59+0,83 = 3,42 ≈ 3 5 3,42+0,83 = 4,25 ≈ 4 6 4,25+0,83 = 5,08 ≈ 5 7
0 1 2 3 4 5 6 7 8 7
6
5
4
3
2
1
0
17
Algorithma Bresenham
◼
Bresenham mengembangkan algorithma yang lebih efisien.
◼
Algorithma ini mencari nilai integer yang paling mendekati garis sesungguhnya (actual line).
◼
Algorithma ini tidak memerlukan pembagian.
0 1 2 3 4 3
2 1 0
actual line
18
Algorithma Bresenham
◼
Algorithma Bresenham yang disajikan berikut ini hanya dapat digunakan untuk garis yang berada di kuadran I dan 0 < m < 1.
◼
Anda yang ingin mempelajari pembuktian matematis dari algorithma Bresenham
silahkan membaca buku Computer Graphics
(Hearn dan Baker)
19
Algorithma Bresenham
d1=m – ½, karena d1< 0 atau negatif maka pixel berikutnya adalah pixel (xi+1, yi)
xi,yi Xi+1,yi Xi+1,yi+
1
Actual line
d1
20
Algorithma Bresenham
d1=m – ½, karena d1> 0 atau positif maka pixel berikutnya adalah pixel (xi+1, yi+1)
xi,yi
Xi+1,yi Xi+1,yi+
1
d1
Actual line
21
Algorithma Bresenham (0 < m < 1)
dx = x2 – x1 ;dy = y2 – y1 d1 =2 * dy ; d2 =2 * (dx – dy) p = d1 – dx
x = x1 ; y = y1
p >= 0 p = p - d2
y = y +1 p = p + d1
y = y
x = x +1
x >= x2 stop
Y T
22
◼
Gambar garis berikut ini dengan menggunakan algorithma Bresenham :
(0;1) – (6;5) (2;2) – (7;5) (0;1) – (5;7)
Algorithma Bresenham
23
0 1 2 3 4 5 6 7 8 9 10 8
7 6 5 4 3 2 1 0
Garis : (0;1) - (6;5)
Algorithma Bresenham
p x y
2 0 1
-2 1 2
6 2 2
2 3 3
-2 4 4
6 5 4
2 6 5
24
Garis : (2;2) - (7;5)
0 1 2 3 4 5 6 7 8 9 10 8
7 6 5 4 3 2 1 0
Algorithma Bresenham
p x y
1 2 2
-3 3 3
3 4 3
-1 5 4
5 6 4
1 7 5
25
Algorithma Bresenham
p x y
7 0 1
9 1 2
11 2 3
13 3 4
15 4 5
17 5 6
0 1 2 3 4 5 6 7 8 9 10 8
7 6 5 4 3 2 1 0
Garis : (0;1) - (5;7)
26
Algorithma Bresenham
◼
Mengapa garis (0;1) – (5;7) tidak dapat digambar dengan tepat ?
❑
Garis (0;1) – (5;7) mempunyai m = 1,2, dengan
demikian asumsi pada algorithma tersebut tidak
tepat dan harus disesuaikan.
27
Algorithma Bresenham ( m > 1)
dx = x2 – x1 ; dy = y2 – y1 d1 =2 * dx ; d2 =2 * (dx – dy) p = d1 – dy
x = x1 ; y = y1
p >= 0 p = p + d2
x = x +1 p = p + d1
x = x
y = y +1
y >= y2 stop
Y T
28
Algorithma Bresenham (m > 1)
p x y
4 0 1
2 1 2
0 2 3
-2 3 4
8 3 5
6 4 6
4 5 7
0 1 2 3 4 5 6 7 8 9 10 8
7 6 5 4 3 2 1 0
Garis : (0;1) - (5;7)
29
Atribut Garis
◼
Atribut garis meliputi :
❑
Ketebalan garis
❑
Pola garis
❑
Warna garis