Note For GrafCit Overview : -------------------------------------Perbedaan antar grafik dan citra - Grafik : ○ berbasis vektor ○ Menggunakan model 2D/3D -> hasil realistik ○ Pembangkitan citra/ animasi 2D/ 3D ○ Mendeskripsikan objek dengan primitif dasar grafis - Citra : ○ berbasis raster/ pixel ○ Mengolah data citra yang udah ada ○ Titik berat pada manipulasi citra sesuai dengan keperluan user ○ Berawal dari citra digital
-
Raster
Vektor
Jika di zoom jadi ancur
Jika di zoom masih bagus Mengunaan primitif( buat gari dll) dalam pembentukan citranya
Komputer tidak tau objek apa yg ada Tau objek yg ada Garis : -----------------------------------Algoritma pembuatan Garis ada 3 : - Algoritma primitif : Dengan cara melakukan perhitungan matematis setiap akan memplot titik. ○ Y = mx + c; - Algotitma DDA : Ide dasarnya adalah pemetaan mengunakan nilai sebelumnya (menambahakan nilai m). Dapat mempercepat komputasi karena perhitungan matematis hanya dilakukan sekali. - Nilai pemetaan selanjutnya tergantung nilai m. - Ex: ○ Jika 0<m<1 : yk = yk + m; □ Xk = xk + 1; ○ Jika m>1 : xk = xk + 1/m □ Yk = yk + 1; - Algoritma Brasenham ; idenya hampir smaa dengan DDA hanya saja d=disini kita menggunakan asumsi bahwa titik akan dplot hnay pada 2 kemungkinan. Yang penentuanya plotnya ditentukan oleh decesion parameter. Secara mamtematis : Y(i+1) ----> yi ----> yi + 1
Screen clipping taken: 22/10/2011 13:45
Lingkaran : --------------------------------Unfiled Notes Page 1
Lingkaran : --------------------------------Algoritma Polar : mengunakan Sudut dalam pembentukannya Algoritma pembentuk lingkarang dengan midpoint : - Bagian lingkaran hanya dibentuk pada kuadran 1 saja, setelah itu akan dilakukan pencerminan. - Langkah pembuatan lingkaran ini hampir sama dengan pembuatan garis pada breserham dimana sama2 mengunakan decision parameter.
Screen clipping taken: 22/10/2011 13:44 Eleips : -----------------------------------Alggoritma Polar : menggunakan perhitungan sudut dalam pembuatannya Midpoint elips : - Hampir sama dengan lingkaran hanya saja pembetukan garis dilakukan pada 2 region(oktan 1 dan oktan 2) pada kuadran 1. setelah itu dilakukan pencerminan. - Dalam plotingnya mengunakan parameter jg.
Screen clipping taken: 22/10/2011 13:48 Filling : ----------------------------------------Ada 3 cara dalam melakukan filling : - Scan Line : ○ Dimulai dari kiri atasa layar. ○ Bergerak kekanan ○ Kelemahan : Algoritma akan gagal jika menenmukan titik ujung yang berdempetan.
Unfiled Notes Page 2
Screen clipping taken: 22/10/2011 13:56 - Boundary Fill : ○ Warna ditentukan berdasarkan titik awal ○ Kemudian semua titik tetangga diuji dengan warna batas dan warna fill. ○ Ada 2 metode : 4-connected 8-connected
Screen clipping taken: 22/10/2011 13:58 - Flood Fill : ○ Prosesnya hampir sama dengan boundary, hanya saja dalam pemwarnaannya warna akan diberikan jika warna dari pexel tersebut sama dengan warna asal dari titik yang pertama kali difill.
Screen clipping taken: 22/10/2011 14:01
Kurva Bezier : ---------------------------------------------Sepresentasi de Casteljau ; - Menggunakan titik kontrol in betweening
Unfiled Notes Page 3
Screen clipping taken: 24/10/2011 19:04
Screen clipping taken: 24/10/2011 19:07 - Kurva Bezier ○ Membuat kurva sejalan dengan algo de casteljau namun dapat dimengerti secara fungsionalanya ○ Rumus kurva bezier
Screen clipping taken: 24/10/2011 19:09
Screen clipping taken: 24/10/2011 19:16 Po merupkaan titik Jumlah titik = 1/ deltaT + 1
Transformasi : --------------------------------------------Ada 3 bagian dari transformasi dasar : - Translasi ○ Mengubah posisi dari titik : x' = x + t y' = y + t - Rotasi ○ Mengubah posisi objek perpindahannya sesuai jalur sirkular Variable yang diperlukan: Unfiled Notes Page 4
○ Variable yang diperlukan: Sudut rotasi Titik tumpu rotasi ○ Sudut : Positif : putaran berlawanan arah jam Negatif : putaran searah jarum jam ○ Rumus :
Screen clipping taken: 22/10/2011 14:19
Screen clipping taken: 22/10/2011 14:19
- Rigid-Body transformation ○ Transformasi yang hanya mengubah posisi objek tanpa mengubah bentuknya ○ Transformasi dasar: Translasi rotasi - Scaling ○ Mengubah ukuran objek( perbesar/perkecil) ○ Variable ; Faktor penskalaan Titik acuan ○ Jenis : Uniform sx=sy Differental sx!=sy
Unfiled Notes Page 5
Screen clipping taken: 24/10/2011 19:39
- Reperesentasi transformasi dalam Matriks : ○ Memudahkan perhitungan transformasi ○ Setiap titik direpresentasikan sebagai vektor kolom
Clipping : ------------------------------------------------------------------------Clippinntg : memotong objek dengan bentuk tertentu Sarana : clipping window Menentukan letak suatu titik terhadap clipping window Kondisi garis yang ada : 1. Invisible : ○ Tidak terlihat/ terletak di luar window 2. Visible : ○ Terletak di dalam clipping window 3. Halfpartial : ○ Terpotong sebagian oleh clipping windows 4. Vollpartial : ○ Terpotong penuh oleh clipping windows
Screen clipping taken: 24/10/2011 13:37
Cara clipping : 1. Point code : a. Mengecek titik awal dan titik akir dari garis terhadap titik window dengan bantuan pointcode l,r,t,b yang megacu pada sisi garis
Screen clipping taken: 24/10/2011 13:52
2. Midpoint subdivision a. Melakukan clipping dengan cara membagi garis menjadi 2 bagian sampai dengan menemukan titik temu terhadap garis window.
Unfiled Notes Page 6
Screen clipping taken: 24/10/2011 13:52
Pengantar Grafik 3D : ---------------------------------------------------------------------Materi : - Sistem koordianat 3D - Representasi dan Rendering Objek 3D Sistem koordianat 3D - Menggunakan 3 arah kordinat x, y, z - Primitif yang ada ; ○ Titik Direpresentasikan dengan koordinat x,y,z ○ Garis Direpresentasikan dengan koordinat x1,y1,z1 dan x2,y2,z2
Screen clipping taken: 24/10/2011 13:59 ○ Bidang Bidang datar direpresentasikan dengan rumus Ax + By + Cz + D = 0 ○ Bola ○ Kubus ○ Silinder ○ Kerucut ○ Cincin dll
Representasi Objek 3D - Direpresentasikan mengunakan : ○ Persamaan geometri Suatu objek langsung dapat direpresentasikan menggunakn persamaan geometrinya Misal membuat bola : □
Screen clipping taken: 24/10/2011 14:03 Atau dengan rumus :
Unfiled Notes Page 7
Screen clipping taken: 24/10/2011 14:04
○ Constuctive solid geometry (CSG) Adalah membentuk suatu objek dengan jalan menggabungkan atau memotong dari beberapa objek primitif 3D Misal : □ Defference □ Union □ Intersect Contoh :
Screen clipping taken: 24/10/2011 14:06
○ Kurva dan permukaan Bezier Mengabungakan bentuk kurva dengan permukaan bezier Contoh :
Screen clipping taken: 24/10/2011 14:08
○ Lathe Objek Contoh :
Unfiled Notes Page 8
Screen clipping taken: 24/10/2011 14:09
○ Fractal Contoh ;
Screen clipping taken: 24/10/2011 14:09
Rendering Objek 3D - Rendering adalah proses mencetak citra 2D dari data 3D - Bertujuan memberikan visualisasi 3D pada monitor 2D - Cara rendering : ○ Wirefame rendering Objek 3d dideskripsikan sebagai objek tanpa permukaan Pembentukan objek mengunakan garis2 yang mengambarkan sisi edges dari objek Kelebihan : □ Proses sangat cepat Kekurangan : □ Tidak ada permukaan yang jelas ○ Hidden line rendering Mengunakan fakta bahwa dalam sebuah objek, terdapat permukaan yang tidak terligat atau permukaan yang tertutup oleh permukaan lainnya Masih direpresentasikan mengunakan garis2 Kelebihan : □ Permukaan sedikit lebih kelihatan dari pada wf Kelemahan □ Tidak dapat menampilkan karakteristik dari objek misal warna, kilauan.
○ Shaded rendering Melakukan perhitungan baik cahaya, karakteristik permukaan, shadow casting Kelebihan : □ Menghasilkan citra yang realistik Kelemahan : □ Waktu rendering yang lama ○ Rendering 3D to 2D: Faktor yang di perhitungkan : □ Geometri □ Kamera □ Cahaya □ Karakteristik permukaan Unfiled Notes Page 9
□ Karakteristik permukaan □ Algoritma rendering Kamera : □ Mengambarkan sudut pandang kita terhadap kamera. □ Faktor pengaruh kamera ; Lokasi kamera dalam titik (x,y,z) Arah pandang kamera dalam titik (x,y,z) □ Field of view : Merupakan daerah yang terlihat oleh kamera Menentukan bagian mana yang memerlukan perhitungan rendering Cahaya : □ Membuat ofjek menjadi lebih realistik □ Jenis - jenis sumber cahaya : Point light ◊ Memancar kesegala arah, namun intesitas cahaya tergantung dari posisi sumber cahaya : mirip lampu pijar dalam dunia nyata. Spotlight ◊ Memancarkan cahaya kedaerah tertentu. Berbentuk kerucut. Hanya objek2 pada daerah kerucut yang akan terlihat. Seperti lampu sorot dalam dunia nyata. Ambient light ◊ Cahaya latar. Diterima secara seragam oleh objek. Area light Directional light ◊ Memancarkan cahaya dengan intensitas sama ke suatu arah tertentu. Letak tidak mempengaruhi intensitas cahaya. Dapat menimbulkan effek bahwa sumber cahaya sangat jauh dari objek. Parallel point ◊ Sama dengan directional namun cahaya ini memiliki arah dan posisi.
□ Model dari pencahaayan ini digunakn untuk menghitung intensitas cahaya yang diterima oleh setiap permukaan benda. □ Cahaya dimodelkan dengan : Lokasi Intensitas Warna Karakteristik permukaan : □ Karakteristik dari permukaan objek adalah sifat dari permukaan sebuah objek □ Karakteristik meliputi : Warna ◊ dipengaruhi oleh warna asli dan cahaya. Tekstur ◊ Direpresentasikan oleh sebuah file yang menjadi tekstur dari objek. Dipengaruhi oleh letak tekstur, sifat, dan perulangan pada tekstur. Sifat permukaan ◊ kekasaran, refleksitifitas
Algoritma rendering : □ Kebanyakan algoritma rendering yang ada saat ibi mengunakan pendekatan scan-line rendering : Berati program melihat dari setiap pixel satu per satu secara horisontal dan menghitung warna dari pixel. □ 3 algoritma yang ada : Ray-Casting Ray-tracing Radiosity □ Perbedaan Ray - Casting
Ray - Tracing
Unfiled Notes Page 10
Radiosity
Ray - Casting
Ray - Tracing
Radiosity
Menembakkan sinar untuk mengetahui warna dari cell
Menelusuri sinar secara terbalik untuk mengetahui warna dari sebuah pixel
Membagi bidang menjadi bidang yang lebih kecil untuk menentukan warna.
Mengunakan metode sampling untuk menampilkan hasil
Tidak mengunakan sampling
Tidak mengunakan sampling
Biasanya dimodifikasi sesuai kebutuhan
Tidak dapat dimodifikasi
Tidak dapat dimodifikasi
Memiliki constrain geometrik tertentu
Tidak ada konstrain
Tidak ada konstrain
Waktu rendering cepat
Lamabat
Sangat lambat
Digunakan untuk visualisasi secara cepat
Untuk hasil akir
Hasil akir
Dapat digunakan untuk outdor dan indor scane
Out dan in
Indoor saja
Hasil rendering terlihat kotak2
Hasil rendering sangat realistik
Sangat realistik
Transformasi : --------------------------------------- Translasi
Screen clipping taken: 24/10/2011 19:28
- Rotasi
Screen clipping taken: 24/10/2011 19:29
- Scaling
Unfiled Notes Page 11
Screen clipping taken: 24/10/2011 19:33
View : ------------------------------------------------View = memotret - Menentukan posisi kamera - Arah pandang kamera - Cahaya masuk - Scane dicrop dengan window - Diproyeksikan ke film Alur proses viewing : - Menggerakkan kamera : ○ Mengubah arah N dengan view reference point tetap Melihat objek dari berbagai sudut pandang ○ Mengubah view reference point dengan arah N tetap Menggeser kamera - Proyeksi : ○ Memetakan objek 3D ke 2D Mencari perpotongan antara garis proyeksi dengan view plane Menggunakan : □ Paralel : orthagrafik Proyeksi titik pada objek diproyeksikan ke viewplane mengikuti garis paralel.
Screen clipping taken: 24/10/2011 19:55 □ Perspektif Posisi objek diproyeksikan ke viewplane mengikuti garis yang konvergen ke satu titik.
Screen clipping taken: 24/10/2011 19:56 □ Clipping 3D
Unfiled Notes Page 12
Screen clipping taken: 24/10/2011 19:59
Texture Mapping - Ada 2 caara mapping ; Foward mapping ◊ Dispesifikasikan dengan fungsi linier parametrik ◊ Objek to image space mapping dilakukan dengan transformasi: viewing - projection ◊ Kekurangan : Ukuran textur tidak sesuai dengan objek sehingga diperlukan perhitungan pemotongan Inverse mapping ◊ Interpolasi bilinear ◊ Memetakan titik dari patern ke titik di objek
Screen clipping taken: 24/10/2011 20:06
◊ Memanfaatakan permukaan antara Environment mapping ◊ Cara ccepat untuk rendering objek mengkilat ◊ Contohnya mengunakan cubic mapping
Screen clipping taken: 24/10/2011 20:10 Bump mapping ◊ Membuat permukaan berkerut tanpa harus memodelkan secara geometris
Unfiled Notes Page 13
Screen clipping taken: 24/10/2011 20:11 - Anti Aliasing Mengurangi effek aliasing Cara sederhana ; ◊ Mencuplikkan image pada f(i,j) untuk tiap pixel (i,j) ◊ Mengunakan intensitas rata2 pada pixel (i,j) Opsi anti -aliasing : ◊ Pre-filtering
Screen clipping taken: 24/10/2011 20:16 ◊ No filtering ◊ Post filtering
@wisnu
Unfiled Notes Page 14