PAPER
KONSEP GRAFIKA KOMPUTER
GRAFIKA KOMPUTER
PENDAHULUAN
Pada saat ditemukan pertama kali, komputer digunakan sebagai alat bantu untuk
mempercepat proses hitung menghitung. Dalam perkembangan selanjutnya,
banyaknya data yang harus ditangani menjadi sangat besar. Hal ini tentu menimbulkan
persoalan baru, yakni bagaimana data yang sangat banyak bisa ditangani dan
disajikan dengan cara yang lebih efisien dan efektif. Memang komputer bisa mencetak
hasil keluaran sampai beribu-ribu halaman jika diperlukan. Tapi tentu akan sangat
membosankan apabila manusia harus membaca laporan-laporan yang sangat
panjang, tidak saja akan memakan waktu, tapi kemungkinan salah menjadi lebih
besar, dan yang jelas, mereka yang membaca laporan-laporan tersebut harus benarbenar tahu apa yang sesungguhnya terkandung dalam angka-angka yang tersaji
dalam laporan tersebut.
Orang kemudian mengembangkan satu alat bantu yang bisa dipakai untuk menyajikan
data dalam jumlah yang sangat besar ke dalam sebuah bagan, sehingga lebih mudah untuk
dipahami. Dengan adanya alat bantu tersebut, pada saat-saat tertentu dan untuk keperluankeperluan tertentu, orang lebih suka menggunakan bagan dibanding hanya melihat deretan
angka yang sangat membosankan. Sejalan dengan hal ini, para ahli komputer juga tanggap
dan mereka kemudian mengembangkan perangkat yang membuat komputer menjadi sangat
pandai, yakni dengan menambahkan kemampuan grafis pada komputer-komputer yang
mereka kembangkan. Sehingga untuk saat ini bisa dikatakan bahwa semua komputer pasti
mempunyai kemampuan grafis dan kemudian lahirlah apa yang disebut dengan grafika
komputer (computer graphic).
Grafika komputer pada dasarnya adalah suatu bidang ilmu komputer yang
mempelajari tentang cara-cara untuk meningkatkan dan memudahkan komunikasi antara
manusia dengan mesin (komputer) dengan jalan membangkitkan, menyimpan dan
memanipulasi gambar model suatu obyek menggunakan komputer. Grafika komputer
memungkinkan kita berkomunikasi lewat gambar-gambar, bagan-bagan dan diagram-diagram
SISTEM GRAFIKA KOMPUTER
Data yang banyak dapat diwakili dengan bagan. Dalam hal ini, operator
memasukkan sejumlah data, dan dengan prosedur tertentu komputer akan menampilkan
bagan yang diinginkan. Bagan yang dihasilkan ini merupakan gambar statis karena operator
tidak dapat berinterkasi dengan gambar yang ada pada layar komputer.
Cara ini sangat tidak memadai, karena ada kalanya operator ingin berinteraksi
langsung dengan gambar pada layar komputer. Sistem yang memungkinkan operator
berdialog dengan apa yang terlihat pada layar komputer disebut dengan sistem grafika
komputer interaktif (interactive computer graphic).
Dalam sistem interaktif, operator bisa mengendalikan segala aspek gambar yang
terlihat secara dinamis. Aspek-aspek tersebut : isi gambar, format gambar, bentuk gambar,
ukuran gambar dan warna gambar. Pengendalian secara dinamis dapat dilakukan dengan
piranti-piranti seperti : keyboard, mouse, joystick, light pen, dll.
Keuntungan yang kita peroleh dari sistem interaktif adalah bahwa dengan mudah kita
bisa menirukan atau mensimulasikan sesuatu kejadian dalam dunia nyata (real world) pada
layar komputer.
Berdasarkan cara pandang kita terhadap gambar yang ada pada layar, kita bisa membedakan
apa yang dimaksud dengan motion dynamic dan update dynamic.
Motion dynamic pada dasarnya adalah cara pandang kita terhadap suatu obyek yang
bergerak dan kita sebagai pengamat dalam keadaan diam atau obyek yang kita amati diam
dan kita sebagai pengamat bisa bergerak bebas di sekeliling obyek tersebut. Contoh : flight
simulator.
Update dynamic pada dasarnya berhubungan erat dengan perubahan sifat dari obyek
yang sedang diamati. Sifat-sifat tersebut bisa berupa bentuk, warna atau sifat-sifat yang lain.
Dengan menggunakan komputer, dengan mudah kita mensimulasikan tabrakan antara dua
buah mobil dengan kecepatan yang bisa dibuat bervariasi. Dengan cara ini, pabrik mobil bisa
mempelajari hasil simulasi dan menambahkan unsur-unsur yang diperlukan untuk lebih
menjamin keselamatan pengemudi dan penumpang.
PENERAPAN GRAFIKA KOMPUTER
Computer Graphic mencakup bidang :
Computer Aided Design (CAD) untuk proses perancangan terutama pada sistem
rekayasa dan arsitektur. Misal : grafika komputer bisa digunakan untuk merancang
komponen-komponen dari sistem-sistem mekanis, elektris, elektro-mekanis, pirantipiranti elektronis, struktur bangunan, reaktor kimia, badan-badan mobil, pesawat
terbang, badan kapal lengkap dengan ruang-ruang yang ada, jaringan komputer,
jaringan telepon, dll.
Dalam bidang ini tekanan utama dari pemakaian grafika komputer adalah untuk
memproduksi gambar dengan ketelitian yang sangat tinggi. Selain itu, gambar yang
dihasilkan dari CAD bisa dipakai sebagai masukan ke suatu sistem yang akan
mengevaluasi model yang digambar sesuai kebutuhan dan dengan cara-cara tertentu
operator bisa mengubah model yang sudah ada untuk disesuaikan dengan kebutuhan.
Presentasi
Art membuat logo, gambar
Hiburan game
Pendidikan dan pelatihan simulasi pesawat terbang (flight simulator)
Visualisasi
GUI (Graphical User Interface)
KLASIFIKASI PENERAPAN GRAFIKA KOMPUTER
Ada sejumlah kriteria yang bisa dipakai untuk mengelompokkan penerapan grafika komputer
pada bidang-bidang seperti dijelaskan diatas, yaitu :
1. Berdasarkan tipe dari objek dan gambar yang dihasilkan. Terapan-terapan yang termasuk
didalam kriteria ini antara lain gambar-gambar garis dari objek 2D dan 3D (yang sering
disebut dengan wired-frame pictures), misalnya garis-garis yang menunjukkan struktur
suatu bangunan, gambar 2D dengan gray scale yang berbeda, gambar 3D yang
memperhatikan efek pencahayaan/bayangan.
2. Berdasarkan interaksi dan derajat pengendalian objek/gambar dalam layar. Dalam offline
plotting, gambar bisa dibentuk dari sekumpulan data yang diketahui atau diperoleh dari
basis data, sehingga gambar yang dihasilkan tidak bisa diubah kecuali mengubah basis
data. Dalam interactive plotting, user bisa berinteraksi dengan gambar sehingga user bisa
mengubah gambar yang tampil dilayar dengan menggunakan piranti yang ada. Dalam
interactive design user bisa menggambar bentuk tertentu dimulai dari layar dalam keadaan
kosong, kemudian ditambahkan sejumlah objek dimana user bisa mengubah gambar yang
telah terbentuk dengan mudah, misalnya memperbesar atau memperkecil gambar.
3. Berdasarkan role of the picture atau bagaimana gambar yang tertampil mempunyai arti
bagi user atau siapa saja yang melihatnya. Dalam bidang-bidang tertentu misalnya
kartografi, gambar yang dihasilkan merupakan produk utama, sedangkan pada bidangbidang lain gambar yang dihasilkan hanya merupakan visualisasi dari suatu objek atau
fenomena yang ingin diamati.
4. Berdasarkan hubungan antara objek dan gambar yang tertampil. Dalam hal ini user dapat
menampilkan sebuah gambar dalam sekali tampil, sekelompok gambar yang saling
berhubungan atau dengan teknik lain.
Citra : berorientasi pixel, dimana gambar pada komputer dibentuk dengan model 2D
matrix
M x N BITMAP, sehingga untuk memanipulasi citra, cukup dengan
memanipulasi warna/intensitas dari pixel yang bersangkutan (elemen matrixnya).
Graphic : berorientasi vektor, sehingga untuk memanipulasi suatu grafik, yaitu dengan
cara mengubah elemen-elemen dari vektor yang bersangkutan. Vektor memiliki arah dan
besaran.
Citra : mengolah data citra untuk mendapatkan interpretasi 2D atau 3D dari objek dalam
citra.
Graphic : Menggunakan model 2D atau 3D untuk mendapatkan hasil realistik pada layar
Citra : menitikberatkan pembahasannya pada teknik-teknik untuk meningkatkan kualitas
suatu citra yang telah ada sebelumnya sesuai dengan keperluan penggunanya atau pada
metode persepsi mesin terhadap suatu informasi visual (misalnya dalam dunia robotika)
Graphic : Grafika Komputer cenderung mempelajari konsep dan implementasi dari suatu
metode untuk membangkitkan suatu citra maupun animasi, baik dalam bentuk dua dimensi
maupun tiga dimensi.
Citra : Pengolahan Citra berawal dari citra digital yang kemudian akan dianalisa dan atau
disintesa ulang untuk mendapatkan citra baru dengan kualitas yang lebih baik, atau
dianalisa untuk mendapatkan deskripsi objek-objek yang terdapat dalam citra tersebut.
Graphic :Proses-proses Grafika Komputer berawal dari primitif-primitif dasar grafis (titik,
garis, lingkaran dll) yang mendeskripsikan objek-objek yang kemudian akan membentuk
suatu citra dua dimensi maupun tiga dimensi.
0 1 2 3 4
0
1
2
3
4
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
Tapi jika di pandang sebagai vektor dalam grafik, maka gambar tersebut direpresentasikan sbg
:
1. Cara pertama : (3,Timur),(4,Selatan),(3,Barat),(4,Utara).
Kelemahan : kita tidak dapat menentukan titik asal dari vektor.
2. Cara kedua : [(0,1),(0,3)], [(0,3),(4,3)], [(4,3),(4,1)], [(4,1),(0,1)]
Dengan cara ini, maka kita mengetahui titik asal dan tujuan sehingga kita dapat
memperoleh arah dan besar dari vektor tersebut.
Arah = tan-1[(Y2-Y1)/(X2-X1)]
Besar = (X1-X2)2 + (Y1-Y2)2
3. Cara ketiga : Menggunakan informasi atribut segi empat.
[(0,1),(4,3)] atau (0,1,4,3)
Jika ada suatu gambar yang terdiri dari grafik dan area dapat diisi dengan warna tertentu,
maka itu disebut grafik juga. Intinya grafik adalah gambar yang koordinatnya dapat diubah.
MONITOR
Dalam computer graphic, monitor adalah salah satu perangkat penting. (Zaman dulu, printer
merupakan perangkat penting dalam computer graphic).
Pada dasarnya, semua monitor dengan kemampuan grafis memiliki 3 komponen utama :
1. Display
2. Frame Buffer, dimana gambar yang akan ditampilkan ke layar disimpan sebagai matrix
dimana nilai elemennya menunjukkan intensitas dari citra grafis yang akan
ditampilkan.
3. Display Controller/Display Processor, berfungsi untuk melewatkan isi frame buffer dan
mengolahnya untuk ditampilkan ke display.
Cara untuk menampilkan gambar pada layar membedakan jenis tampilan yang ada :
1. Vector Display/Calligraphic Display/Stroke Display. (60-an)
Frame buffer pada jenis vector display berisi display list/display program yang memberi
perintah penggambaran titik, perintah penggambaran garis dan perintah
penggambaran karakter. Perintah-perintah ini selanjutnya akan diolah oleh display
processor yang akan mengubah data digital menjadi tegangan analog yang akan
dipakai untuk memancarkan elektron, yang apabila mengenai tabung display yang
dilapisi fosfor akan menyebabkan fosfor tersebut berpendar dan terlihat ada gambar.
Karena sinar pendar dari fosfor itu tidak bertahan lama, dalam puluhan atau ratusan
milidetik, maka elektron-elektron tersebut harus ditembakkan minimal 30 kali per detik
untuk menghindari adanya kedip. Proses ini disebut sebagai electron refresh.
2. Raster Display. (70-an)
Dikembangkan berdasarkan teknologi televisi. Dalam jenis tampilan ini, grafis, karakter
dan bentuk-bentuk lain selalu digambar berdasarkan komponen terkecilnya yaitu titik
atau pixel/pel (picture element). Sebuah pixel pada layar bisa dihidup-matikan dengan
mudah. Karena status sebuah pixel adalah hidup(nyala) atau mati, maka dengan
mudah dikodekan menggunakan biner (0/1). Dengan cara inilah sesungguhnya suatu
citra grafis disimpan dalam frame buffer. Untuk gambar hitam-putih warna hitam
digunakan bit 1 dan warna putih digunakan bit 0. Untuk gambar warna, ex :
Citra 4 bit menggunakan 16 kombinasi warna
Citra 8 bit menggunakan 256 kombinasi warna
Citra 24 bit menggunakan 16 juta kombinasi warna
Jenis-jenis monitor :
1. Layar Tabung (CRT = Cathode-Ray Tube)
2. Layar datar (LED, LCD, Plasma display)
Macam layar/tampilan :
1. B/W : Hercules
2. Color : CGA, EGA, VGA, SVGA, XGA, IBM8514, dll.
Setiap mode layar mempunyai perbedaan dalam beberapa hal, antara lain :
Jumlah pixel dalam 1 layar (resolusi layar)
Mis. 340 x 200, 640 x 400, 640 x 480, 800 x 600, 1024 x 968
Dot Pitch
Merupakan unit terkecil dalam menampilkan warna pixel.
Dot pitch dapat dibedakan berdasarkan kerapatannya.
Mis. 0.28mm, 0.26mm, 0.32mm, 0.39mm
Semakin kecil dot pitch, maka tampilan gambar semakin halus.
Warna tampilan layar
Jumlah Warna
2
4
16
256
Bit
1
2
4
8
Contoh Monitor
B/W
CGA
Mode DOS
VGA
Mengapa jumlah warna yang ditampilkan selalu merupakan kelipatan 2,4,16,256 karena
alasan efisiensi penggunaan teknologi yang telah ada dan kemudian dipadukan untuk
menghasilkan tampilan warna yang baru.
Contoh soal :
Berapakah memori yang dibutuhkan untuk citra 8 bit dengan ukuran 800 x 600 ?
Memori yang dibutuhkan
= 800 x 600 x 8 bit = 3.840.000 bit
= 480.000 byte
469 KB
Horizontal & Vertical Retrace
Refresh Rate :
Kecepatan update dari awal (kiri atas layar)
hingga kembali setelah vertcal retrace
Horizontal
Retrace
Vertical
Retrace
PLOTTER
Jika pada printer menggunakan Raster Technology (mencetak dari atas ke bawah, dari kiri ke
kanan), maka pada plotter menggunakan Vector Technology (mencetak dari segala arah).
NB : Scanner tidak termasuk hardware grafik, tapi lebih tepatnya termasuk hardware citra
karena gambar hasil scan disimpan dalam bentuk bitmap (dengan teknologi raster).
PERANGKAT LUNAK GRAFIS
Untuk menampilkan suatu informasi grafis, banyak perangkat lunak yang telah dibuat dalam
membantu proses-proses dalam grafika komputer, contohnya :
Corel draw, AutoCAD, 3D Studio MAX, MS.Paint, dll
Perangkat Tools untuk pengembangan grafis (pustaka/library) :
BGI (Borland Graphic Interface)
OpenGL
DirectX
Tugas I
Buat Grafik dengan salah satu library di atas (BGI,OpenGL,DirectX).
Dikumpulkan 1 minggu.
PRIMITIF GRAFIS
TITIK (PIXEL/DOT)
Attributnya :
Lokasi
Warna
GARIS (LINE)
Attributnya :
Lokasi titik-titik ujung, mis : (x1,y1), (x2,y2)
Ada juga yang menyatakan garis dengan : titik awal, arah dan panjang.
Ketebalan garis (Thickness)
Tipe Garis (Pattern)
Warna
LINGKARAN (CIRCLE)
Attributnya :
Titik pusat (Xp,Yp)
Jari-jari lingkaran atau radius (r atau d)
Ketebalan (Thickness)
Tipe Garis (Pattern)
Warna
ELLIPSE
Attributnya :
Titik pusat (Xp,Yp)
Jari-jari horizonal (a) & Jari-jari vertical (b)
Ketebalan (Thickness)
Tipe Garis (Pattern)
Warna
POLYGON
Yang teratur :
Poligon yang teratur dapat dibuat dengan menggunakan dimensi garis yang memiliki panjang
tetap.
Contoh :
Polygon (6,3,5,4), dimana :
(6,3) lokasi awal
5 Segi 5
4 Panjang sisi.
Hasil :
(6,3)
4
4
4
Untuk polygon yang teratur dapat dibuat dengan menggunakan algoritma iterasi, tetapi untuk
polygon yang tidak teratur digunakan suatu array yang menyimpan suatu lokasi titik-titik
sikunya.
SEGI 4
Attributnya :
Lokasi : Titik kiri atas (x1,y1) dan Titik kanan bawah (x2,y2)
Warna
(x1,y1)
Thickness
Pattern
(x2,y2)
Untuk menggambar segi 4 seperti :
KURVA
Kurva Teratur
Misal : Kurva sinus, cosinus, kurva y=x2
Kurva Tak Teratur
Gunakan Metode Control Point.
Misal : Bezier.
Control Point
CHARACTER (FONT)
Attributnya :
Jenis Character
Kemiringan (Slanted), mis : horizontal, vertical
Thickness
Super/Subscript
Warna
Titik (Dot/Pixel)
Titik merupakan elemen yang paling dasar.
Pembuatan titik dapat dilakukan dengan berbagai cara antara lain :
1. Pustaka Grafik (Graphic Library), misal :
BGI putpixel (x,y,color)
OPENGL GL_Drawdot (x,y,color)
Window API DrawPixel (x,y,color)
2. Low Level Programming
Interupt, yaitu :
- H/W, yang beroperasi pada processor
- S/W, ada 2 yaitu : DOS dan BIOS
DMA (Direct Memory Access)
langsung mangakses ke alamat memory :
ex. Untuk mode text B800:0000h
Untuk mode grafis A000:0000h
Mode Text
Mode Grafis
B800:0000h
Karakter
A000:0000h
Warna
B800:0001h
Attribut
A000:0001h
Warna
B800:0002h
A000:0002h
B800:0003h
A000:0003h
B800:0004h
A000:0004h
600
(799,599)
800
void mode_int (no_mode)
{
REGS R;
R.h.ah = no_mode;
Int86(0x10,&R,&R);
}
void setpixel_DMA (x,y,color)
{
char *Segmen = 0xA0000000;
(Segmen+(800*y+x)) = color;
}
procedure getpixel_DMA(x,y,color);
begin
mem[A000:(800*y+x)] := color;
end;
GARIS (LINE)
Persamaan garis :
y y1
y2 y 1
Y2
x x1
=x x
2
1
y = m.x + c
dimana :
m = (y2-y1)/(x2-x1) = y/x
c = y1 m.x1 atau
c = y2 m.x2
Y1
X1
X2
Algoritma pembuatan garis lurus vertikal dan horisontal relatif mudah, tetapi bila garis tersebut
miring, maka algoritma menjadi sulit.
Misalkan : Line (1,3,8,5).
m = (y2-y1)/(x2-x1) = (5-3)/(8-1) = 2/7
c = y1 m.x1 = 3 2/7.1 = 19/7
y = 2/7.x + 19/7
Selanjutnya kita membuat iterasi dari x1 x2
Xi
1
2
3
4
5
6
3.00
3.29
3.57
3.86
4.14
4.43
Yi (dibulatkan)
7
2
3
3
4 Y
4
4
4
4.71
85.005
Yi
5
1
4
0
3
0123456789
10
y m.x c
m
Jika 0m1
Jika m>1
yk+1
xk+1
xk+1
yk+1
y2 y1 y
x2 x1 x
=
=
=
=
yk + m
xk + 1
xk + 1/m
yk + 1
P0 2y x
Repeat
If Pk<0 then
Plot (Xk+1,Yk)
Otherwise
Pk 1 Pk 2y
Plot (Xk+1,Yk+1)
Pk 1 Pk 2y 2x
Until X=end
Contoh : Line (20,10,30,18)
X = 10, Y = 8
Po = 2Y - X = 6
2Y = 16
2Y - 2X = -4
Maka proses generate garis nya adalah :
Pk
(Xk+1,Yk+1)
Pk
(Xk+1,Yk+1)
(21,11)
(26,15)
(22,12)
(27,16)
-2
(23,12)
-2
(28,16)
14
(24,13)
14
(29,17)
10
(25,14)
10
(30,18)
CIRCLE
Defined as the set of points that are all at given distance r from a center position
(Xc,Yc), expressed :
( x xc ) 2 ( y yc ) 2 r 2
Calculate the position of points stepping along x axis from (Xc-r) to (Xc+r) with :
y y2
r 2 ( xc x ) 2
Problem :
Considerable computation at each step
Spacing between plotted pixel is not uniform.
Example :
x 2 y 2 100
y 2 100 x 2
(x,y)
(x,y)
(x,y)
0
1
2
3
10
9,9
9,8
9,5
(0,10)
(1,10)
(2,10)
(3,10)
4
5
6
7
9,1
8,6
8
7,1
(4,9)
(5,9)
(6,8)
(7,7)
8
9
10
6
4,5
0
(8,6)
(9,5)
(10,0)
x xc r. cos
y y r. sin
c
Symmetric in octant calculating only sector from x=0 to x=y
2X
0
2Y
20
Pk
-9
0
1
2
3
4
5
6
(1,10)
(2,10)
(3,10)
(4,9)
(5,9)
(6,8)
(7,7)
2
4
6
8
10
12
14
20
20
20
18
18
16
14
-6
-1
6
-3
8
5
6
ELLIPSE
Set of points such as the sum of the distance from two pixed position (foci) is the same
for all points
P(x,y)
d1
d2
d1+d2 = constant
F2
F1
Ellipse Equation :
( x xc ) 2 ( y yc ) 2
1
rx
ry
Polar :
x xc rx . cos
y yc ry . sin
rx
ry
Reg.I
Reg.II
Region I :
(xo,yo)=(0,ry); Plot (xo,yo)
Region II :
(xo,yo)=(0,ry); Plot (xo,yo)
P0 = ry2 rx2ry+1/4rx2
Px = 0; Py=2rx2y
While Px<Py
x=x+1
Px = Px + 2ry2
If P 0
x=x+1
Px = P x +
If P 0
y=y-1
Py = P y
2ry2
Pk+1 =
2rx2
Pk+rx2+Px-Py
Otherwise
Pk+1 =
Pk+1 =
Example :
Pk+ry2+Px-Py
Otherwise
rx=8, ry=6
Pk+1 =
Region I :
2
k Pk+ry +P(x,y)
x
Px
Py
Pk+rx2-Py
Plot(x,y)
Pk
(0,6)
Plot(x,y)
768
-332
(1,6)
72
768
-224
(2,6)
144
768
-44
(3,6)
216
768
208
(4,5)
288
640
-108
(5,5)
360
640
288
(6,4)
432
512
244
(7,3)
504
384
400
Region II :
k
0
1
2
(x,y)
(8,2)
(8,1)
(8,0)
Px
576
576
576
Py
256
128
0
Pk
-151
233
169
233
AREA FILLING
Dalam grafis, selain digunakan primtif-primitif grafis, diperlukan algoritma khusus untuk
mengisi warna. Untuk pengisian warna pada grafik diterapkan pada titik yang memiliki hole.
Contoh :
Ada beberapa algortima yang dapat digunakan untuk melakukan area filling, yaitu :
Scan Line
Boundary Fill Algorithm
Flood Fill Algorithm
Scan Line
Dimulai dari kiri atas layar
Bergerak ke kanan hingga batas kanan layar
Ulangi untuk baris-baris berikutnya
Jika ditemukan suatu batas area, maka dilakukan operasi putpixel hingga ditemukan
batas area berikutnya
Kelemahan :
Algoritma akan gagal jika ditemui titik-titik ujung, sehingga perlu penanganan khusus.
Solusi : periksa semua informasi titik ujung berdasarkan list vektor yang dimiliki
setiap primitif.
Boundary Fill Algorithm
Dengan teknik ini pengisian warna dilakukan berdasarkan penentuan titik awal.
Posisi awal diletakkan pada area filling.
Kemudian semua titik tetangga diuji terhadap batas area
4 Connected
1
4
8 Connected
TRANSFORMASI 2D
Transformasi digunakan untuk mengubah bentuk objek grafik.
Ada 2 macam untuk transformasi, yaitu:
Transformasi 2D
Transformasi 3D
Kategori transformasi dasar :
Translasi
Rotasi
Skala
Transformasi lain :
Shear
Refleksi
Transformasi Translasi
Objek digeser dalam :
- Arah X
- Arah Y
Misal :
Diketahui titik (2,3) di translasi arah x=4 dan arah y=1
(2,3) x 4(6,3) y 1(6,4)
Matrix Homogen Translasi
Memudahkan perhitungan suatu translasi dapat dinyatakan dalam matrix homogen
berikut :
0 0
1
0
1
0
Tx Ty 1
( x, y )
Tx ,Ty
( x ' , y ' )
Operasi Translasi :
0
1
x y 1. 0 1
Tx Ty
x = x +Tx
y = y + Ty
0
0 x Tx
1
y Ty
Transformasi Skala
(0,0)
Sx
0
( x, y )
0
0
0
Sy
Sx , Sy
( x ' , y ' )
x = x.Sx
y = y.Sy
x y 1. 0 Sy 0 x.Sx y.Sy
0
0
1
Yf
(0,0)
Xf
Langkah-langkah :
1. Translasi ke (0,0)
2. Skala-kan
3. Translasi balik ke (Xf,Yf)
Matrix Homogen Skala (terhadap titik (Xf,Yf))
0
0 Sx
0 0 1
0
1
0
1
0 0
Sy 0 0
1
Xf Yf 1 0
0 1 Xf Yf
Sx
0
0
0
Sy
0
Xf .Sx Xf Yf .Sy Yf 1
Sx
0
0
0
Sy
0
Xf (1 Sx) Yf (1 Sy ) 1
0
0
1
Transformasi Rotasi
Operasi Rotasi terhadap titik (0,0)
(c,d)
Titik (a,b)(c,d), dimana :
d
r
b
(a,b)
r
a=r.cos
b=r.sin
c=r.cos(+)=r.cos .cos r.sin .sin
=a.cos b.sin
d=r.sin(+)=r.sin .cos +r.cos .sin
=b.cos + a.sin
0
0
1
Operasi Rotasi terhadap titik (0,0):
cos
1. sin
sin
cos
0
0
0 x. cos y. sin
1
x. sin cos
0
Xf
0
1
Yf
0 cos
0 . sin
1
0
sin
cos
0
0 1
0 0
1 Xf
0
1
Yf
GRAFIKA 3 DIMENSI
Grafika Komputer dalam aplikasinya terbagi menjadi 2 :
Grafika 2D
Grafika 3D
0
1
Aplikasi 2D banyak dipakai dalam pembuatan grafik, peta, kreasi 2D yang banyak membantu
pemakai dalam membuat visualisasi.
Grafika 2D memiliki kekurangan, yaitu : ketidakmampuannya untuk merepresentasikan objek
3D. Kekurangan ini sangat dirasakan terutama dalam bidang desain, dimana kebanyakan
desainer membuat barang yang ada dalam dunia nyata yang berdimensi 3.
Grafika 3D memiliki kemampuan untuk membuat visualisasi dari sebuah benda yang nyata
yang dapat dilihat dari berbagai sudut pandang. Hal inilah yang membuat grafika 3D banyak
dipakai terutama dalam bidang desain dari sebuah produk.
GEOMETRI 3D
Dalam grafika komputer, sebuah objek harus dispesifikasikan dengan metode geometri
analitik.
Sama halnya dengan grafika 2D, objek yang paling sederhana adalah sebuah titik. Sebuah titik
dalam grafika komputer harus dideskripsikan dengan benar dimana letaknya, sehingga tidak
ada ambiguitas dimana titik tersebut berada. Karena itu dibutuhkan sebuah sistem koordinat
untuk mendeskripsikan letak titik tersebut.
Jika dalam grafika 2D dikenal sistem koordinat dengan 2 sumbu/axis x dan y, maka dalam
grafika 3D digunakan sistem koordinat dengan 3 sumbu, yaitu x,y,z. Pada sistem koordinat
inilah sebuah objek dideskripsikan. Sebuah titik, objek paling sederhana dalam grafika
komputer, harus memiliki attribut x,y,z untuk menunjukkan letaknya pada sebuah dunia 3D
(world).
Pada sistem koordinat 3D harus diperhatikan orientasi dari sumbu x,y dan z. Grafika 3D
mengenal 2 buah sistem koordinat, yaitu :
+y
+y
+z
+x
+x
+z
Right-handed
Left-handed
Posisi sebuah titik dalam grafika 3D diekspresikan dengan (x,y,z). Beberapa titik yang
berdekatan akan membentuk sebuah garus. Seperti pada grafika 2D, sebuah garis dibentuk
dengan mendeskripsikan dua buah titik, yaitu (x1,y1,z1) dan (x2,y2,z2) yang menjadu ujung
dari sebuah garis. Sebuah garis dalam grafika 3D dapat diekspresikan dengan sepasang
persamaan, yaitu :
y y1 y 2 y1
x x1
x 2 x1
z z1
z z1
2
x x1 x 2 x1
Pada grafika 3D, terdapat sebuah geometri yang sangat penting, yaitu bidang datar (plane).
Sebuah bidang datar pada grafika 3D dispesifikasikan dengan sebuah persamaan, yaitu :
Ax + By + Cz + D = 0
Dengan adanya geometri 3D untuk mengekspresikan sebuah titik, garis dan bidang datar,
maka sebuah objek 3D dapat didekripsikan dengan geometri tersebut. Sebuah objek dalam
grafika 3D dapat dibangun dengan menggunakan primitif 3D.
PRIMITIF 3D
Primitif adalah beberapa bentuk dasar yang dapat dengan mudah didefinisikan secara
matematik.
Pada grafika 3D terdapat primitif yang paling umum :
Bola (sphere)
Kubus(cube)
Silinder (cylinder)
Kericut (cone)
Cincin (torus)
Primitif-primitif ini biasanya diambil dari bentuk-bentuk dasar benda yang sangat umum.
Sehingga pemodelan benda-benda pada grafika 3D dapat dimodelkan dengan menggunakan
primitif-primitif tersebut.
Setiap primitif 3D memiliki parameter, yaitu :
Nilai yang mengekspresikan letak
Bentuk primitif tersebut
Misal : Kubus dapat diekspresikan dengan 1 buah titik (x,y,z) dan sebuah nilai yang
mengekspresikan panjang rusuk primitif tersebut. Titik (x,y,z) menentukan salah satu titik sudut
dari kubus, sekaligus berfungsi untuk menentukan letak primitif tersebut dalam world.
Primitif dalam grafika 3D memiliki parameter yang berbeda satu dengan yang lain. Sehingga
setiap objek dalam grafika 3D harus didefinisikan dari primitif apa dia diturunkan dan bagiaman
cara melakukan rendering pada objek tersebut.
RENDERING
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 yang paling sederhana dalam grafika 3D :
1. Wireframe rendering
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 depam dan sisi belakang dari sebuah
objek.
2. 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 daro 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.
3. 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.
Geometri
Kamera
Cahaya
Karakteristik
Permukaan
Algoritma
Rendering
Citra Rendering
Secara umum, proses untuk menghasilkan rendering dua dimensi dari objek-objek 3D
melibatkan 5 komponen utama :
Geometri
Kamera
Cahaya
Karakteristik Permukaan
Algoritma Rendering
KAMERA
Dalam grafika 3D, sudut pandang (point of view) adlah 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 sistem 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.
Objek di dalam
Field of View
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 objekobjek 3D yang ada.
Sebuah sumber cahaya memiliki jenis. Pada grafika 3D dikenal beberapa macam sumber
cahaya, yaitu :
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.
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.
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.
area light
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
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 cahay, 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 :
Lokasi Lokasi (x,y,z) dari sebuah sumber cahaya akan menentukan pengaruhnya
terhadap sebuah objek.
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.
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
Salah satu elemen yang dibutuhkan dalam melakukan proses rendering adalah karakteristik
permukaan dari objek. Karakteristik permukaan dari sebuah objek adalah sifat dari permukaan
sebuah objek. Karakteristik permukaan ini meliputi warna, tekstur, dan 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.
Parameter-parameter
lainnya,
seperti
diffuseness,
refleksisifitas,
dan
lain-lain
direpresentasikan dengan sebuah nilai. Nilai ini menentukan sifat dari parameter-parameter
tersebut. Misalnya pada rougness, makin besar nilai parameternya, makin kasar objek
tersebut.
ALGORITMA RENDERING
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
Ray-Casting sebuah algoritma yang menembakkan seberkas sinar ke point of view, jika
sinar mengenai objek, maka warna objek tersebut akan menjadi warna pixel tempat penembak
sinar itu. Setelah pixel tersebut diberi warna, kalkulasi diteruskan ke pixel berikutnya. Pada
algoritma ray-casting ini terdapat sub program yang digunakan untuk menghitung warna pada
sebuah titik pada objek dan letak objek pada sumbu z. Untuk itu digunakan algoritma shader
dan Z-buffer.
Kelebihan : rendering relatif lebih cepat dari algoritma yang lainnya. Hal ini disebabkan karena
pada algoritma ini, objek-objek dalam world dianggap terisolasi. Sehingga perhitungan hanya
ada satu objek, objek lainnya diabaikan untuk sementara waktu.
Ray-tracing Mirip ray-casting, hanya saja isolasi pada sebuah objek dihilangkan. Sehingga
pewarnaan sebuah objek dipengaruhi oleh objek lainnya. Ray-tracing sangat baik
memproduksi citra rendering pada produksi akhir (final production), karena citra yang
dihasilkannya sangat realisatik.
Kekurangan : waktu rendering yang lama. Hal ini disebabkan karena algoritma ini
memperhitungkan berbagai objek untuk mengetahui warna dari sebuah pixel.
Radiosity algoritma ini memecah permukaan yang ada menjadi beberapa permukaan yang
lebih kecil. Pemecahan ini mengakibatkan sebuah objek akan berpengaruh pada pewarnaan
objek lainnya, tapi pengaruhnya tidak terjadi pada seluruh permukaan, hanya ada permukaan
tertentu saja. Hal ini memperbaiki teknik ray-tracing yang pengaruh dari objek lainnya
mempengaruhi seluruh permukaan atau kadang tidak berpengaruh sama sekali (diffuse
interaction problem)
Kelemahan : lambat (bahkan lebih lambat dari ray-tracing)
Ray-Casting
Menembakkan sinar untuk
mengetahui warna dari cell
Menggunakan
metode
sampling untuk menam-pilkan
hasil
Biasanya dimodifikasi sesuai
kebutuhan
Memiliki konstrain geometrik
tertentu
Waktu rendering cepat
Digunakan untuk visuali-sasi
secara cepat
Dapat digunakan untuk outdoor dan in-door scene
Hasil
rendering
kadang
terlihat kotak-kotak
Ray-Tracing
Menelusuri
sinar
secara
terbalik untuk mengetahui
warna dari sebuah pixel
Tidak menggunakan sampling
Radiosity
Membagi bidang menjadi
bidang yang lebih kecil untuk
menentukan warna
Tidak menggunakan sampling
Tidak
Memiliki
konstrain
geometrik tertentu
Waktu rendering lambat
Tidak
Memiliki
konstrain
geometrik tertentu
Waktu
rendering
sangat
lambat
Digunakan untuk visualiasi
hasil akhir
Biasanya digunakan untuk indoor scene
Hasil
rendering
sangat
realistik
oleh beberapa titik yang saling berhubungan membentuk sebuah garis, dimana garis-garis
tersebut membentuk sebuah permukaan dan permukaan-permukaan tersebut membentuk
sebuah benda 3D. Relasi antar titik, antar garIs dan antar permukaan dapat dinyakan dengan
sebuah tabel, seperti :
E1
S1
V1
E2
Tabel Titik
V1 : x1,y1,z1
V2 : x2,y2,z2
V3 : x3,y3,z3
V4 : x4,y4,z4
V5 : x5,y5,z5
V5
E4
V2
E5
S2
E3
V4
E6
V3
Tabel Sisi
E1 : V1,V2
E2 : V1,V3
E3 : V2,V3
E4 : V2,V5
E5 : V4,V5
E6 : V3,V4
Tabel Permukaan
S1 : E1,E2,E3
S2 : E3,E4,E5,E6
Dari tabel-tabel tersebut, didapatkan data-data mengenai objek yang akan diolah dalam grafika
komputer.
Referensi Pustaka :
https://id.scribd.com/doc/231268547/Buku-Grafkom
http://basuki.lecturer.pens.ac.id/lecture/PengantarGrafika.pdf