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.
Automated machining
Visualisasi :
data ilmiah
hasil medik (scanning,X-Ray, MRI)
Permainan Komputer
Distribusi Online
Film (Special effect)
Film (Animasi)
Industri / CAD
Visualisasi data ilmiah
Visualisasi data ilmiah
Medical
Permainan (Game)
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?
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
Modelling
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
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.
Koordinat proyeksi
Dunia perspektif
n
Koordinat
Viewer
Bidang Proyeksi
VIEWING COORDINATE
Viewing coordinate sering juga disebut
sebagai UVN system.
Sistem koordinat UVN mempunyai tiga
sumbu :
U
V
N
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)
mata
v
VPN u
eu,ev,en
n
VRP = (rx,ry,rz)
rz
x
ry
y
rx
VIEWING COORDINATE
Bagaimana menghitung n,v dan u?
Pemakai dapat menentukan nilai n dengan
memasukkan vector norm dan vector n dihitung
sebagai :
norm
n=
| norm |
Catatan :
tanda • menyatakan dotproduct dua vector
tanda |up’| menyatakan panjang vector up’
VIEWING COORDINATE
Karena vector u harus tegak lurus terhadap n
dan v maka vector u dapat diperoleh dari :
u nv
Catatan : n x v menyatakan cross product
TRANSFORMASI WORLD KE
VIEWPLANE
Setiap titik di world coordinate (w) dapat
ditransformasikan ke viewing coordinate (p) dengan
menggunakan rumus :
t=w-r
pu = t • u
pv = t • v
pn = t • n
Panjang Vector
|v| = (vx * vx + vy * vy +vz * vz)
WARNA
Warna
Warna sebenarnya merupakan persepsi kita
terhadap pantulan cahaya dari benda-benda.
persepsi warna
pantulan
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'
Spektrum warna
Bagaimana manusia melihat
warna ?
Bagian mata yang
sensitif terhadap
cahaya disebut
sebagai retina,
retina berisi dua
macam kelompok
sel yaitu : rod dan
cone
Bagaimana manusia melihat
warna
Rods
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
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)
Bagaimana manusia melihat
warna?
Bagaimana warna dibuat ?
Warna dapat diproduksi
berdasarkan dua cara :
Substractive Colour
Additive Colour
Y Y
X X
Z
Sistem Koordinat
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.
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
WT Window (w)
WL X
WR
WB
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
y
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.
y
x viewport
world screen
Transformasi wc -> sc
Agar gambar di screen tampak sama dengan
di world maka perlu dilakukan transformasi
koordinat.
Y
ymax
WT VT
ywc
ysc
WB VB
X
WL xwc WR
VR VL VT VB
sx sy
Xsc = sx * xwc + tx WR WL WT WB
Ysc = sy * ywc + ty
VL *WR WL *VR VB *WT WB *VT
tx ty
WR WL WT WB
ALGORITHMA GARIS
Algorithma Garis
Masalah :
Pixel mana yang harus dipilih untuk menggambar
sebuah garis ?
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
Kuadran Garis
Kuadran Kriteria Arah Garis Contoh
(x2,y2)
(1,1) – (4,5)
I (x1 < x2) dan (y1 < y2)
(x1,y1) (-3,2) – (-1,4)
(x2,y2)
(4,2) – (3,4)
II (x1 > x2) dan (y1 < y2)
(x1,y1) (-3,-3) – (-6,-1)
(x1,y1)
(6,-2) – (4,-5)
III (x1 > x2) dan (y1 > y2)
(x2,y2) (9,5) – (1,2)
6 6 D
5 5
B (x2,y2) (x2,y2)
4 4
(x2,y2)
3 A 3
2 2 C
(x2,y2)
1 1
(x1,y1) (x1,y1)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
b y1 m x1 (2)
Contoh
Gambar garis (0,1) – (5,7) dengan
menggunakan Line Equation
x1 = 0 y1 = 1
x2 = 5 y2 = 7
7 m = (7-1)/(5-0) = 1,2
6 b = 1 – 1,2 * 0 = 1
x y
5
0 1.2 * 0 + 1 = 1
4
1 1.2 * 1 + 1 = 2,2 ≈ 2
3
2 1.2 * 2 + 1 = 3,4 ≈ 3
2
3 1.2 * 3 + 1 = 4,6 ≈ 5
1
4 1.2 * 4 + 1 = 5,8 ≈ 6
0
5 1.2 * 5 + 1 = 7
0 1 2 3 4 5 6 7 8
Gradien dan Tipe Garis
miring 45o
y2 tegak
mendatar y2
y1
y1 y1
x1 x2 x1 x2
x1
m = tak terdefinisi m=0 m=1
y2
cenderung mendatar
cenderung tegak
y2
y1 y1
x1 x2 x1 x2
0<m<1 m>1
Tipe Garis
8
7
6
5
B
4
3 A
2
1
0 1 2 3 4 5 6 7 8 9
Dapatkah anda mencari perbedaan yang esensial
antara garis A dan B (misal : gradien, pertambahan x dan y) ?
Tipe Garis
Garis A : (3;1) – ( 8;4)
m = (y2 – y1) / (x2 – x1) = (4-1)/ (8-3) = 3/5= 0,6
0<m<1
xi+1 = xi + 1 ; yi+1 = yi + d1
Garis B : (1;2) – (2;7)
m = (7-2) / (2-1) = 5 / 1 = 5
m>1
xi+1 = xi + d2 ; yi+1 = yi + 1
Berapa nilai d1 dan d2 ?
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.
Algorithma DDA
Untuk garis dengan 0 < m < 1, maka xi+1 = xi
+1 dan :
yi 1 yi m (3)
yi 1 yi m (5)
1
xi 1 xi (6)
m
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
7 1/m=1/1,20 = 0,83
6 x y
5 0 1
4 0+0,83 = 0,83 ≈ 1 2
3 0,83+0,83 = 1,66 ≈ 2 3
1,66+0,83 = 2,59 ≈ 3 4
2
2,59+0,83 = 3,42 ≈ 3 5
1 3,42+0,83 = 4,25 ≈ 4 6
0 4,25+0,83 = 5,08 ≈ 5 7
0 1 2 3 4 5 6 7 8
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.
3
2
1 actual line
0
0 1 2 3 4
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)
Algorithma Bresenham
Xi+1,yi+
1
Actual line
xi,yi Xi+1,yi
d1
Xi+1,yi
d1
xi,yi
p = p + d1 T Y p = p - d2
y=y p >= 0
y = y +1
x = x +1
stop x >= x2
Algorithma Bresenham
Gambar garis berikut ini dengan
menggunakan algorithma Bresenham :
(0;1) – (6;5)
(2;2) – (7;5)
(0;1) – (5;7)
Algorithma Bresenham
7 1 2 2
6 -3 3 3
5 3 4 3
4 -1 5 4
3 5 6 4
2 1 7 5
1
0
0 1 2 3 4 5 6 7 8 9 10
Algorithma Bresenham
Garis : (0;1) - (5;7)
8 p x y
7 7 0 1
6 9 1 2
5 11 2 3
4 13 3 4
3 15 4 5
2 17 5 6
1
0
0 1 2 3 4 5 6 7 8 9 10
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.
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 = p + d1 T Y p = p + d2
x=x p >= 0
x = x +1
y = y +1
stop y >= y2
Algorithma Bresenham (m > 1)
Garis : (0;1) - (5;7)
8 p x y
7 4 0 1
6 2 1 2
5 0 2 3
4 -2 3 4
3 8 3 5
2 6 4 6
1 4 5 7
0
0 1 2 3 4 5 6 7 8 9 10
SOAL
Gunakan algorithma DDA dan Bresenham
untuk menggambar garis-garis berikut :
1. (2;1) – (9;6)
2. (1;2) – (8;5)
3. (3;1) – (10;5)
4. (6;7) – (13;10)
5. (2;8) – (9;11)
Atribut Garis
Atribut garis meliputi :
Ketebalan garis
Pola garis
Warna garis
REVIEW MATERI/ QUIS
ALGORITHMA LINGKARAN
ALGORITHMA LINGKARAN
Menggambar lingkaran dapat menggunakan
rumus :
sin dan cosinus
Algorithma Bresenham
Pemakaian sinus dan cosinus membutuhkan
memori karena melibatkan angka pecahan
serta komputasi yang rumit dalam
menentukan nilai sinus dan cosinus
ALGORITHMA LINGKARAN
y
y1
R
α
x
x1
mH
(xi,yi)
(xi+1,yi)
mV mD
(xi+1,yi-1)
(xi-1,yi-1) (xi,yi-1)
4 3 5
Algorithma Lingkaran Bresenham :
Δi=(xi+1)2+(yi-1)2-R2
Δi < 0 maka
β = m D – mV
Contoh : 7
Diketahui : A(2,4) digeser 6
sejauh (4,2)
Ditanya : lokasi hasil 5
A’
pergeseran (A’) 4
Jawab :
3 A
A’ (x,y) = A + Tr
= (2,4) + (4,2) 2
= (6,6) 1
0 1 2 3 4 5 6 7
SCALING
(x’,y’) x
cos
r
r + x r * cos
y
r sin
(x,y) r
y r * sin
ROTASI
Dari rumus trigonometri diketahui bahwa :
x' r cos( ) r cos cos r sin sin
y ' r sin( ) r sin cos r cos sin
Dimana r merupakan jarak dari titik asal terhadap
titik pusat (0,0). Diketahui pula :
(xt,yt) (xt,yt)
Translasi :
1 0 0 Rotasi
0 1 0 cos sin 0
Trx Try 1 sin cos 0
Scaling :
0 0 1
S x 0 0
0 Sy 0
0 0 1
CONTOH
Diketahui : Titik A (2,1)
Ditanyakan : Lokasi titik yang baru setelah
translasi (2,4)
Jawab :
1 0 0
Q 2 1 1* 0 1 0 4 5 1
2 4 1
TRANSFORMASI BERTURUT-
TURUT
Transformasi berturut-turut akan lebih mudah
dihitung dengan menggunakan matriks
transformasi
Rumus Umum :
Mb= M1 * M2 * M3*...*Mn
Dengan Mb merupakan matrik transformasi baru
dan M1...Mn merupakan komponen matrik
transformasi.
CONTOH
Diketahui : Titik A(1,1);B(3,1);C(2,3)
Ditanyakan :
Lokasi titik yang baru setelah dilakukan
transformasi pergeseran (2,3) dan
kemudian penskalaan (3,3)
Jawab :
1 0 0 3 0 0 3 0 0
M b 0 1 0 * 0 3 0 0 3 0
2 3 1 0 0 1 6 9 1
3 0 0
A' 1 1 1* 0 3 0 9 12 1
6 9 1
3 0 0
B' 3 1 1* 0 3 0 15 12 1
6 9 1
3 0 0
C ' 2 3 1* 0 3 0 12 18 1
6 9 1
Tugas
Hitung lokasi titik A (3,1), B (6,2); C (7,4); D
(2,5) setelah dilakukan transformasi berturut-
turut :
(a) Translasi (-4,2)
(b) Rotasi 65o
ymin
xmin xmax
Algorithma Cohen-Sutherland
Cohen dan Sutherland memberikan kode
kepada tiap area yang mungkin dilewati oleh
sebuah garis atau disebut sebagai region
code.
Top
Left Right
Bottom
Algorithma Cohen-Sutherland
Region code mempunyai panjang empat bit
dan menggunakan urutan sebagai berikut :
3 2 1 0
T B R L
T(op) = 1 jika ujung garis berada di atas area gambar selain itu 0 (nol)
B(ottom) = 1 jika ujung garis berada di bawah area gambar selain itu 0 (nol)
L(eft) = 1 jika ujung garis berada di kiri area gambar selain itu 0 (nol)
R(ight) = 1 jika ujung garis berada di kanan area gambar selain itu 0 (nol)
Algorithma Cohen-Sutherland
Sehingga diperoleh region code :
d
e
Algorithma Cohen-Sutherland
Pemotongan (clipping) dilakukan terhadap
ujung-ujung garis yang region code berisi bit
bernilai 1.
Contoh sebelumnya menunjukkan bahwa
ujung Pa, Pb, Qc,Qd dan Re yang akan
mengalami pemotongan.
Algorithma Cohen-Sutherland
Ujung garis Pa
Region code Pa =1000
a
p1 Pa berpotongan dengan garis
ymax
P ymax sehingga menghasilkan
titik potong p1 (x1,ymax)
y1 p2
b Ujung garis Pb
ymin Region code Pb = 0010
xmin x1 xmax Pb berpotongan dengan garis
xmax sehingga menghasilkan
titik potong p2 (xmax,y1)
Algorithma Cohen-Sutherland
Dengan menggunakan cara yang sama maka
lokasi titik potong untuk tiap area akan sesuai
tabel di bawah ini :
Area berpotongan dicari titik potong
T ymax xp1 (xp1,ymax)
B ymin xp2 (xp2,ymin)
R xmax yp1 (xmax,yp1)
L xmin yp2 (xmin,yp2)
Algorithma Cohen-Sutherland
Koordinat titik potong dapat dicari dengan
cara :
ymax y1
xp1 x1
m
ymin y1
xp2 x1
m
yp1 y1 m * xmax x1
yp2 y1 m * xmin x1
Algorithma Cohen-Sutherland
Contoh
• Diketahui : area gambar : (1,2)-(5,5)
• Ditanyakan :
lokasi titik potong dari garis
P (2,1) - (4,6) terhadap area gambar
lokasi titik potong dari garis S (2,6) - (6,3)
Algorithma Cohen-Sutherland
b m = (y2-y1) / (x2-x1)
6
= (6-1) / (4-2) = 5/2 =2,5
5
Ujung garis Pa
4
Region code Pa = 0100
3 P
Ujung Pa berpotongan dengan
2
garis ymin sehingga
1 a p = x1+(ymin - y1) / m
-2 -1 1 2 3 4 5 6 p = 2 + (2 - 1) / 2,5 = 2,4
-1
Jadi lokasi titik potong
-2
p = (2,4;2)
Algorithma Cohen-Sutherland
Ujung garis Pb
6
q Region code Pb = 1000
5
Ujung Pb berpotongan dengan
4
garis ymax sehingga
3 P
q = x1+(ymax - y1) / m
2
p q = 2 + (5 - 1) / 2,5 = 3,6
1
Jadi lokasi titik potong
-2 -1 1 2 3 4 5 6 q = (3,6;5)
-1 Dengan demikian garis P akan
-2 di gambar dari p ke q atau dari
(2,4;2) menuju (3,6;5)
Algorithma Cohen-Sutherland
a m = (y2-y1) / (x2-x1)
6
= (3-6) / (6-2) = -3/4 = -0,75
5
Ujung garis Sa
4 S
Region code Pa = 1000
3
b
Ujung Sa berpotongan dengan
2
garis ymax sehingga
1
p = x1+(ymax - y1) / m
-2 -1 1 2 3 4 5 6 p = 2 + (5 - 1) / -0,75 = 3,3
-1
Jadi lokasi titik potong
-2
p = (3,3;5)
Algorithma Cohen-Sutherland
Ujung garis Sb
6
p Region code Sb = 0010
5
Ujung Sb berpotongan dengan
4 S garis xmax sehingga
q
3
q = y1+ m * (xmax - x1)
2
q = 6 + (-0,75) * (5 - 2) = 3,75
1
Jadi lokasi titik potong
-2 -1 1 2 3 4 5 6 q = (5;3,75)
-1 Dengan demikian garis S akan
-2 di gambar dari p ke q atau dari
(3,3;5) menuju (5;3,75)
Algorithma Cohen-Sutherland
Untuk ujung-ujung garis dengan region code
berisi bit 1 maka ada tiga kemungkinan
perpotongan antara garis P dengan area
gambar
p3 p1 p4
p1 p1
P P
p2 p2 P
p2
p3
2 titik potong 3 titik potong 4 titik potong
Algorithma Cohen-Sutherland
Apabila ditemukan lebih dari satu titik potong
maka pilih titik potong yang paling "dekat"
dengan area gambar.
Bagaimana pengertian "dekat" didefinisikan?
Tugas anda mendefinisikan pengertian "dekat"
tersebut!
Algorithma
Cohen-Sutherland
Algorithma Cohen-Sutherland dapat dituliskan sebagai berikut :
P2 P2
P'2 Bidang
Proyeksi
Bidang P'2
Proyeksi
P'1 P'1 Titik hilang
P1 P1
samping
depan
Pandangan Samping
PROYEKSI AXONOMETRIC
isometric
dimetric
trimetric
PROYEKSI OBLIQUE
Cabinet Cavalier
PROYEKSI PERSPEKTIF
Proyeksi perspektif bergantung pada dua
variable : lokasi mata dan bidang proyeksi.
1 titik hilang
2 titik hilang 3 titik hilang
PROYEKSI PERSPEKTIF
t=0 t=1
t
A r(t) = A(1-t) + B*t B
Contoh :
A=5;B=9
dengan t = 0,3 maka r(t) = 9 * (1-0,3) + 5*0,3 = 6,2
dengan t = 1 maka r(t) = 9 * (1-1) + 5 * 1 = 9
PROYEKSI PERSPEKTIF
y
viewplane
p(x,y,z)
p'(x',y')
y
x'
y' x
z
mata
E x
z
PROYEKSI PERSPEKTIF
Dengan bidang proyeksi adalah bidang xy
dan titik terletak di sumbu z sejauh E maka
titik hasil proyeksi akan z = 0 apabila :
1
t'
1 z
E
y' y * t '
x' x * t '
dengan E > z
Contoh proyeksi perspektif
Diketahui sebuah benda dengan vertex-vertex dan edge seperti tabel di bawah
ini, lakukan proyeksi perspektif jika E terletak di z=10 dan z = 20:
Vertex x y z edge v1 v2
1 1 2 0 1 1 2
2 3 2 0 2 2 3
3 3 2 3 3 3 4
4 1 2 3 4 4 1
5 2 4 2 5 1 5
6 2 5
7 3 5
8 4 5
Contoh proyeksi perspektif
E = 10
Vertex x' y'
1 = x / (1-z/E) = y / (1-z/E) 5
5
= 1 / (1-0/10) = 2 / (1-0/10)
=1 =2 4
2 = 3 / (1-0/10) = 2 / (1-0/10) 3 3
4
=3 =2
2 1 2
3 = 3 / (1-3/10) = 2 / (1-3/10)
= 4,29 = 2,86 1
4 = 1 / (1-3/10) = 2 / (1-3/10) x
1 2 3 4
= 1,43 = 2,86
5 = 2 / (1-2/10) = 4 / (1-2/10)
= 2,5 =5
Contoh proyeksi perspektif
E = 20
3 = 3 / (1-3/20) = 2 / (1-3/20) 1
= 3,19 = 2,13
x
4 = 1 / (1-3/5) = 2 / (1-3/5) 1 2 3 4
= 1,06 = 2,13
5 = 2 / (1-2/20) = 4 / (1-2/20)
= 2,08 = 4,17
DUNIA 3 DIMENSI
2 Dimensi dan 3 DIMENSI
Apa yang membedakan 2 dimensi dengan 3
dimensi ?
2 Dimensi : Tinggi dan Lebar
3 Dimensi : Tinggi, Lebar dan Kedalaman
Kedalaman adalah jarak antara pemirsa
(viewer) terhadap benda yang dia lihat
2 Dimensi dan 3 Dimensi
2 Dimensi 3 Dimensi
tinggi
tinggi
kedalaman
lebar lebar
3 Dimensi
Bagaimana manusia memperoleh kesan kedalaman ?
Manusia mempunyai dua mata.
z+
x+ x+
Benda 3 Dimensi dan komputer
Komputer dapat digunakan untuk mengolah
benda tiga dimensi.
Ada tiga persoalan dalam mengolah benda
tiga dimensi menggunakan komputer :
Pembuatan lokasi titik 3D
Manipulasi titik 3D
Transformasi titik 3D menjadi 2D
Pembuatan lokasi titik 3D
Proses yang digunakan untuk menghasilkan lokasi
titik-titik 3D yang menunjukkan bentuk dari benda
3D
Ada 3 macam proses untuk menghasilkan lokasi titik
3D :
Penentuan langsung menggunakan peralatan seperti
mouse3D, scanner3D berbagai peralatan lain
Menggunakan parametric surface
Menggunakan prosedur khusus seperti extrude dan
surface of revolution.
Scanner 3D
Scanner 3D merupakan peralatan yang
digunakan untuk menghasilkan lokasi titik-titik
3D secara langsung dengan menunjuk lokasi
titik tersebut.
Contoh peralatan : mouse, trackball, laser
scanner dan sebagainya.
Parametric Surface
Digunakan untuk menghasilkan benda-benda
yang dapat direpresentasikan dalam rumus
matematika seperti : bola, donut, tabung,
cone dan sebagainya
Parametric Surface
Extrude
Merupakan prosedur menghasilkan lokasi
titik 3D dengan menarik titik-titik 2 dimensi ke
satu arah tertentu.
titik hasil extrude
arah extrude
titik asal
Surface of Revolution
Prosedur untuk menghasilkan lokasi titik 3D
dengan cara memutar profile pada sumbu
putar
sumbu putar
hasil putaran
profile
Reprsentasi Struktur data titik 3D
Titik 3D dapat disimpan sebagai :
Mesh
Rumus matematika
Titik profile
Mesh
Mesh merupakan kumpulan titik 3D yang saling
dihubungkan.
Model yang dihasilkan disebut sebagai wireframe
model
Permukaan benda (surface) diperoleh dengan
menghubungkan titik-titik vertex baik dalam bentuk
segiempat atau segitia.
Umumnya digunakan surface dalam bentuk segitiga
karena bentuk segitiga akan selalu berada dalam
keadaan planar (datar).
Mesh
edge surface 2
e2 e2
v3 v2
v3 v2
e3 vertex e1
e1 e3
e2 e1
v4 v1
e4 v4 v1
e3
surface 1
surface
Point3D = record
x,y,z:real;
end;
Mesh = record
jumvertex,jumedge:integer;
vertex : array [1..1000] of Point3D;
edge : array[1..1000,1..2] of integer;
end;
Mesh
Z
Daftar Vertex
Vertex x y z
1 0 0 0
4
2 0 1 0
5 3
3 0 1 1
9
4 0 0.5 1.5 10 8
5 0 0 1 1 2
Y
6 1 0 0
6 7
7 1 1 0
8 1 1 1
9 1 0.5 1.5
10 1 0 1
X
Shadow
Surf Transformasi / Pewarnaan
scanning Formula
Of Rev.
Hidden Line
Removal
Perspektif
Hidden Surface
Removal
Camera
RayTracing
OpenGL & GLUT
Sejarah OpenGL
Pada awal tahun 90-an Silicon Graphics (SGI) adalah
sebuah perusahaan yang memimpin dalam aplikasi
berbasis grafik 3D untuk workstation. Mereka
menggunakan API yang disebut IRIS GL untuk workstation
mereka. IRIS GL adalah milik perangkat keras SGI dan
bukan standar "terbuka". API dianggap mudah digunakan
dan juga mendukung render mode langsung.