Trịnh Thành Trung
trungtt@soict.hust.edu.vn
Bài 4
CÁC GIẢI THUẬT CƠ SỞ
1
-
NỘI DUNG
1. Các giải thuật xén tỉa
2. Thuật toán tô miền kín
3. Phép xử lý Antialiasing
2
-
CÁC GIẢI THUẬT XÉN TỈA
1
4
• Khái niệm
Xén tỉa là tiến trình tự động
xác định các điểm của 1
đối tượng nằm trong hay
ngoài cửa sổ hiển thị
• Tiết kiệm thời gian tiến
trình rasterize bỏ qua phần
nằm ngoài cửa sổ hiển thị
• Clipping điểm
– xmin  x  xmax
– ymin  y  ymax
Xén tỉa - clipping
xmin xmax
ymax
ymin
5
• Tiến trình, giải thuật kiểm tra chấp nhận các
đoạn thẳng nằm trong và loại bỏ các đoạn thẳng
nằm ngoài dựa trên 2 điểm đầu cuối
• Lý do:
– Không kiểm tra mọi điểm trên đoạn thẳng
– Hầu hết các đoạn thẳng với 1 màn hình hiển
thị đều được chấp nhận hoặc loại bỏ
– Rất ít các đoạn thẳng cắt cửa sổ hiển thị
Clipping đoạn thẳng
-
GIẢI THUẬT COHEN
SUTHERLAND OUTCODE
6
• Giải thuật Cohen-Sutherland thực
hiện nhanh với các trương hợp
đoạn thẳng nằm trong hay ngoài
cửa sổ hiện thị
• Mỗi điểm đầu cuối được gán mã
code phụ thuộc vào vị trí trong
mặt phẳng mã
7
p.code = 0000
 If p.x <= xmin >> P.code or 0001
 If p.y <= ymin >> P.code or 0100
 If p.x >= xmax >> P.code or 0010
 If p.y >= ymax >> P.code or 1000
Giải thuật Cohen Sutherland
outcode
8
• If P1.code OR P2.code ==
0000
– Chấp nhận toàn đoạn
thẳng
• If P1.code AND P2.code !=
0000
– Loại
• Với truờng hợp cắt, giải
thuật xác định lại điểm đầu
cuối là giao của đoạn thẳng
và khung bao của cửa sổ
hiển thị
Giải thuật Cohen Sutherland
outcode
9
• Giải Cohen-Sutherland yêu cầu cửa sổ là hình
chữ nhật, các cạnh là cạnh của màn hình
• Vấn đề nảy sinh khi cửa sổ clip là 1 đa giác bất
kỳ hoặc hình chữ nhật quay đi 1 góc
• Giải thuật Liang-Barsky tối ưu khi tìm giao điểm
của đoạn thẳng với cử sổ hiển thị
• Nicholl-Lee-Nicholl reducing redundant
boundary clipping by identifying edge and
corner regions
Giải thuật Cyrus-beck Liang Barsky
10
• x = x1 + (x2 - x1)u = x1 + uDx
• y = y1 + (y2 - y1)u = y1 + uDy
• xmin  x1 + Dx.u  xmax  x  [xm, xM]
• ymin  y1 + Dy.u  ymax  y  [ym, yM]
• Pk u  qk k = 1, 2, 3, 4
Liabarsky













Dy
P
Dy
P
Dx
P
Dx
P
4
3
2
1















1
4
1
3
1
2
1
1
y
y
q
y
y
q
x
x
q
x
x
q
M
m
M
m
11
• 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.
• a) Nếu qk < 0  Đường thẳng nằm ngoài
cửa sổ (hệ bất phương trình trên vô
nghiệm)
• b)Nếu qk >= 0 thì đoạn thẳng nằm trong
hoặc nằm trên cạnh của cửa sổ clipping.
• Hệ bất phương trình luôn thoả mãn.
Liabarsky
12
• Nếu Pk  0 : đoạn thẳng đang xét sẽ cắt cạnh k
tương ứng của cửa sổ clipping tại vị trí trên đoạn
thẳng uk = qk/Pk.
– Pk < 0 đoạn thẳng có dạng đi từ ngoài vào trong
• bất phương trình sẽ có dạng u  qk/Pk  u  uk.
– Pk > 0
• u  uk sẽ thuộc cửa sổ hiển thị.
• 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.
Liabarsky
13
• 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.
– 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.
– => uk sẽ nhận là 0 khi uk<0
• Pk > 0 và uk > 1
– => uk tương ứng sẽ nhận giá trị 1.
• điểm nằm trong cửa sổ clipping sẽ có dạng như
sau:
– U1  u  U2
Liabarsky
14
  
















 0
,
:
0
max
1 k
k
k
k
k P
P
q
u
u
U
 
















 0
,
:
1
min
2 k
k
k
k
k P
P
q
u
u
U
15
• Basic idea:
– Consider each edge of the viewport individually
– Clip the polygon against the edge equation
– After doing all planes, the polygon is fully clipped
Sutherland-Hodgman Clipping
16
• Input/output for algorithm:
– Input: list of polygon vertices in order
– Output: list of clipped poygon vertices
consisting of old vertices (maybe) and new
vertices (maybe)
• Note: this is exactly what we expect from the
clipping operation against each edge
Sutherland-Hodgman Clipping
17
• Sutherland-Hodgman basic routine:
– Go around polygon one vertex at a time
– Current vertex has position p
– Previous vertex had position s, and it has
been added to the output if appropriate
Sutherland-Hodgman Clipping
18
• Edge from s to p takes one of four cases:
(Purple line can be a line or a plane)
Sutherland-Hodgman Clipping
inside outside
s
p
p output
inside outside
s
p
no output
inside outside
s
p
i output
inside outside
s
p
i output
p output
19
• Four cases:
– s inside plane and p inside plane
• Add p to output
• Note: s has already been added
– s inside plane and p outside plane
• Find intersection point i
• Add i to output
– s outside plane and p outside plane
• Add nothing
– s outside plane and p inside plane
• Find intersection point i
• Add i to output, followed by p
Sutherland-Hodgman Clipping
-
GIẢI THUẬT ĐƯỜNG BIÊN
2
21
• Giải_thuật_đường_biên ( x, y )
Color : biến mầu
Begin
Color = Readpixel ( x, y );
If ( Color = mầu tô ) or ( Color = mầu đường biên )
Kết thúc vì chạm biên
hoặc chạm phần đã tô
Else
Putcolor(x,y, mauto)
Giải_thuật_đường_biên ( x+1, y );
Giải_thuật_đường_biên ( x-1, y );
Giải_thuật_đường_biên ( x, y+1 );
Giải_thuật_đường_biên ( x, y-1 );
// Thực hiện lại giải thuật với các điểm lân cận
End.
Giải thuật đường biên (Boundary – File algorithm)
22
• Ý tưởng
– Vẽ các cạnh theo chiều dọc
– Tô các đường nằm bên trong
miền theo mỗi đường ngang
– Nội suy xuống các cạnh ở dưới
– Tại mỗi đường ngang, nội suy
màu sắc của cạnh theo các
đường bên trong miền
Edge Walking
23
• Giải thuật đường quét sử dụng gắn kết cạnh và các
tính toán số nguyên tăng dần cho hiệu quả cao nhất
• Tạo bảng edge table (ET) tập của các cạnh đa giác
theo thứ tự giá trị ymin của chúng
• Tạo bảng active edge table (AET) tập các cạnh giao
vớI đoạn thẳng quét scan-line
• Trong tiến trình quét các cạnh sẽ chuyển từ ET ra
AET.
• Các cạnh sẽ ở trong AET cho đến khi giá trị ymax của
cạnh đạt tới = scanline
• Lúc nay cạnh sẽ bị loại ra khỏi AET.
Giải thuật đường quét
scan-line algorithm
Edge Table (ET)
24
Note: line (8,6)  (13,6) has been deleted according to the scan rules
ymax xmin
numerator
denominator
scan-line
(0,0)
(15,15)
5
3
1 


m
Active Edge Table (AET)
25
AET =
ymax current x denominator current numerator
round up
round down
Active Edge Table (AET)
26
ymax current x denominator
AET =
current numerator
round up
round down
-
SCAN-LINE ALGORITHM
y = y of first non empty entry in ET
AET = null
repeat
move all ET entries in slot y to AET
sort AET entries according to xmin
fill spans using pairs of AET entries
for all AET members
if ymax = y then remove from AET
y = y+1
for all AET members
update numerator
if numerator>denominator
numerator=numerator-
denominator
x = x+1
until AET and ET empty
27
-
GIẢI THUẬT KHỬ RĂNG CƯA
3
29
• Aliasing: signal processing term
with very specific meaning
• Aliasing: computer graphics term
for any unwanted visual artifact
• Antialiasing: computer graphics
term for avoiding unwanted
artifacts
Hiệu ứng răng cưa
30
• Rời rạc hóa: Bằng cách lấy mẫu theo chu kỳ
nhất định
• Ví dụ với đường sau đây
Xử lý tín hiệu
31
• Lấy mẫu
Xử lý tín hiệu
32
• Kết quả thu được
Xử lý tín hiệu
33
• Kết nối các giá trị thu được
Xử lý tín hiệu
34
• Một số đoạn bị gãy khúc
Xử lý tín hiệu
35
• Một số đoạn bị thất thoát dữ liệu
Xử lý tín hiệu
36
• Méo thông tin trong quá trình lấy mẫu tần số
thấp
• Một số trường hợp bị méo thông tin với hiệu ứng
bậc thang – staircase effect
• Việc làm giảm hiệu ứng méo thông tin bằng
phương pháp bù trừ
Antialiasing
sampling frequency
37
1. Cố định tín hiệu bằng phương pháp lọc-prefiltering:
– Giảm độ rộng dải tần tín hiệu bỏi bộ lọc thấp hơn
trước khi lấy mẫu.
– Chất lượng cao nhất nhưng không thực tiễn
2. Cố định mẫu bằng siêu mẫu supersampling:
– Dùng nhiều mẫu hơn để tăng tần số
– Đơn giản và được sử dụng rộng rãi
3. Cố định mẫu bằng phương pháp mẫu bất kỳ
– Mẫu ngẫu nhiên nhưng không đồng nhất
– Tương đối đơn giản, thường được kết hợp với phương
pháp siêu mẫu
PHƯƠNG PHÁP KHỬ HIỆU ỨNG
RĂNG CƯA
38
PHƯƠNG PHÁP SIÊU MẪU
Antialiasing by
supersampling
39
-
VÍ DỤ
40
41
• Grid : The simplest algorithm. The pixel is split in several sub-
pixels, and a sample is taken from the center of each. It is fast
and easy to implement, although due to the regular nature of
sampling, aliasing can still occur if a low number of sub-pixels is
used.
• Random: Also known as stochastic sampling, it avoids the
regularity of grid supersampling. However, due to the irregularity
of the pattern, samples end up being unnecessary in some areas
of the pixel and lacking in others.
• Poisson disc: Again an algorithm that places the samples
randomly, but then checks that any two are not too close. The
end result is even but random distribution of samples.
Unfortunately, the computational time required for this
algorithm is too great to justify its use in real-time rendering,
unless the sampling itself is computationally expensive
compared to the positioning the sample points or the sample
points are not repositioned for every single pixel.
Supersampling patterns
42
• Jittered: A modification of the grid algorithm to
approximate the Poisson disc. A pixel is split into
several sub-pixels, but a sample is not taken from
the center of each, but from a random point within
the sub-pixel. Congregation can still occur, but to a
lesser degree.
• Rotated grid: A 2×2 grid layout is used but the
sample pattern is rotated to avoid samples aligning
on the horizontal or vertical axis greatly improving
antialiasing quality for the most commonly
encountered cases. For an optimal pattern, the
rotation angle is arctan(1/2) (about 26.6 degrees)
and the square is stretched by a factor of √5/2
Supersampling patterns
-
VÍ DỤ
43
-
VÍ DỤ
44
-
VÍ DỤ
45

More Related Content

PDF
Tong quan - cnckhacda.com
PDF
3_XLA3_Nang cao chat luong anh.pdf
PDF
3_XLA3_Nang cao chat luong anh.pdf
PDF
jklsafladsfjkdlsajfkldsjfklds;ajfkdls;afjkdsl;afjkdsl;ajfkdsl;afjkdsl;àkldsaj...
PDF
Do hoa may tinh
PDF
CG03_Entities_Algorithm.pdf
PPT
Chaptder 3dsfdsfsdfdsfsdfdsfdsfdsfsdf.ppt
PDF
Bài giảng xử lý ảnh phát hiện biên và phân vùng ảnh
Tong quan - cnckhacda.com
3_XLA3_Nang cao chat luong anh.pdf
3_XLA3_Nang cao chat luong anh.pdf
jklsafladsfjkdlsajfkldsjfklds;ajfkdls;afjkdsl;afjkdsl;ajfkdsl;afjkdsl;àkldsaj...
Do hoa may tinh
CG03_Entities_Algorithm.pdf
Chaptder 3dsfdsfsdfdsfsdfdsfdsfdsfsdf.ppt
Bài giảng xử lý ảnh phát hiện biên và phân vùng ảnh

Similar to CG04_Base_Algorithm.pdf (20)

PDF
05 Edge Detection - VN.pdf
DOCX
Đề cương môn xử lý ảnh Đại học công nghệ Giao thông vận tải
PDF
Bài giảng xử lý ảnh xử lý và nâng cao chất lượng ảnh
PDF
Ch3cacphepbiendoihinhhoc 0013
PDF
cheatsheet-convolutional-neural-networks.pdf
DOC
Tach bien anh mau
PPT
Vien tham - 9 chuyen doi anh - b
PDF
03_C2-Thu nhan anh_BIEU DIEN ANH.pdf IUH KHMT
PPTX
xu-ly-anh__xla_c1_cac van de rat chi la co-ban_08082018
PDF
graphic in C.pdf
PPTX
DSP
PDF
Giao trinh autocad 2004 - xaydungvungtau.net
PDF
Giáo trình học Autocad 2004 Tiếng Việt
PDF
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
PDF
04_C3_Nang cao chat luong anh_TOAN TU DIEM.pdf
PDF
Hướng Dẫn Sử Dụng Lệnh Trong ACCUMARK Pattern Design
PDF
03 Spatial Filter - VN.pdf
PPT
GIAO TRINH AUTOCAD 2D 4- ban ve ki thuat.ppt
PDF
3259
PDF
XLA Lecture_Nguyen Quan Duc_.pdf
05 Edge Detection - VN.pdf
Đề cương môn xử lý ảnh Đại học công nghệ Giao thông vận tải
Bài giảng xử lý ảnh xử lý và nâng cao chất lượng ảnh
Ch3cacphepbiendoihinhhoc 0013
cheatsheet-convolutional-neural-networks.pdf
Tach bien anh mau
Vien tham - 9 chuyen doi anh - b
03_C2-Thu nhan anh_BIEU DIEN ANH.pdf IUH KHMT
xu-ly-anh__xla_c1_cac van de rat chi la co-ban_08082018
graphic in C.pdf
DSP
Giao trinh autocad 2004 - xaydungvungtau.net
Giáo trình học Autocad 2004 Tiếng Việt
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
04_C3_Nang cao chat luong anh_TOAN TU DIEM.pdf
Hướng Dẫn Sử Dụng Lệnh Trong ACCUMARK Pattern Design
03 Spatial Filter - VN.pdf
GIAO TRINH AUTOCAD 2D 4- ban ve ki thuat.ppt
3259
XLA Lecture_Nguyen Quan Duc_.pdf
Ad

Recently uploaded (7)

PPTX
thi công cầu thuyết trình elearning 2.pptx
PPTX
bài thuyết trình thi công cầu elearning 3.pptx
DOCX
Đánh giá độ tin cậy lưới điện Khu II Trường Đại học Cần Thơ
DOCX
GIẢI PHÁP BẢO MẬT THÔNG TIN LOGISTICS CHO DOANH NGHIỆP VIETTEL POST TRONG KỶ ...
DOCX
Đệ Quy (Recursion) trong Java | Giải thích và Ứng dụng
PDF
Bài giảng - Phat Trien UD Tren Linux_Final_14092023.pdf
DOCX
Truyền Giá Trị Và Tham Chiếu trong Java | Các Cách Truyền Dữ Liệu vào Phương ...
thi công cầu thuyết trình elearning 2.pptx
bài thuyết trình thi công cầu elearning 3.pptx
Đánh giá độ tin cậy lưới điện Khu II Trường Đại học Cần Thơ
GIẢI PHÁP BẢO MẬT THÔNG TIN LOGISTICS CHO DOANH NGHIỆP VIETTEL POST TRONG KỶ ...
Đệ Quy (Recursion) trong Java | Giải thích và Ứng dụng
Bài giảng - Phat Trien UD Tren Linux_Final_14092023.pdf
Truyền Giá Trị Và Tham Chiếu trong Java | Các Cách Truyền Dữ Liệu vào Phương ...
Ad

CG04_Base_Algorithm.pdf

  • 1. Trịnh Thành Trung trungtt@soict.hust.edu.vn Bài 4 CÁC GIẢI THUẬT CƠ SỞ 1
  • 2. - NỘI DUNG 1. Các giải thuật xén tỉa 2. Thuật toán tô miền kín 3. Phép xử lý Antialiasing 2
  • 3. - CÁC GIẢI THUẬT XÉN TỈA 1
  • 4. 4 • Khái niệm Xén tỉa là tiến trình tự động xác định các điểm của 1 đối tượng nằm trong hay ngoài cửa sổ hiển thị • Tiết kiệm thời gian tiến trình rasterize bỏ qua phần nằm ngoài cửa sổ hiển thị • Clipping điểm – xmin  x  xmax – ymin  y  ymax Xén tỉa - clipping xmin xmax ymax ymin
  • 5. 5 • Tiến trình, giải thuật kiểm tra chấp nhận các đoạn thẳng nằm trong và loại bỏ các đoạn thẳng nằm ngoài dựa trên 2 điểm đầu cuối • Lý do: – Không kiểm tra mọi điểm trên đoạn thẳng – Hầu hết các đoạn thẳng với 1 màn hình hiển thị đều được chấp nhận hoặc loại bỏ – Rất ít các đoạn thẳng cắt cửa sổ hiển thị Clipping đoạn thẳng
  • 6. - GIẢI THUẬT COHEN SUTHERLAND OUTCODE 6 • Giải thuật Cohen-Sutherland thực hiện nhanh với các trương hợp đoạn thẳng nằm trong hay ngoài cửa sổ hiện thị • Mỗi điểm đầu cuối được gán mã code phụ thuộc vào vị trí trong mặt phẳng mã
  • 7. 7 p.code = 0000  If p.x <= xmin >> P.code or 0001  If p.y <= ymin >> P.code or 0100  If p.x >= xmax >> P.code or 0010  If p.y >= ymax >> P.code or 1000 Giải thuật Cohen Sutherland outcode
  • 8. 8 • If P1.code OR P2.code == 0000 – Chấp nhận toàn đoạn thẳng • If P1.code AND P2.code != 0000 – Loại • Với truờng hợp cắt, giải thuật xác định lại điểm đầu cuối là giao của đoạn thẳng và khung bao của cửa sổ hiển thị Giải thuật Cohen Sutherland outcode
  • 9. 9 • Giải Cohen-Sutherland yêu cầu cửa sổ là hình chữ nhật, các cạnh là cạnh của màn hình • Vấn đề nảy sinh khi cửa sổ clip là 1 đa giác bất kỳ hoặc hình chữ nhật quay đi 1 góc • Giải thuật Liang-Barsky tối ưu khi tìm giao điểm của đoạn thẳng với cử sổ hiển thị • Nicholl-Lee-Nicholl reducing redundant boundary clipping by identifying edge and corner regions Giải thuật Cyrus-beck Liang Barsky
  • 10. 10 • x = x1 + (x2 - x1)u = x1 + uDx • y = y1 + (y2 - y1)u = y1 + uDy • xmin  x1 + Dx.u  xmax  x  [xm, xM] • ymin  y1 + Dy.u  ymax  y  [ym, yM] • Pk u  qk k = 1, 2, 3, 4 Liabarsky              Dy P Dy P Dx P Dx P 4 3 2 1                1 4 1 3 1 2 1 1 y y q y y q x x q x x q M m M m
  • 11. 11 • 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. • a) Nếu qk < 0  Đường thẳng nằm ngoài cửa sổ (hệ bất phương trình trên vô nghiệm) • b)Nếu qk >= 0 thì đoạn thẳng nằm trong hoặc nằm trên cạnh của cửa sổ clipping. • Hệ bất phương trình luôn thoả mãn. Liabarsky
  • 12. 12 • Nếu Pk  0 : đoạn thẳng đang xét sẽ cắt cạnh k tương ứng của cửa sổ clipping tại vị trí trên đoạn thẳng uk = qk/Pk. – Pk < 0 đoạn thẳng có dạng đi từ ngoài vào trong • bất phương trình sẽ có dạng u  qk/Pk  u  uk. – Pk > 0 • u  uk sẽ thuộc cửa sổ hiển thị. • 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. Liabarsky
  • 13. 13 • 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. – 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. – => uk sẽ nhận là 0 khi uk<0 • Pk > 0 và uk > 1 – => uk tương ứng sẽ nhận giá trị 1. • điểm nằm trong cửa sổ clipping sẽ có dạng như sau: – U1  u  U2 Liabarsky
  • 14. 14                     0 , : 0 max 1 k k k k k P P q u u U                    0 , : 1 min 2 k k k k k P P q u u U
  • 15. 15 • Basic idea: – Consider each edge of the viewport individually – Clip the polygon against the edge equation – After doing all planes, the polygon is fully clipped Sutherland-Hodgman Clipping
  • 16. 16 • Input/output for algorithm: – Input: list of polygon vertices in order – Output: list of clipped poygon vertices consisting of old vertices (maybe) and new vertices (maybe) • Note: this is exactly what we expect from the clipping operation against each edge Sutherland-Hodgman Clipping
  • 17. 17 • Sutherland-Hodgman basic routine: – Go around polygon one vertex at a time – Current vertex has position p – Previous vertex had position s, and it has been added to the output if appropriate Sutherland-Hodgman Clipping
  • 18. 18 • Edge from s to p takes one of four cases: (Purple line can be a line or a plane) Sutherland-Hodgman Clipping inside outside s p p output inside outside s p no output inside outside s p i output inside outside s p i output p output
  • 19. 19 • Four cases: – s inside plane and p inside plane • Add p to output • Note: s has already been added – s inside plane and p outside plane • Find intersection point i • Add i to output – s outside plane and p outside plane • Add nothing – s outside plane and p inside plane • Find intersection point i • Add i to output, followed by p Sutherland-Hodgman Clipping
  • 21. 21 • Giải_thuật_đường_biên ( x, y ) Color : biến mầu Begin Color = Readpixel ( x, y ); If ( Color = mầu tô ) or ( Color = mầu đường biên ) Kết thúc vì chạm biên hoặc chạm phần đã tô Else Putcolor(x,y, mauto) Giải_thuật_đường_biên ( x+1, y ); Giải_thuật_đường_biên ( x-1, y ); Giải_thuật_đường_biên ( x, y+1 ); Giải_thuật_đường_biên ( x, y-1 ); // Thực hiện lại giải thuật với các điểm lân cận End. Giải thuật đường biên (Boundary – File algorithm)
  • 22. 22 • Ý tưởng – Vẽ các cạnh theo chiều dọc – Tô các đường nằm bên trong miền theo mỗi đường ngang – Nội suy xuống các cạnh ở dưới – Tại mỗi đường ngang, nội suy màu sắc của cạnh theo các đường bên trong miền Edge Walking
  • 23. 23 • Giải thuật đường quét sử dụng gắn kết cạnh và các tính toán số nguyên tăng dần cho hiệu quả cao nhất • Tạo bảng edge table (ET) tập của các cạnh đa giác theo thứ tự giá trị ymin của chúng • Tạo bảng active edge table (AET) tập các cạnh giao vớI đoạn thẳng quét scan-line • Trong tiến trình quét các cạnh sẽ chuyển từ ET ra AET. • Các cạnh sẽ ở trong AET cho đến khi giá trị ymax của cạnh đạt tới = scanline • Lúc nay cạnh sẽ bị loại ra khỏi AET. Giải thuật đường quét scan-line algorithm
  • 24. Edge Table (ET) 24 Note: line (8,6)  (13,6) has been deleted according to the scan rules ymax xmin numerator denominator scan-line (0,0) (15,15) 5 3 1    m
  • 25. Active Edge Table (AET) 25 AET = ymax current x denominator current numerator round up round down
  • 26. Active Edge Table (AET) 26 ymax current x denominator AET = current numerator round up round down
  • 27. - SCAN-LINE ALGORITHM y = y of first non empty entry in ET AET = null repeat move all ET entries in slot y to AET sort AET entries according to xmin fill spans using pairs of AET entries for all AET members if ymax = y then remove from AET y = y+1 for all AET members update numerator if numerator>denominator numerator=numerator- denominator x = x+1 until AET and ET empty 27
  • 28. - GIẢI THUẬT KHỬ RĂNG CƯA 3
  • 29. 29 • Aliasing: signal processing term with very specific meaning • Aliasing: computer graphics term for any unwanted visual artifact • Antialiasing: computer graphics term for avoiding unwanted artifacts Hiệu ứng răng cưa
  • 30. 30 • Rời rạc hóa: Bằng cách lấy mẫu theo chu kỳ nhất định • Ví dụ với đường sau đây Xử lý tín hiệu
  • 31. 31 • Lấy mẫu Xử lý tín hiệu
  • 32. 32 • Kết quả thu được Xử lý tín hiệu
  • 33. 33 • Kết nối các giá trị thu được Xử lý tín hiệu
  • 34. 34 • Một số đoạn bị gãy khúc Xử lý tín hiệu
  • 35. 35 • Một số đoạn bị thất thoát dữ liệu Xử lý tín hiệu
  • 36. 36 • Méo thông tin trong quá trình lấy mẫu tần số thấp • Một số trường hợp bị méo thông tin với hiệu ứng bậc thang – staircase effect • Việc làm giảm hiệu ứng méo thông tin bằng phương pháp bù trừ Antialiasing sampling frequency
  • 37. 37 1. Cố định tín hiệu bằng phương pháp lọc-prefiltering: – Giảm độ rộng dải tần tín hiệu bỏi bộ lọc thấp hơn trước khi lấy mẫu. – Chất lượng cao nhất nhưng không thực tiễn 2. Cố định mẫu bằng siêu mẫu supersampling: – Dùng nhiều mẫu hơn để tăng tần số – Đơn giản và được sử dụng rộng rãi 3. Cố định mẫu bằng phương pháp mẫu bất kỳ – Mẫu ngẫu nhiên nhưng không đồng nhất – Tương đối đơn giản, thường được kết hợp với phương pháp siêu mẫu PHƯƠNG PHÁP KHỬ HIỆU ỨNG RĂNG CƯA
  • 38. 38 PHƯƠNG PHÁP SIÊU MẪU Antialiasing by supersampling
  • 39. 39
  • 41. 41 • Grid : The simplest algorithm. The pixel is split in several sub- pixels, and a sample is taken from the center of each. It is fast and easy to implement, although due to the regular nature of sampling, aliasing can still occur if a low number of sub-pixels is used. • Random: Also known as stochastic sampling, it avoids the regularity of grid supersampling. However, due to the irregularity of the pattern, samples end up being unnecessary in some areas of the pixel and lacking in others. • Poisson disc: Again an algorithm that places the samples randomly, but then checks that any two are not too close. The end result is even but random distribution of samples. Unfortunately, the computational time required for this algorithm is too great to justify its use in real-time rendering, unless the sampling itself is computationally expensive compared to the positioning the sample points or the sample points are not repositioned for every single pixel. Supersampling patterns
  • 42. 42 • Jittered: A modification of the grid algorithm to approximate the Poisson disc. A pixel is split into several sub-pixels, but a sample is not taken from the center of each, but from a random point within the sub-pixel. Congregation can still occur, but to a lesser degree. • Rotated grid: A 2×2 grid layout is used but the sample pattern is rotated to avoid samples aligning on the horizontal or vertical axis greatly improving antialiasing quality for the most commonly encountered cases. For an optimal pattern, the rotation angle is arctan(1/2) (about 26.6 degrees) and the square is stretched by a factor of √5/2 Supersampling patterns