Giáo trình đồ họa - Lesson 3

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:0

lượt xem

Giáo trình đồ họa - Lesson 3

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Các giải thuật cơ sở Nội dung Các giải thuật xén tỉa - Clipping Các thuật toán tô miền kín Phép tô mầu Phép xử lý Antialiasing

Chủ đề:

Nội dung Text: Giáo trình đồ họa - Lesson 3

  1. Khoa CNTT-DDHBK Hà nội Email: 0913030731 Bài 3: Nội dung Các giải thuật cơ sở Các giải thuật xén tỉa - Clipping Các thuật toán tô miền kín Phép tô mầu Phép xử lý Antialiasing Le Tan Hung 0913030731 1 (c) SE/FIT/HUT 2002 2 (c) SE/FIT/HUT 2002 Xén tỉa - Clipping Clipping đoạn thẳng A fundamental task in graphics is to Lines are defined by their endpoints, so it should be keep those parts of an object that lie possible just to examine these (in a similar way to outside a selected view from being drawn points) and determine whether or not to clip without Clipping is the removal of all objects Khái niệm considering every pixel on the line or part of objects in a modelled scene Xén tỉa là tiến trình xác that are outside the real-world We often have windows that are either very large, window. định các điểm của 1 đối i.e. nearly the whole scene fits inside, or very small, Việc loại từng điểm ảnh của đối tượng tượng nằm trong hay thường chậm nhất là khi đối tượng mà i.e. most of the scene lies inside the window phần lớn nằm ngoài cửa sổ hiển thị. ngoài cửa sổ hiển thị More practical techniques are Hence, most lines may be either trivially accepted or Clipping điểm necessary to speed up the task rejected xmin ≤ x ≤ xmax ymin ≤ y ≤ ymax 3 4 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Giải thuật Cohen Sutherland Outcode The Cohen-Sutherland line-clipping algorithm is particularly fast for “trivial” cases, i.e. lines completely inside or outside the window. Non-trivial lines, i.e. ones that cross a boundary of the window, are clipped by computing the coordinates of the new boundary endpoint of the line where it crosses the edge of the Nếu mã của P1 và P2 đều = 0000 thì toàn bộ đoạn thẳng thuộc phần hiển window thị. Each point on all lines are first assigned an “outcode” If P1.Mã OR P2.Mã == 0000 then “ cả đoạn thẳng thuộc cửa sổ hiển thị” defining their position relative to the clipping rectangle Nếu mã của P1 và P2 có cùng một vị trí mà ở đó ≠ 0 thì P1 và P2 => cùng phía If P1.Mã AND P2.Mã != 0000 then “ 2 điểm nằm về 1 phía của cửa sổ” 5 6 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 1
  2. Khoa CNTT-DDHBK Hà nội Email: 0913030731 Giải thuật Cyrus-Beck Lyang Barsky x = x1 + (x2 - x1)u = x1 + uDx y = y1 + (y2 - y1)u = y1 + uDy xmin ≤ x1 + Dx.u ≤ xmax ⇔ x ∈ [xm, xM] The Cohen-Sutherland algorithm requires the ymin ≤ y1 + Dy.u ≤ ymax ⇔ y ∈ [ym, yM] window to be a rectangle, with edges aligned with the co-ordinate axes Pk u ≤ qk k = 1, 2, 3, 4 It is sometimes necessary to clip to any convex polygonal window, e.g. triangular, hexagonal, or P1 = − Dx ⎧q1 = x1 − xm rotated. ⎧ ⎪ ⎪q = x − x The, and Liang-Barsky line clippers better P 2 = Dx ⎪ ⎪2 M 1 ⎨ ⎨ optimise the intersection calculations for clipping P 3 = − Dy ⎪q3 = y1 − ym ⎪ to window boundary ⎪ ⎪q4 = y M − y1 P 4 = Dy ⎩ ⎩ Nicholl-Lee-Nicholl reducing redundant boundary clipping by identifying edge and corner regions 7 8 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Nếu Pk ≠ 0 : đoạn thẳng đang xét sẽ cắt cạnh k tương ứng của Nếu Pk = 0 : điều đó tương đương với việc đoạn thẳng đang xét song song với cạnh thứ k của hình chữ nhật clipping. cửa sổ clipping tại vị trí trên đoạn thẳng uk = qk/Pk. a) Nếu qk < 0 ⇒ Đường thẳng nằm ngoài cửa sổ (hệ bất Pk < 0 đoạn thẳng có dạng đi từ ngoài vào trong phương trình trên vô nghiệm) • bất phương trình sẽ có dạng u ≥ qk/Pk u ≥ uk. b)Nếu qk >= 0 thì đoạn thẳng nằm trong hoặc nằm trên cạnh Pk > 0 của cửa sổ clipping. • u ≥ uk sẽ thuộc cửa sổ hiển thị. Hệ bất phương trình luôn thoả mãn. • bất phương trình sẽ có dạng u ≤ qk/Pk • u ≤ uk với uk = qk/Pk là giao của đoạn thẳng với cạnh k của cửa sổ clipping • đoạn thẳng có dạng đi từ trong ra ngoài so với cạnh k. 9 10 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Pk < 0 và uk < 0 cạnh k của cửa sổ clipping cắt đoạn thẳng tại phần mở rộng nằm ⎛ ⎫⎞ ⎧ ngoài đoạn thẳng. q U 2 = min⎜ { }∪ ⎨u k : u k = k , Pk > 0 ⎬ ⎟ 1 uk ≤ u< 0 thoả mãn bất phương trình sẽ không nằm trên đoạn ⎜ ⎟ thẳng cần xét. Pk ⎩ ⎭⎠ ⎝ => uk sẽ nhận là 0 khi uk 0 và uk > 1 q U 1 = max ⎜ {0}∪ ⎨u k : u k = k , Pk < 0 ⎬ ⎟ => uk tương ứng sẽ nhận giá trị 1. ⎜ ⎟ Pk ⎩ ⎭⎠ điểm nằm trong cửa sổ clipping sẽ có dạng như sau: ⎝ U1 ≤ u ≤ U2 11 12 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 2
  3. Khoa CNTT-DDHBK Hà nội Email: 0913030731 Nicholl-Lee-Nicholl clipping Nicholl-Lee-Nicholl (2) Some edges are irrelevant to Special cases for each endpoint location and slope clipping, particularly if one vertex a Number of cases explodes in 3D, making it lies inside region. 1 2 unsuitable Cases: Reject x1 in 3 x1 in corner region a Top x1 in edge region Top, Right Left For each case, we generate specialized test regions for x2, 4 a which use simple tests (slope, >,
  4. Khoa CNTT-DDHBK Hà nội Email: 0913030731 When Does Spatial Aliasing Phương pháp khử hiệu ứng răng cưa Occur? Antialiasing Methods 1. Cố định tín hiệu bằng phương pháp lọc-prefiltering: During image synthesis: when sampling a continuous (geometric) model to create a raster image, Giảm độ rộng dải tần tín hiệu bỏi bộ lọc thấphơn trước khi lấy e.g. scan converting a line or polygon. mẫu. Sampling: converting a continuous signal to a discrete signal. Highest quality method, but often impractical. During image processing and image synthesis: 2. Cố định mẫu bằng siêu mẫu supersampling: when resampling a picture, as in image warping or texture mapping. Resampling: sampling a discrete signal at a different sampling rate. Use more samples to raise the Nyquist frequency. Example: “zooming” a picture from nx by ny pixels to snx by sny pixels Simple and widely used. s>1: called upsampling or interpolation 3. Cố định mẫu bằng phương pháp mẫu bất kỳ can lead to blocky appearance if point sampling is used s
  5. Khoa CNTT-DDHBK Hà nội Email: 0913030731 Antialiasing (2) 25 (c) SE/FIT/HUT 2002 5



Đồng bộ tài khoản