งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

© 2005 Pearson Education Computer Graphics with OpenGL 3e.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "© 2005 Pearson Education Computer Graphics with OpenGL 3e."— ใบสำเนางานนำเสนอ:

1 © 2005 Pearson Education Computer Graphics with OpenGL 3e

2 © 2005 Pearson Education Chapter 4 Attribute of Graphics Primitives

3 © 2005 Pearson Education Fill-area attributes Graphics packages limit fill area to polygon –Describe object as linear equations Fill style –Hollow, solid and patterned –Fill pattern A mask to be applied to the display area described in rectangular arrays that list different colors for different positions in the array Color-Blended fill regions –Combine a fill pattern with background color –Example: transparency Simple logical operation Soft-fill algorithm

4 © 2005 Pearson Education Fill-area attributes “Polygon” ( รูปหลายเหลี่ยม ) can be generally thought of as a shape –Formed by a line segments that are placed end to end to create a continuous closed path Three basic types –Convex, concave, and complex

5 © 2005 Pearson Education Identifying Concave/Convex Setup vectors for all edges Perform cross product to adjacent vectors to test for concavity Perform dot product if we want to determine the angle between two edges All vector products will be the same value (positive or negative) for convex polygon If there are some cross products yield a positive and some yield a negative value, we have a concave polygon

6 © 2005 Pearson Education Identifying Concave (cont.) V1 V2 V3 V4 V5 V6 E1 E2 E3 E4 E5 E6 (E1 X E2) > 0 (E2 X E3) > 0 (E3 X E4) < 0 (E4 X E5) > 0 (E5 X E6) > 0 (E6 X E1) > 0 E J X E K = E JX E KY - E JY E KX Ej = (V nx – V mx, V ny – V my ) VmVm VnVn EjEj

7 © 2005 Pearson Education Example Given 6 vertices: V1 = (1,1) V2 = (5,1) V3 = (7,3) V4 = (4,5) V5 = (4,10) V6 = (1,10) Prove that these vertices is for concave polygon. What can you say about the cross product values if we change the order of these vertices (v6 becomes v1, v5 becomes v2, etc…).

8 © 2005 Pearson Education Angle between Edges Exact angle between two adjacent edges Use dot product operation –a.b = |a||b|cos θ –|a| means the magnitude of vector a θ

9 © 2005 Pearson Education Angle Between Edges Example: –Given 2 vectors a = (2,3) and b = (6,3). Determine the angle between these two vectors –Determine the angle between E3 and E4 (refer to previous example)

10 © 2005 Pearson Education Fill-area attributes Convex or Concave polygons? Complex polygon

11 © 2005 Pearson Education Fill-area attributes How is a filled polygon different from an unfilled one? –When an unfilled polygon is rendered, only the points on the perimeter of the polygon are drawn – When a polygon is filled, the interior of the polygon must be considered

12 © 2005 Pearson Education Inside and Outside Test In order to determine which pixels are inside polygon –Odd-Even Rule (Odd-parity rule) –Nonzero Winding Number Rule Odd-Even Rule (Odd-parity rule)

13 © 2005 Pearson Education Inside and Outside Test Nonzero Winding Number Rule Count the number of times the boundary of an object “winds” around a particular point in the counterclockwise direction wn = winding number If wn ≠ 0, such point is interior pixel of the polygon Otherwise, such point is exterior pixel of the polygon  Wn++  Wn- -

14 © 2005 Pearson Education Inside and Outside Test Problem in complex shape

15 © 2005 Pearson Education Polygon-fill Algorithm General scan-line polygon-fill algorithm –Applied to concave / convex polygon –With help of mid-point method to determine intersection when applied to curved areas Boundary-fill algorithm –Filling irregular areas –Start at an inside position and “paint” interior

16 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm

17 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm

18 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm Exceptions!!! กรณีที่ scan line ตัดผ่านจุดยอดของ polygon พอดี เช่นที่จุดหมายเลข 2 Case 1 : Scan line y’ –two intersection edges are both above the scan line Case 2 : Scan line y –two edges sharing an intersection vertex are on opposite sides of the scan line

19 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm การระบุว่า scan line ของกรณี Exceptions จัดอยู่ในรูปแบบใด สามารถทำ ได้ดังนี้ เดิน (trace) ตามเส้นขอบ polygon เพื่อพิจารณา 3 จุดยอดใด ๆ ที่อยู่ ติดกัน ในทิศ ทวนเข็ม หรือ ตามเข็มนาฬิกา ก็ได้ สังเกตลักษณะการเปลี่ยนแปลงค่า y จากจุดยอดทั้ง 3 จุด –ถ้าค่า y เปลี่ยนแปลง ไปในทิศทางตรงกันข้าม แสดงว่าจุดยอดตรงกลางเป็น กรณีที่ 1 : เพิ่มจุดตัดซ้ำ 2 จุด –ถ้าค่า y ลดลงตลอด (หรือเพิ่มขึ้นตลอด) แสดงว่าจุดยอดตรงกลางเป็น กรณีที่ 2 : ให้หดเส้นของลง 1 scan line

20 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm

21 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm Coherent Polygon Processing เราสามารถใช้ประโยชน์ ความเกี่ยวเนื่องกันขององค์ประกอบ polygon สำหรับ scan line ที่ติดกัน มาใช้เพื่อเพิ่มประสิทธิภาพในการประมวลผลได้

22 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm An Efficient Polygon Algorithm

23 © 2005 Pearson Education General Scan-Line Polygon-fill Algorithm Scan-Line Algorithm 1.Identifying sharing vertex โดย trace 3 vertices ใด ๆ ที่อยู่ ติดกันเพื่อดูการเปลี่ยนแปลงของค่า y 2.ทำการ shorten edge ในกรณีที่จุดยอด (vertex) ตัดผ่าน scan line พอดี เพื่อแยกแยะชนิดของจุดแบ่งเส้น scan line 3.จัดเก็บข้อมูลของแต่ละ edge ในรูป y-min, y-max, x-val (of y-min) และ Δx/ Δy (1/m) ตามลำดับ 4.สร้าง sorted edge table เพื่อนำมาใช้เป็น active edge table ของ แต่ละ scan line 5.ทำการระบายสี polygon ทีละ scan line

24 © 2005 Pearson Education Boundary-Fill Algorithm In many graphics packages the user can fill a region (defined by a boundary). In the figure, the boundary is red and the filling color is blue The user needs to click inside the region (seed)

25 © 2005 Pearson Education Boundary-Fill Algorithm Employed in interactive painting packages Using recursive method with procedure –Start from an interior inside point, test neighboring position –Fill color in that position if it is not the boundary Two area fill method –4-connect or 8-connected

26 © 2005 Pearson Education Boundary-Fill Algorithm ต้องการ input จำนวน 3 ตัว : 1)พิกัดเริ่มต้น (x, y) ที่อยู่ภายในบริเวณ ที่ต้องการระบาย 2) สีที่ต้องการระบาย 3) สีของขอบของบริเวณ

27 © 2005 Pearson Education Boundary-Fill Algorithm

28 © 2005 Pearson Education Boundary-Fill Algorithm

29 © 2005 Pearson Education Boundary-Fill Algorithm

30 © 2005 Pearson Education Boundary-Fill Algorithm

31 © 2005 Pearson Education


ดาวน์โหลด ppt © 2005 Pearson Education Computer Graphics with OpenGL 3e.

งานนำเสนอที่คล้ายกัน


Ads by Google