Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Topik Perkuliahan Pengantar Penggambaran objek primitif

Presentasi serupa


Presentasi berjudul: "Topik Perkuliahan Pengantar Penggambaran objek primitif"— Transcript presentasi:

1 Topik Perkuliahan Pengantar Penggambaran objek primitif
Algoritma penggambaran garis Dasar, DDA, Bresenham Algoritma penggambaran lingkaran Dasar, Polar, Bresenham Algoritma pengisi region Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

2 TUGAS HARI INI Cari dan Lakukan Critical Review untuk salah satu dari Jurnal dengan Topik sbb : Soft Shadow Mapping Dynamic Cube Mapping Graphical Expression Viewer Menggunakan Delphi Dan Opengl Solar System Simulation Using Visual C++ Automated, Silhouette-BasedRegistration of Textures and 3D-Models Canned Lightsources Penerapan Teknik Painterly Rendering Metode Sampling : Bidirectional Sampling Dan Interleaved Sampling Realistic, Percepatan Hardware Pembuatan Bayangan dan Pencahayaan Transpor Cahaya yang Efisien Menggunakan Metode Penggunaan Ulang Informasi Visibilitas Pengaplikasian Cube Mapping Dalam Opengl Pemodelan Dan Render Yang Efisien Untuk Kain Multiple Level of Detail pada Texture Ilustrasi Pen-Ink pada Teknik Hatching Rendering Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

3 Elemen Pembentuk Grafik
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

4 Objet Primitive menurut OpenGL
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

5 Objek-objek Primitif 3D (Autodesk)
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

6 Titik Perhatikan bahwa sistem koordinat dalam pemrograman grafis
berbeda dengan model koordinat kartesius Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

7 Penggambaran Objek Primitif
Kita akan mendiskusikan algoritma untuk Menggambar garis Menggambar lingkaran Menggambar Poligon Konsep tentang Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

8 Garis Masalah: diberikan dua piksel P(xP, yP) dan Q(xQ, yQ) pada bidang 2D, bagaimana cara terbaik untuk menggambarkan garis yang melalui kedua titik tersebut ? Asumsi: xP<xQ, yP<yQ. (kasus-kasus lain akan ditangani dengan sedikit modifikasi) Kendala: Layar raster merupakan grid integer Q Q ??? P P Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

9 Ilustrasi Penggambaran Garis
Jaggies = Aliasing Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

10 Algoritma Penggambaran Garis
Algoritma Dasar Algoritma DDA Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

11 Algoritma Dasar Berdasarkan pada persamaan garis
Jika diketahui dua buah titik P(x1,y1) dan Q(x2,y2) maka Algoritma: Untuk setiap interval Δx terdapat nilai korespondensi y dengan interval Δy Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

12 Contoh Algoritma Dasar
Soal: Diketahui dua buah titik A(2,1) dan B(6,4). Tentukan titik-titik dijital yang dilalui oleh garis yang melalui kedua titik tersebut! Jawab: x y [y] 2 1.00 1 3 1.75 4 2.50 5 3.25 6 4.00 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

13 Latihan Tentukan koordinat titik-titik dijital untuk garis yang dibentuk oleh dua titik sebagai berikut: (-5,5) dan (1,2) (4,3) dan (8,-2) (2,3) dan (5,3) (2,3) dan (2,5) (6,4) dan (2,1) Gunakan algoritma DDA dan Bresenham untuk menentukan titik-titik dijital antara (-3,3) dan (-1,3) (7,-1) dan (-4,-6) (-3,3) dan (-1,-3) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

14 DDA : Digital Differential Analyzer
Untuk meningkatkan kualitas penggambaran garis Slope (m) sebuah garis bisa positif atau negatif Keuntungan DDA: Lebih cepat dari cara sebelumnya Beban komputasi lebih ringan (tanpa perkalian) Arah increment bisa ke dua arah (x atau y) Kondisi Langkah m<=1, KIKA Δx=1, yi+1=yi+m m<=1, KAKI Δx=-1, yi+1=yi+m m>1, KIKA Δy=1, xi+1=xi+1/m m>1, KAKI Δy=-1, xi+1=xi-1/m Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

15 Algoritma: Contoh: Latihan: Algoritma DDA
Inputkan (x1,y1) dan (x2, y2) Hitung dx dan dy If |dx| > |dy| then s=|dx| else s=|dy| Δx=dx/s; Δy=dy/s Set x=x1; y=y1 x=x+ Δx; y=y+ Δy Lakukan langkah ke 6 sebanyak s kali Contoh: Tentukan dengan algorima DDA titik-titik dijital yang melalui garis yang dibentuk oleh titik (2,1) dan (6,4) Latihan: Lihat sebelumnya Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

16 Algoritma DDA Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

17 3. Latihan3 (Buat Kotak dengan Line) size(200, 200); // Batas Ukuran
background(0); stroke(255,255,0); // warna garis (R=255,G=255,B=0) strokeWeight(2); // ukuran titik line(2,2,195,2); // garis horizontal atas line(2,195,195,2); // garis Vertical kanan line(2,2,2,195);// garis Vertical kiri line(2,195,195,195);// garis horizontal bawah line(195,2,195,195); // garis diagonal kanan-atas ke kiri-bawah line(2,2,195,195); // garis diagonal kiri-atas ke kanan-bawah strokeWeight(25); //ukuran titik point(100,100); // membuat titik Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

18 4. Latihan4 (Buat SegiTiga dan SegiEnam dengan Line)
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

19 5. Latihan5 (Buat ellipse dan potongan lingkaran)
size(400,150); background(255); //draw ellipse fill(255,0,0); ellipse(50,50,75,100); // draw arc 90 degree clockwise fill(0,0,255); arc(100,50,100,100,0,1.57); // draw arc 90 degree fill(0,255,0); arc(175,50,100,100,(0*PI)/180,(90*PI)/180); noFill(); stroke(255,0,0); arc(250,50,100,100,(0*PI)/180,(90*PI)/180); HASIL EKSEKUSI Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

20 6. Latihan6 (Buat Segiempat yang diwarnai)
void setup() { size(200, 200); background(255); noStroke(); // draw the original position in gray fill(192); rect(20, 20, 40, 40); // draw a translucent red rectangle by changing the object coordinates fill(255, 0, 0, 128); rect( , , 40, 40); } HASIL EKSEKUSI Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

21 7. Latihan7 (Buat gambar dengan pengulangan)
void setup() { size (400,400); } void draw() { for ( int i=0; i<100;i=i+10) rect (i,i,50,50); } Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

22 8. Latihan8 (Buat gambar dengan pengulangan)
int x=200; int y=200; void setup() { size (400,400); background(255); } void draw () if (x==200) if(y==200) rect(x,y,10,10); else { fill (255,0,0); rect(x-100,y-100,50,50); Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

23 Algoritma Bresenham Penentuan koordinat menggunakan ‘integer arithmetic’ Di-optimasi berdasarkan jarak kedekatan dengan posisi grid Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

24 Algoritma Bresenham Hitung Δx=x2–x1 dan Δy=y2-y1 Hitung Δa dan Δb
Δa=|Δx| if |Δx| ≥|Δy| else |Δy| Δb=|Δy| if |Δx| ≥|Δy| else |Δx| Hitung = 2 Δb – Δa Tentukan m1 dan m2 m1=M3 jika |Δx| ≥ |Δy| dan Δx ≥0 m1=M5 jika |Δx| < |Δy| dan Δx <0 m1=M7 jika |Δx| ≥ |Δy| dan Δx <0 m1=M1 jika |Δx| < |Δy| dan Δx ≥0 m2=M2 jika Δx ≥ 0 dan Δy ≥ 0 m2=M4 jika Δx ≥ 0 dan Δy < 0 m2=M6 jika Δx <0 dan Δy <0 m2=M8 jika Δx < 0 dan Δy ≥ 0 Jalankan m2 jika  ≥ 0 lalu modifikasi = +2 Δb-2 Δa Jalankan m1 jika  < 0 lalu modifikasi = +2 Δb Ulangi langkah 5 sampai mencapai titik tujuan (x2, y2) M8 M1 M2 M7 M3 M6 M5 M4 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

25 Algoritma Bresenham procedure bres1(x1,y1,x2,y2:integer); Var dx, dy, x, y, x_end, p, da, db, m1, m2 : integer; begin dx := x2-x1; dy := y2-y1; if abs(dx)>=abs(dy) then da:=abs(dx) else da:=abs(dy); if abs(dx)>=abs(dy) then db:=abs(dy) else db:=abs(dx); if (abs(dx)>=abs(dy)) and (dx>=0) then m1:=3; if (abs(dx)>=abs(dy)) and (dx<0) then m1:=7; if (abs(dx)<abs(dy)) and (dy>=0) then m1:=1; if (abs(dx)<abs(dy)) and (dy<0) then m1:=5; if (dx>=0) and (dy>=0) then m2:=2; if (dx>=0) and (dy<0) then m2:=4; if (dx<0) and (dy<0) then m2:=6; if (dx<0) and (dy>=0) then m2:=8; p := 2 * db - da; Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

26 Agoritma Bresenham (lanj.)
x:=x1; y:=y1; set_pixel(x,y); while (x <> x2) or (y<>y2) begin if p>=0 then p := p + 2*db - 2*da; case m2 of 2:begin x:=x+1;y:=y+1;end; 4:begin x:=x+1;y:=y-1;end; 6:begin x:=x-1;y:=y-1;end; 8:begin x:=x-1;y:=y+1;end; end; end else begin case m1 of 1:y:=y+1; 3:x:=x+1; 5:y:=y-1; 7:x:=x-1; end; p := p + 2* db; set_pixel(x,y); Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

27 PENGGAMBARAN LINGKARAN
Problem: Find the coordinates of the pixels that best draw an origin-centered circle F(x, y) = x2 + y2 - r2 = 0 Constraint: The raster screen is an integer grid Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang Grafika Komputer

28 ALGORITMA PENGGAMBARAN LINGKARAN
Algoritma Dasar (Berdasarkan Persamaan Lingkaran) Algoritma Polar (berdasarkan sifat simetri dan properti lingkaran yaitu pusat dan jari-jari) Algoritma biasa dan polar memiliki kelemahan dalam penampilan lingkaran. Kelemahan ini dieliminasi oleh Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

29 Terlalu banyak perhitungan FLOATING-POINTS
Algoritma Sederhana Versi 1: for x = -R to R hitung y = sqrt(r2 – x2) tulisPixel(x, round(y)) tulisPixel(x, round(-y)) Versi 2: For theta = 0 to 360o tulisPixel(r*cos(theta), r*sin(theta)) Terlalu banyak perhitungan FLOATING-POINTS Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

30 Representasi Lingkaran
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

31 Sifat Simetris Lingkaran
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

32 Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

33 Algoritma Bresenham BresenhamCircle(Xc, Yc, R)
Set X = 0 and Y = R Set D = 3 – 2R Repeat While (X < Y) Call DrawCircle(Xc, Yc, X, Y) Set X = X + 1 If (D < 0) Then D = D + 4X + 6 Else Set Y = Y –1 D = D + 4(X –Y) + 10 Call Draw Circle(Xc, Yc, X, Y) DrawCircle(Xc, Yc, X, Y) Call Put Pixel(Xc+ X, Yc + Y) Call PutPixel(Xc-X, Yc + Y) Call PutPixel(Xc+ X, Yc-Y) Call PutPixel(Xc-X, Yc -Y) Call PutPixel(Xc+ Y, Yc + X) Call PutPixel(Xc-Y, Yc + X) Call PutPixel(Xc+ Y, Yc-X) Call PutPixel(Xc-Y, Yc-X) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

34 Jenis Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

35 Boundary filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

36 Color range Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

37 Geometrika Objek Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

38 Teknik flood filling data-centric process-centric
menggunakan queue untuk mengecek piksel tepi umumnya menerapkan 4-way flood-fill algorithm (why?) tampilan berupa expanding lozenge-shaped fill 4 pixels checked for each pixel filled (8 for an 8-way fill). process-centric menggunakan stack umumnya menerapkan 4-way flood-fill algorithm Tampilan berupa a linear fill with "gaps filled later" behaviour 4 pixels checked for each pixel filled (8 for an 8-way fill) penerapan pada sistem grafis komputer lama/kuno Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

39 Penerapan Algoritma Mengisi Rectangle Mengisi Poligon (xmin, ymin)
(xmax, ymax) For (y = ymin to ymax of rectangle) For (x = xmin to xmax of rectangle) WritePixel(x, y) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

40 Konsep Mengisi Poligon
Find the intersections of the scan line with all edges, sort them in increasing order of x-coordinates: {a1, a2, …, an} = {a, b, c, d} Fill in all pixels between a2k and a2k+1. E.g. those between a and b, and between c and d Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

41 Mengisi Ellips atau Lingkaran
Scan the raster screen line by line If Line intersects the ellipse/circle twice Draw every pixel from the first intersection until (before) the second intersection If Line intersects only once Draw the intersection pixel Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

42 Ilustrasi1 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

43 Ilustrasi1 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

44 Ilustrasi Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

45 Ilustrasi Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

46 Program Dasar Floodfill (C++)
void ffill(int x,int y,int o_color,int n_color) { if(getpixel(x,y)==o_color) { putpixel(x,y,n_color); ffill(x+1,y,o_color,n_color); ffill(x,y+1,o_color,n_color); ffill(x,y-1,o_color,n_color); ffill(x-1,y,o_color,n_color); ffill(x+1,y+1,o_color,n_color); ffill(x-1,y-1,o_color,n_color); ffill(x-1,y+1,o_color,n_color); ffill(x+1,y-1,o_color,n_color); } } void main() rectangle(50,50,100,100); ffill(55,55,0,3); Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

47 Pendekatan Algoritma FloodFIll
Scan-line Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

48 Pendekatan Algoritma FloodFIll
Scan-line Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

49 Pendekatan Algoritma FloodFIll
Scan-line (raster-based fill) Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

50 Seed-fill algorithm Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

51 Memilih Seed-point Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

52 Algoritma Seed-fill Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

53 Neighbours Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

54 Beberapa Contoh Program FloodFill dalam C#
Akses situs : Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

55 Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

56 Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

57 Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

58 Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

59 Referensi Tentang Region Filling
COMP175 Region Filing Lec6 Area Fill Polygon fill Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang


Download ppt "Topik Perkuliahan Pengantar Penggambaran objek primitif"

Presentasi serupa


Iklan oleh Google