Tải bản đầy đủ (.pdf) (69 trang)

Nghiên cứu một số phương pháp rút gọn số lượng điểm biểu diễn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.81 MB, 69 trang )


0

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ



Lƣơng Quang Linh



NGHIÊN CỨU MỘT SỐ PHƢƠNG PHÁP RÚT GỌN
SỐ LƢỢNG ĐIỂM BIỂU DIỄN


Ngành: Công nghệ Thông tin
Mã số: 1.01.10

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC
Tiến sĩ Đỗ Năng Toàn





Hà Nội – 2007

3


MỤC LỤC
Trang
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
MỤC LỤC 3
MỞ ĐẦU 5
Chương 1: TỔNG QUAN VỀ THỰC TẠI ẢO VÀ RÚT GỌN BIỂU DIỄN
BỀ MẶT 7
1.1. Tổng quan về thực tại ảo 7
1.1.1. “Thực tại ảo” là gì? 7
1.1.2. Sơ lược lịch sử phát triển 8
1.1.3. Các lĩnh vực ứng dụng 9
1.1.3.1. Kiến trúc và thiết kế thiết bị công nghệ 9
1.1.3.2. Giải trí 11
1.1.3.3. Giáo dục và Đào tạo 12
1.1.3.4. Y học 13
1.2. Mô hình hóa và biểu diễn bề mặt 15
1.2.1. Mô hình hoá trong thực tại ảo 15
1.2.2. Biểu diễn bề mặt 16
1.3. Rút gọn bề mặt trong biểu diễn bề mặt vật thể ba chiều 24
Chương 2: RÚT GỌN BIỂU DIỄN BỀ MẶT 28
2.1. Rút gọn số lượng điểm biểu diễn 28
2.1.1. Thuật toán đơn giản hóa Douglas-Peucker 29
2.1.2. Thuật toán Band Width 30
2.1.3. Thuật toán Angles 31
2.2. Thuật toán “độ đo sai số bậc hai QEM” (Quadric Error Metric) 33
2.2.1. Một số khái niệm và giả thiết ban đầu của thuật toán 34
2.2.2. Ý tưởng và các bước của thuật toán 41
2.2.3. Tập các cặp đỉnh sẽ được xem xét và loại bỏ 42
2.2.4. Hàm xác định giá 43

2.2.5. Kiểm tra tính toàn vẹn 49
2.2.6. Kết luận 51

4
2.3. Đơn giản hóa bề mặt kết hợp với kỹ thuật che phủ 53
2.3.1. Rút gọn số lượng bề mặt biểu diễn dựa vào kỹ thuật che phủ 53
2.3.2. Mô hình "Sao la" 57
Chương 3: ỨNG DỤNG 59
3.1. Nhận dạng các đối tượng hình học cơ sở 59
3.1.1 Xấp xỉ đa giác theo bất biến đồng dạng 60
3.1.2 Xấp xỉ đa giác theo bất biến aphin 63
3.2. Rút gọn kích thước đối tượng 3 chiều 64
3.2.1 Dữ liệu thực tại ảo và các bước trong xây dựng 64
3.2.2. Thực nghiệm 66
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 70


5
MỞ ĐẦU
Sự phát triển của công nghệ thông tin đã đẩy nhanh sự phát triển nhiều
lĩnh vực của đời sống xã hội. Với sự phát triển của phần cứng về cả phương
diện thu nhận và hiển thị đã mở ra nhiều hướng mới cho sự phát triển của
phần mềm. Trong số đó phải kể đến lĩnh vực thể hiện hình ảnh 3 chiều.
Trong lĩnh vực thể hiện hình ảnh 3 chiều có 2 phần chính là tạo mô
hình bề mặt (Modelling) và tạo sự chuyển động cho mô hình (Animation).
Việc tạo mô hình 3 chiều thường thông qua máy quét 3 chiều hoặc các
phần mềm chuyên dụng. Hai phần mềm chuyên dụng phổ biến hiện nay
trên thế giới là Maya và 3Ds max. Mỗi phần mềm có thế mạnh riêng, trong
đó 3Ds max được người sử dụng Việt Nam biết đến nhiều hơn thông qua

lĩnh vực kiến trúc, xây dựng. Nhưng một đặc điểm chung của các phần
mềm này là chú trọng đưa ra kết quả dưới phim, ảnh, còn hình ảnh đưa ra
dưới dạng Object phục vụ cho các hoạt động điều khiển trong môi trường
sau đó thì thường rất nặng.
Mặc dù, ngày nay, với sự phát triển nhanh và có hỗ trợ hữu hiệu của
công nghệ phần cứng của máy tính nhưng cũng chưa thể đáp ứng một cách
đầy đủ “không gian” cho việc xử lý hình ảnh. Vấn đề đặt ra là cần giảm
thiểu không gian lưu trữ đối tượng, để có thể tích hợp đối tượng vào những
không gian lớn phục vụ cho việc điều khiển sau này.
Có nhiều kỹ thuật nhằm giảm thiểu không gian lưu trữ thông qua các
kỹ thuật nén ảnh. Một cách tiếp cận khác thường được dùng nhằm giảm
thiểu không gian lưu trữ bằng cách bỏ bớt một số điểm hay mặt phẳng biểu
diễn đối tượng nhưng vẫn đảm bảo được hình dáng của đối tượng.

6
Hiện nay với sự phát triển của phần cứng đã thúc đẩy sự phát triển của
nhiều lĩnh vực khác, đặc biệt là xử lý ảnh và đồ hoạ 3 chiều. Những kết quả
này hiện nay ở Việt Nam chưa nhiều. Xuất phát từ những lý do trên, dưới
sự gợi ý của thầy hướng dẫn, em đã chọn đề tài “Nghiên cứu một số
phương pháp rút gọn số lượng điểm biểu diễn”.
Bố cục của luận văn gồm Phần mở đầu, Phần kết luận, Tài liệu tham
khảo và 3 chương nội dung, cụ thể:
Chương 1: Tổng quan về Thực tại ảo và rút gọn biểu diễn bề mặt
Trình bày tổng quan về thực tại ảo, các lĩnh vực ứng dụng cơ bản của
thực tại ảo, các kỹ thuật biểu diễn bề mặt trong xây dựng mô hình và đặt ra
nhiệm vụ của luận văn là nghiên cứu các kỹ thuật rút gọn biểu diễn bề mặt
trong biểu diễn đối tượng 3 chiều.
Chương 2: Các kỹ thuật rút gọn điểm và bề mặt biểu diễn đối tượng
Trình bày hai kỹ thuật rút gọn số lượng điểm biểu diễn đối với các mô
hình biểu diễn đối tượng ba chiều bởi bề mặt đa giác.

Chương 3: Ứng dụng
Trình bày ứng dụng của việc rút gọn số lượng điểm biểu diễn vào việc
xấp xỉ đối tượng bởi các hình cơ sở và ứng dụng việc rút gọn số lượng mặt
biểu diễn trong việc giảm thiểu không gian lưu trữ đối với đối tượng
ba chiều


7
Chương 1:
TỔNG QUAN VỀ THỰC TẠI ẢO VÀ RÚT GỌN
BIỂU DIỄN BỀ MẶT

1.1. Tổng quan về thực tại ảo
1.1.1. “Thực tại ảo” là gì?
Theo cách truyền thống, việc tương tác với máy tính được thực hiện
thông qua các thiết bị như bàn phím, chuột hay joystick/trackball để cung
cấp thông tin đầu vào và sử dụng khối hiển thị trực quan (VDU) để nhận
thông tin đầu ra từ hệ thống. Với sự ra đời của các hệ thống Thực tại ảo
(Virtual Reality-VR), các phương thức giao tiếp mới được phát triển cho
phép người sử dụng tương tác một cách tích cực với máy tính.
Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá không
gian ba chiều với sự hỗ trợ của các thiết bị đa phương tiện hiện đại để xây
dựng một thế giới mô phỏng bằng máy tính – môi trường ảo (virtual
environment). Trong thế giới ảo này, người sử dụng không còn được xem
như người quan sát bên ngoài, mà đã thực sự trở thành một phần của hệ
thống. Một cách lý tưởng, người sử dụng có thể tự do chuyển động trong
không gian ba chiều, tương tác với các vật thể ảo, quan sát và khảo cứu thế
giới ảo ở những góc độ khác nhau về mặt không gian. Ngược lại, môi
trường ảo lại có những phản ứng tương ứng với mỗi hành động của người
sử dụng, tác động vào các giác quan như thị giác, thính giác, xúc giác của

người sử dụng trong thời gian thực và tuân theo những quy tắc vật lý rất tự
nhiên, làm anh ta có cảm giác như đang tồn tại trong một thế giới thực.

8
1.1.2. Sơ lược lịch sử phát triển
Mặc dù Thực tại ảo được mô tả như một công nghệ mới mang tính
cách mạng, nhưng ý tưởng về việc nhúng người sử dụng vào một môi
trường nhân tạo không còn mới. Thực tại ảo có thể được xem như một sự
mở rộng của những ý tưởng đã ra đời khá lâu như hệ thống mô phỏng bay
(flight simulation), rạp chiếu phim màn ảnh rộng (như Cinerama hay
IMAX). Sử dụng các hệ thống như vậy, người dùng được quan sát hình ảnh
trong một màn hình có trường nhìn rộng lớn cho họ cảm giác như đang tồn
tại trong trường không gian đó.
Sự ra đời của các máy điện toán mini và bài báo khoa học của Ivan
Sutherland có tên “Màn hình tối tân” (Ultimate Display) vào năm 1965
được xem là hai bước đột phá lớn vào những năm 1960 cho công nghệ
Thực tại ảo. Trong bài báo của mình, Sutherland đã tiên đoán sự phát triển
của Thiết bị Hiển thị đội đầu (Head Mounted Display-HMD) đầu tiên, mà
sau đó chính ông đã tạo ra một thiết bị như vậy, có tên là “Thanh kiếm của
Damocles” (The Sword of Damocles). Sutherland cũng nhận ra tiềm năng
của máy điện toán trong việc tạo lập hình ảnh cho hệ thống mô phỏng bay,
trong khi những hình ảnh này trước đó được xây dựng bằng video camera.
Những ý tưởng này được hai nhà khoa học Mỹ ở NASA là Fisher và
McGreevy kết hợp lại trong một dự án có tên là “trạm làm việc ảo” (visual
workstation) vào năm 1984. Cũng từ đó NASA phát triển thiết bị Hiển thị
đội đầu có tính thương mại đầu tiên, được gọi là màn hình môi trường trực
quan (visual environment display - VIVED), thiết kế dựa trên mẫu hình
mặt nạ lặn với các màn hình quang học mà hình ảnh được cung cấp bởi hai
thiết bị truyền hình cầm tay Sony Watchman. Sự phát triển của thiết bị này
đã thành công ngoài dự đoán, bởi NASA đã sản xuất được một thiết bị


9
HMD có giá chấp nhận được trên thị trường, và như vậy ngành công
nghiệp Thực tại ảo đã ra đời.
1.1.3. Các lĩnh vực ứng dụng
Mặc dù khái niệm về Thực tại ảo đã xuất hiện từ khá lâu, nhưng do
nhiều lý do về mặt công nghệ (kéo theo chi phí cho nghiên cứu và phát
triển), phải mất nhiều thời gian và nỗ lực để Thực tại ảo có được những
thành tựu như ngày nay. Hiện tại đây vẫn là lĩnh vực công nghệ nhiều tiềm
năng xét về khía cạnh ứng dụng. Ở đây, báo cáo cố gắng đưa ra những lĩnh
vực ứng dụng chính có khuynh hướng phát triển mạnh mẽ nhất trong thời
gian gần đây.
1.1.3.1. Kiến trúc và thiết kế thiết bị công nghệ
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của Thực tại ảo là
thiết kế kiến trúc. Khả năng mô hình hoá thế giới thực của công nghệ Thực
tại ảo dường như đáp ứng một cách tự nhiên mục tiêu của ngành thiết kế
kiến trúc: Đưa ra mô hình trực quan nhất có thể về hình ảnh công trình kiến
trúc mong muốn trong tương lai.

Hình 1.1: Ứng dụng thực tại ảo trong thiết kế kiến trúc
(Hình ảnh của hoạ sỹ Chris LeBlanc

10
Việc xây dựng các mô hình không gian kiến trúc bằng hình ảnh lập
thể với đầy đủ mô tả trực quan về các hình khối kiến trúc của một căn nhà,
cách bố trí nội thất bên trong, thậm chí hoa văn cửa sổ hay màu sơn của
tường, cùng với khả năng cho phép khách hàng tự do tham quan, khảo sát
căn nhà của họ trong tương lai theo nhiều góc độ và vị trí, từ phòng này
sang phòng khác thực sự đem lại hiệu quả trực quan mang tính cách mạng
trong lĩnh vực mang nhiều đặc điểm nghệ thuật này.

Tương tự như trong kiến trúc, với các ngành sản xuất thiết bị mà trong
đó công đoạn thiết kế đóng vai trò quan trọng như thiết kế động cơ, thiết kế
ô tô, tàu biển, hay thậm chí tàu vũ trụ, hình dạng và cách bố trí các chi tiết
không chỉ đơn thuần mang tính thẩm mỹ, tính kỹ thuật mà đôi khi còn ảnh
hưởng tới sức sống của thiết bị xét về khía cạnh thương mại. Khả năng mô
hình hoá bằng hình ảnh lập thể của công nghệ Thực tại ảo cho phép người
thiết kế thể hiện được một cách trực quan nhất ý tưởng thiết kế của mình,
đánh giá cơ bản về hiệu năng của thiết bị dựa trên những thử nghiệm mô
phỏng trên thiết bị ảo, từ đó có những hiệu chỉnh cần thiết trước khi thiết bị
thực sự được sản xuất. Điều này rõ ràng góp phần không nhỏ trong thành
công của thiết bị công nghệ, giảm bớt những chi phí phát sinh.

Hình 1.2: Ứng dụng công nghệ Thực tại ảo trong thiết kế thiết bị công nghệ
(Hình ảnh từ Silicon Graphics, Inc.

11
1.1.3.2. Giải trí
Thị trường giải trí cũng là một ứng dụng tiêu biểu khác của các môi
trường Thực tại ảo. Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét theo
khía cạnh lợi ích về tài chính. Rất nhiều công ty đang sản xuất ra các trò
chơi có sử dụng các nguyên lý Thực tại ảo. Số lượng người bị cuốn hút
theo các trò chơi như vậy, đặc biệt là giới trẻ, tăng theo cấp số nhân đánh
dấu tiềm năng thương mại to lớn của công nghệ Thực tại ảo trong lĩnh
vực này.

Hình 1.3: Ứng dụng thực tại ảo trong lĩnh vực giải trí
(Hình ảnh từ Cybermind UK Ltd
Hơn thế, ngành công nghiệp trò chơi điện tử có những ảnh hưởng to
lớn tới lĩnh vực Thực tại ảo. Nó tạo ra động lực cần thiết để thúc đẩy sự
phát triển của rất nhiều phần cứng Thực tại ảo, chẳng hạn như card tăng

tốc đồ hoạ (graphic accelerator cards). Nếu như chúng ta trở lại khoảng 10
năm về trước, thật khó có thể tìm thấy một card tăng tốc đồ hoạ có đủ năng
lực tính toán cần thiết cho phép tạo ra các ứng dụng Thực tại ảo thời gian
thực. Tại thời điểm đó, những chiếc card như vậy trị giá hàng ngàn đô-la và
chỉ đủ khả năng sinh 100.000 đa giác/giây ở mức độ phân giải trung bình.
Những thiết bị phần cứng khác như Găng tay dữ liệu (DataGloves) và Thiết

12
bị hiển thị đội đầu (Head Mounted Displays-HMD) cũng chịu ảnh hưởng
phần nào của công nghiệp giải trí. Tóm lại, chúng ta có thể nói rằng các
ứng dụng Thực tại ảo trong giải trí đã và đang đóng một vai trò quan trọng
trong việc định hướng đi cho công nghiệp Thực tại ảo.
1.1.3.3. Giáo dục và Đào tạo
Phát triển trên nền công nghệ và kỹ thuật cao, Thực tại ảo tích hợp
những đặc tính làm cho bản thân nó có những tiềm năng vượt trội so với
các công nghệ đa phương tiện truyền thống khác, cho người sử dụng cảm
nhận sự hiện diện của mình trong môi trường do máy tính tạo ra bằng khả
năng tương tác, tự trị (autonomy) của người dùng trong môi trường ảo,
cũng như bằng những phản hồi tức thời, trực quan từ phía môi trường ảo
tới các giác quan của người sử dụng. Hơn thế nữa, công nghệ Thực tại ảo
cho phép mô phỏng những môi trường nguy hiểm hay tốn kém như buồng
lái máy bay, phòng thí nghiệm hoá chất v.v

Hình 1.4: Mô hình huấn luyện bay sử dụng công nghệ Thực tại ảo
(Hình ảnh từ hãng Boeing
Tất cả những đặc tính này khiến công nghệ Thực tại ảo trở nên rất phù
hợp cho các ứng dụng có tính chất giáo dục hay đào tạo. Trong đó, những

13
mô hình trình diễn lập thể đóng vai trò quan trọng. Các vật thể trong thế

giới ảo được biểu diễn chính xác hơn nhiều so với các đối tượng phẳng
(hình ảnh hai chiều) do được bổ sung thêm chiều sâu. Kết quả là các trình
diễn minh hoạ hay những thí nghiệm cũng được mô phỏng chính xác hơn
do có thể quan sát từ nhiều góc độ khác nhau về mặt không gian, điều mà
thế giới phẳng hai chiều không làm được.
Tính chất trực quan của bài giảng được nâng cao một bước làm tăng
sự hứng thú trong học tập cũng như khả năng ghi nhớ các khái niệm quan
trọng trong bài giảng. Xét về mặt này, khả năng tương tác với môi trường
ảo là một khía cạnh đáng lưu ý. Nếu thiếu đi khả năng tương tác (hai chiều)
giữa môi trường ảo và người tham dự, Thực tại ảo không gì khác hơn là
một giao diện lập thể ấn tượng nhưng không có sự sống. Trong các phòng
thí nghiệm hay huấn luyện ảo, thực hiện các thao tác trên các đối tượng
trong môi trường ảo, nhận được những phản hồi kịp thời và có nghĩa từ các
vật thể và môi trường là một trong những yếu tố tiên quyết khiến cho học
viên có cảm nhận đang được trải nghiệm trong những tình huống thực. Từ
đó, học viên nắm bắt được nhanh chóng và có ý thức hơn với những tính
huống được học.
1.1.3.4. Y học
Y học là một trong những lĩnh vực ứng dụng tiềm năng trong công
nghệ Thực tại ảo và là một trong số ít lĩnh vực ứng dụng thuộc ngành khoa
học của Thực tại ảo. Cho đến nay, lĩnh vực nổi bật trong y học áp dụng
thành công công nghệ Thực tại ảo là giả lập giải phẫu (Surgical Simulation).
Trên cơ sở các kỹ thuật đồ hoạ máy tính và Thực tại ảo, hệ thống đào
tạo y học này bao gồm hai bộ phận cơ bản: Khối tương tác ba chiều là mô
hình sinh thể ảo cho phép người sử dụng thực hiện các thao tác giải phẫu
thông qua các dụng cụ giải phẫu ảo; Khối giao diện người dùng hai chiều

14
cung cấp những thông tin phản hồi trực quan từ mô hình trong quá trình
giải phẫu cũng như những thông tin hướng dẫn trong phiên đào tạo.


Hình 1. 5: Phẫu thuật ảo – Phương pháp
đào tạo phẫu thuật mới dùng công nghệ
Thực tại ảo
(Hình ảnh từ Virtualvision Inc., Artma
Biomedical Inc. ;



Phương pháp đào tạo có tính tương tác cao này mang nhiều ưu điểm
so với các phương pháp truyền thống như thực hành trên mô hình plastic
hay trên bệnh nhân thực. Thứ nhất, khác với phương pháp dùng mô hình
plastic, sinh thể giải phẫu ảo có khả năng cung cấp những thông tin phản
hồi sinh học một cách tự nhiên như một sinh thể sống thực, dưới tác động
giải phẫu của bác sỹ mổ, chẳng hạn như sự thay đổi về nhịp tim, huyết
áp,… Điều này tạo cho học viên có cảm giác đang trải qua một ca mổ trong
một tình huống thực. Thứ hai, khác với thực hành trên bệnh nhân thật, rõ
ràng sai lầm của học viên trong quá trình thực tập không phải trả giá bằng
những thương tổn thực trên cơ thể người bệnh. Điều này cũng làm giảm áp
lực lên học viên khi thực hiện phẫu thuật ảo. Từ đó, giúp họ tự tin và chủ
động hơn trong học tập.
Phương pháp này không chỉ cho phép các học viên y khoa thực hành
các ca phẫu thuật trong tình huống thực, đem lại cho họ những kinh nghiệm
cần thiết trước khi thực hiện phẫu thuật trên cơ thể con người, đây còn là cơ
hội để các bác sỹ mổ nâng cao kỹ thuật giải phẫu và kỹ năng phối hợp làm

15
việc theo nhóm trong phòng mổ. Điều này đặc biệt quan trọng trong các
tình huống phẫu thuật nguy hiểm và nhạy cảm.
Các kỹ thuật Thực tại ảo cũng được sử dụng để hỗ trợ bác sỹ mổ trong

giai đoạn lập kế hoạch tiền phẫu thuật (preoperative planning). Trước khi
thực hiện quy trình giải phẫu trên bệnh nhân thực, người bác sỹ có thể thử
nghiệm các phương pháp tiến hành phẫu thuật khác nhau trên mô hình ảo
của người bệnh. Mô hình này mô phỏng đầy đủ các đặc điểm bệnh lý của
người bệnh thật. Theo cách này, người bác sỹ sẽ lựa chọn ra được cách
thức an toàn nhất, hiệu quả nhất và tốn ít thời gian nhất trong phòng phẫu
thuật, hạn chế những biến cố trong quá trình giải phẫu.
1.2. Mô hình hóa và biểu diễn bề mặt
1.2.1. Mô hình hóa trong thực tại ảo
Hai khâu quan trọng trong việc xây dựng một hệ thống thực tại ảo
(virtual reality system) là xây dựng mô hình (modelling) và điều khiển mô
hình (rendering). Xây dựng mô hình là một khâu quan trọng trong các hệ
thống thực tại ảo. Mô hình được xây dựng không những phải đảm bảo về
chất lượng mà còn phải đảm bảo về yêu cầu giảm thiểu không gian bộ nhớ,
nhằm phục vụ cho các yêu cầu điều khiển sau đó.
Việc tạo mô hình 3 chiều người ta phải nhờ vào những thiết bị và
những phần mềm chuyên dụng. Hình 1.6 là sơ đồ tổng quát cho một quy
trình hình thành dữ liệu thực tại ảo.


Hình 1.6: Sơ đồ tổng quát của một quy trình hình thành dữ liệu thực tại ảo

Import
Thu nhận
(Scanner 2D, 3D,
RASER, VECTOR)
3DS Max,
Maya
VRML,
OBJ v.v…

Export

hình
Đơn
giản hóa

16
1.2.2. Biểu diễn bề mặt
Để có thể mô tả được đối tượng khảo sát bằng thực tại ảo chúng ta cần
phải biểu diễn được các đường cong và bề mặt cho các đối tượng đang tồn
tại trong thế giới thực dưới dạng các mô hình các đối tượng đang tồn tại
(modeling existing objects), chẳng hạn như ôtô, bề mặt, quả núi, v.v hoặc
trong mô hình tạm thời (modeling from scratch) cho các đối tượng vật lý đã
không tồn tại trước đó được biểu diễn ở dạng mô hình (Foley et al. , 1994-
1996).
Trong trường hợp thứ nhất, nếu không thể mô tả hình dạng của đối
tượng bằng toán học, ta có thể sử dụng mô hình tọa độ của tất cả các điểm
thuộc đối tượng. Cách tiếp cận này khó thực hiện đối với máy tính vì khả
năng lưu trữ có hạn. Người ta thường xấp xỉ đối tượng bằng các phần mặt
phẳng, mặt hình cầu hoặc các bề mặt khác để có thể dễ dàng mô tả bằng
toán học. Tuy nhiên, cần phải làm sao cho các điểm trong mô mình phải
gần với vị trí các điểm tương ứng của đối tượng thực.
Trong trường hợp thứ hai, khi không có sự tồn tại trước đó của đối
tượng dưới dạng mô hình, người sử dụng tạo ra đối tượng trong mô hình xử
lý. Để tạo ra đối tượng, người sử dụng phải chỉnh sửa đối tượng, mô tả nó
dưới dạng toán học hoặc đề ra một mô tả xấp xỉ để đưa vào một chương
trình ứng dụng nào đó. Trong CAD, việc biểu diễn bằng máy tính được sử
dụng cuối cùng để thể hiện về mặt vật lý của đối tượng đã được mô tả dưới
dạng lý thuyết.
Mô hình bề mặt (Surface modeling) là một lĩnh vực rộng lớn, thu hút

nhiều sự quan tâm của các nhà khoa học, hiện có ba cách biểu diễn bề mặt
ba chiều phổ biến đó là: Bề mặt lưới đa giác (polygon mesh surface), bề
mặt Tham số (parametric surface) và bề mặt Bậc hai (quadric surface).

17
Như vậy, ta thấy rằng, bề mặt đóng vai trò quan trọng trong các mô
hình hình học. Chương này nghiên cứu một vài bề mặt quan trọng sử dụng
để biểu diễn đối tượng trong thế giới thực bằng việc tiếp cận biểu diễn bao
đóng (boulldary representationl (B-reps)), mô tả một đối tượng 3D
(Dimension _chiều) như là tập hợp của các bề mặt tách đối tượng từ
môi trường.
Một bề mặt đa giác (polygon surface hoặc polygon mesh) là tập hợp
các cạnh, đỉnh và sự kết nối các đa giác sao cho mỗi cạnh là cạnh chung
của nhiều nhất hai đa giác. Một cạnh nối hai đỉnh, một đa giác được tạo bởi
một chuỗi khép kín của các cạnh. Một cạnh có thể là cạnh chung của hai đa
giác, một đỉnh là đỉnh chung của ít nhất hai cạnh, tất cả các cạnh đều là một
phần của một vài đa giác. Một lưới đa giác có thể được biểu diễn theo một
vài cách khác nhau, mỗi cách đều có ưu và nhược điểm riêng. Nhiệm vụ
của người lập trình là chọn ra cách biểu diễn tốt nhất trong trường hợp cụ
thể. Một vài cách biểu diễn có thể được sử dụng trong một chương trình
ứng dụng: Một cách cho lưu trữ ngoài, một cách cho việc sử dụng bên
trong và một cách khác cho người sử dụng tương tác tạo ra lưới.
Hai tiêu thức cơ bản: Không gian và thời gian, được sử dụng để đánh
giá các cách biểu diễn khác nhau. Các thao tác đặc trưng trên một lưới đa
giác là tìm ra tất cả các cạnh chung gắn với một đỉnh, xác định các đa giác
có chung cạnh hoặc chung đỉnh, xác định các đỉnh nối cho một cạnh, xác
định các cạnh của một đa giác, biểu diễn lưới, nhận dạng các lỗi khi biểu
diễn (chẳng hạn thiếu một cạnh, đỉnh, hoặc đa giác). Nói chung mối quan
hệ giữa các đa giác, đỉnh, và các cạnh càng được biểu diễn rõ ràng thì các
thao tác sẽ được thực hiện nhanh hơn nhưng lại đòi hỏi nhiều không

gian hơn.


18
a) Biểu diễn lưới đa giác
Ba cách biểu diễn lưới đa giác được xét ở đây là: Biểu diễn theo hàm
hiện, con trỏ tới danh sách các đỉnh và con trỏ tới danh sách các cạnh
(Foley et al 1994).
Trong cách biểu diễn theo hàm hiện (explicit representation), mỗi một
đa giác được biểu diễn bởi danh sách tọa độ của các đỉnh:
P = ((x
1
, y
1
, z
1
),(x
2
, y
2
, z
2
), , (x
n
, y
n
,z
n)
).
Các đỉnh được lưu theo thứ tự mà ta sẽ gặp chúng khi đi một vòng

quanh đa giác. Có các cạnh giữa các đỉnh trong danh sách và giữa đỉnh đầu
và cuối. Với một đa giác đơn, cách biểu diễn này hiệu quả về không gian;
với một lưới đa giác sẽ tốn nhiều không gian hơn vì toạ độ của các đỉnh
chung được liệt kê hai lần.
Vấn đề là không có cách biểu diễn theo hàm hiện cho các cạnh chung
và các đỉnh chung. Chẳng hạn, để di chuyển một đỉnh mà tất cả các cạnh
nối với đỉnh đó đều phải biến đổi theo, ta phải xác định tất cả các đa giác
có chung đỉnh đó. Việc tìm kiếm này đòi hỏi phải so sánh ba tọa độ của
một đỉnh một đa giác với các đa giác khác. Cách làm hiệu quả nhất là sắp
xếp N cặp toạ độ, nhưng quá trình này tốn Nlog
2
N, và có thể nguy hiểm vì
một đỉnh có thể sẽ có toạ độ khác đi do quá trình làm tròn. Đo đó sẽ không
thể thực hiện chính xác được.
Trong phương pháp này, lưới đa giác được biểu diễn dưới dạng tô
màu đa giác hoặc vẽ đường nét bên ngoài cần phải được chuyển đổi các
đỉnh và cắt các cạnh của mỗi đa giác. Mỗi cạnh chung sẽ được vẽ hai lần.
Đó chính là nguyên nhân vẽ lại trong bút vẽ, thiết bị ghi phim, và các hệ
hiển thị vector và raster.

19
Đa giác được xác định theo con trỏ tới danh sách các đỉnh (pointers to
a vertex list), mỗi đỉnh của lưới đa giác được lưu chỉ một lần trong danh
sách các đỉnh V = ((x
1
, y
1
z
1
),(x

2
, y
2
z
2
), , (x
n
, y
n
z
n
)).




Hình 1.7: Lưới đa giác xác định bằng các chỉ số trong danh sách các đỉnh
Một đa giác được xác định bởi danh sách các chỉ số (hoặc các con trỏ)
tới danh sách các đỉnh. Chẳng hạn, một đa giác có các đỉnh là 3, 5, 7 và 10
thì danh sách các đỉnh được biểu diễn là P = (3, 5, 7, 10)
Một ví dụ của cách biểu diễn này được chỉ ra trong hình 1.7 có một
vài ưu điểm hơn so với cách biểu diễn đa giác theo hàm hiện. Mỗi một đỉnh
chỉ được lưu một lần, như vậy tiết kiệm được không gian. Hơn nữa, tọa độ
của các đỉnh có thể được thay đổi một cách dễ dàng. Tuy nhiên, vẫn khó
khăn để xác định các đa giác có chung cạnh; các đa giác có chung cạnh vẫn
được vẽ hai lần cho cạnh chung đó. Ta có thể giải quyết các vấn đề này
bằng cách biểu diễn các cạnh theo hàm hiện, như trong phương pháp sau :
Khi một đa giác được xác định bởi con trỏ tới danh sách các cạnh
(pointers to all edge list), ta có danh sách các cạnh V. Trong phương pháp
này, biểu diễn đa giác theo danh sách các con trỏ nhưng không phải trỏ tới

danh sách các đỉnh mà là trỏ tới danh sách các cạnh, mỗi cạnh đúng một
lần. Mỗi một cạnh trong danh sách các cạnh trỏ tới hai đỉnh trong danh
sách các đỉnh để xác định một cạnh, và một hoặc hai đa giác mà cạnh đó
thuộc về.
V
2

V
1

V
3

V
4

P
2

P
1

V =(V
1
, V
2
, V
3
, V
4

) = ((x
1
,y
2
,z
1
), , (x
4
, y
4
, z
4
))
P
1
= (1, 2, 4) 1, 2, 3, 4 là chỉ số các đỉnh
P
2
= (4, 2, 3)

20
Như vậy, mô tả đa giác dưới dạng P = (E
l
, , E
n
) và một cạnh được
mô tả: E = (V
l
,V
2

,P
1
,P
2
). Khi một cạnh chỉ thuộc vào một đa giác, P
1
hoặc
P
2
sẽ là rỗng. Hình 1.8 cho ta ví dụ về cách biểu diễn này.




Hình 1.8: Lưới đa giác xác định bởi danh sách các cạnh cho mỗi đa giác
(λ biểu diễn giá trị rỗng).
Khi biểu diễn đa giác bởi các cạnh. Thay bằng cách biểu diễn tất cả
các đa giác thì tránh được các phép cắt, chuyển đổi và chuyển đổi phân
hình. Việc tô màu đa giác cũng được thực hiện dễ dàng. Trong một vài
trường hợp. Khi mô tả cấu trúc của một đối tượng dạng tổ ong 3D, một số
cạnh sẽ là cạnh chung của hai đa giác. Trong trường hợp này, khi mô tả
một cạnh có thể mở rộng ra bao gồm một số đa giác: E = (V
l
, V
2
,

P
1
,


P
2
,

P
n
).
Trong ba cách biểu diễn này (đa giác theo hàm hiện, con trỏ tới danh
sách các đỉnh, con trỏ tới danh sách các cạnh) không dễ dàng xác định
xem những cạnh nào trùng với một đỉnh; tất cả các cạnh đều phải được
kiểm tra. Tất nhiên, các thông tin có thể được thêm vào để xác định các
mối quan hệ .



Hình 1.9: Biểu diễn mặt cầu bằng lưới đa giác
E
1

E
4

E
2

E
3

E

5

V
2

V
1

V
3

V
4

P
2

P
1

V = (V
1
, V
2
, V
3
, V
4
) = ((x
1

,y
2
,z
1
), , (x
4
, y
4
, z
4
))
E
1
= (V
1
, V
2
, P
1
, λ)
E
2
= (V
2
, V
3
, P
2
, λ)
E

3
= (V
3
, V
4
, P
2
, λ)
E
4
= (V
4
, V
2
, P
1
, P
2
)
E
5
= (V
4
, V
1
, P
1
, λ)
P
1

= (E
1
, E
4
, E
5
)
P
2
= (E
2
, E
3
, E
4
)

21
Khi biểu diễn dữ liệu cho bề mặt lưới đa giác hoặc cho một vật thể ba
chiều nói chung trong máy tính, nên nhập dữ liệu thành một file riêng. Điều
này rất tiện lợi khi ta muốn thay đổi vật thể thì chỉ cần thay đổi dữ liệu ở
file riêng này. Ngoài ra, cách tổ chức dữ liệu thành file riêng này còn giảm
được bộ nhớ cho chương trình và thực hiện rất tốt với cả vật thể phức tạp.
Trong CAD, các fìle này đã có định dạng sẵn.
b) Phương trình mặt phẳng
Khi làm việc với nhiều đa giác hoặc lưới đa giác, ta thường cần phải
biết tới phương trình của mặt phẳng chứa đa giác đó. Trong một vài trường
hợp, các phương trình này được biết theo hàm ẩn qua phương pháp xác
định đa giác. Nếu không biết được phương trình, ta có thể sử dụng toạ độ
của ba đỉnh để xác định mặt phẳng.

*) Phương trình hàm ẩn
Phương trình mặt phẳng có thể được biểu diễn theo dạng sau :
F(x, y, z) = Ax + By + Cz + D = 0 (1.l)
Trong đó (x,y,z) xác định một điểm tuỳ ý trong mặt phẳng, các hệ số
A, B, C và D là các hằng số mô tả đặc điểm không gian của mặt phẳng.
Cho ba điểm không thẳng hàng P
l
, P
2
, P
3
, trong mặt phẳng ta có thể
xác định các giá trị A, B, C và D bằng cách giải hệ phương trình tuyến
tính sau:
A
i
D
x
+
B
i
D
y
+
C
i
D
z
= -1; i=1,2,3 (1.2)
Kết quả được:



22

A = y
1
(z
2
– z
3
) + y
2
(z
3
– z
1
) + y
3
(z
1
– z
2
)
B = z
1
(x
2
– x
3
) + z

2
(x
3
– x
1
) + z
3
(x
1
– x
2
)
C = x
1
(y
2
– y
3
) + x
2
(y
3
– y
1
) + x
3
(y
1
– y
2

)
D = -x
1
(y
2
z
3
– y
3
z
2
) - x
2
(y
3
z
1
– y
1
z
3
) - x
3
(y
1
z
2
– y
2
z

1
)
Mặt phẳng của phương trình (1.1) chia không gian 3 chiều thành hai
phần riêng biệt, một bên chứa các điểm có toạ độ (x,y,z) mà F(x,y,z) > 0 và
phần còn lại chứa các điểm có toạ độ (x,y,z) mà F(x,y,z) < 0.
Để xác định dấu của một phần mặt phẳng, người ta thường chọn các
điểm đặc biệt (thường là gốc = (0,0,0) nếu nó không nằm trong mặt phẳng)
và thay thế toạ độ vào F(x,y,z). Chẳng hạn, mặt phẳng 2x-3y+5z+7 = 0 chia
không gian 3D thành hai phần. Phần mặt phẳng chứa điểm gốc tọa độ
O(0,0,0) sẽ chứa tất cả các điểm (x,y,z) có F(x,y,z) > 0
Hướng của mặt phẳng có thể được mô tả bởi pháp tuyến của nó. Ta
tính được bằng tích có hướng của các cặp vector P
1
P
2
và P
l
P
3
(hoặc P
2
P
3

P
2
P
1
,


v.v ).
Vector pháp tuyến này có ba thành phần A, B, C xác định bởi phương
trình (1.3), nếu tích vector này là 0, ba điểm này thẳng hàng và không xác
định được mặt phẳng. Nếu có thể được, ta dùng đỉnh khác để thay thế.
Cho một tích các vector khác 0, ta có thể xác định D bằng cách thay
thế pháp tuyến [A, B, C] và một trong ba điểm vào phương trình (1.l).
Khi đã xác định được phương trình của mặt phẳng bằng cách sử dụng
toạ độ của tất cả các đỉnh, ta có thể đánh giá sự không đồng phẳng của đa

(1.3)

23
giác bằng cách tính các khoảng cách từ mặt phẳng tới mỗi đỉnh. Khoảng
cách d tới đỉnh có toạ độ (x,y,z) là :


Khoảng cách này có thể dương hoặc âm, tuỳ thuộc vào vị trí của điểm
đó đối vị trí mặt phẳng. Nếu đỉnh ở trên mặt phẳng thì d = 0. Tất nhiên, nếu
chỉ để xác định xem điểm đó nằm ở phía bên nào đối với mặt phẳng, ta chỉ
cần xét dấu của d. Ta thấy, mẫu số trong (1.4) là không có ý nghĩa về dấu
của nó. Như vậy, chúng ta chỉ phải quan tâm đến biểu thức tử số trong
phương trình (1.4).
Ta cũng thấy rằng, phương trình của mặt phẳng là không duy nhất; khi
nhân thêm với hằng số k ≠ 0 sẽ làm thay đổi phương trình, nhưng không làm
thay đổi mặt phẳng. Tốt nhất là nên lưu trữ các hệ số của mặt phẳng với
pháp tuyến của nó; chẳng hạn có thể lưu nghịch đảo của độ dài của vector
pháp tuyến.

Khi đó, khoảng cách được tính dễ dàng từ phương trình (1.4).
*) Xác định điểm trên mặt phẳng

Giả thiết rằng mặt phẳng được xác định bởi ba điểm không thẳng hàng
P
l
, P
2
, và P
3
. Một điểm P(x,y,z) nằm trên mặt phẳng, khi đó bộ ba vector
P
1
P, vector P
1
P
2
và vector P
1
P
3
phải là phụ thuộc tuyến tính. Nói một cách
khác, tồn tại hai số thực u và v sao cho:
P
1
P = u P
1
P
2
+ v P
1
P
3

(1.6)

Ax + By + Cz + D
A
2
+ B
2
+ C
2

d =
(1.4)
1
A
2
+ B
2
+ C
2

k =
(1.5)

24
Như vậy :

trong đó u và v là hai số thực.
1.3. Rút gọn bề mặt trong biểu diễn bề mặt vật thể ba chiều
Mục tiêu của thực tại ảo là làm thế nào có thể biểu diễn được các đối
tượng vật thể trong không gian ba chiều qua mô hình biểu diễn. Ở trường

hợp không thể mô tả đối tượng bằng toán học, người ta sử dụng phương
pháp mô hình liệt kê các tọa độ của tất cả các điểm thuộc vật thể. Muốn
thực hiện được điều này, máy tính cần phải có khả năng xử lý và lưu trữ dữ
liệu thật tốt, điều này làm giá thành máy tính trở nên đắt tiền, và như vậy
cũng dẫn đến việc khó phổ cập các ứng dụng đồ họa hơn.
Trong trường hợp có thể biểu diễn các vật thể trong không gian ba
chiều bằng các mô hình toán học, người ta cũng tìm cách làm sao cho việc
mô tả mô hình càng đơn giản càng tốt ở mức thị giác của con người chấp
nhận được và như vậy, việc lưu trữ, xử lý một mô hình đối tượng vật thể
trong thực tại ảo sẽ không có nhu cầu cao lắm về tốc độ của bộ vi xử lý và
bộ nhớ RAM; Điều này cũng có nghĩa là giá thành máy tính sẽ rẻ hơn, và
như vậy cũng sẽ dẫn đến dễ dàng hơn trong việc phổ cập các ứng dụng thực
tại ảo.
(1.7)
(1.8)

25
Người ta thường biểu diễn các vật thể một cách gần đúng bằng các đa
diện, đây là một phương pháp rất phổ biến trong đồ hoạ máy tính. Với cách
biểu diễn này, chúng ta có thể lưu trữ một cách thuận tiện và kết xuất
nhanh chóng các hình ảnh mô phỏng vật thể theo yêu cầu.
Trong thực tế, phương pháp này đã được đưa vào hầu hết các phần
mềm thiết kế đồ hoạ ba chiều, các thư viện lập trình và là tác nhân phát
triển cho các trò chơi ba chiều (3D game engine). Ngoài ra, hầu hết những
bộ tăng tốc đồ hoạ (graphics accelerator) hiện nay đã hỗ trợ phương pháp
này ngay ở mức phần cứng.
Vấn đề ở đây là, để thể hiện được một vật thể bất kỳ trong không gian
ba chiều với một chất lượng như thật thì mô hình biểu diễn thường đòi hỏi
số lượng mặt rất lớn, đơn giản như thể hiện một mặt cầu với độ mịn cao
phải cần tới hàng ngàn mặt. Theo một khảo sát cho thấy, một máy vi tính

trung bình hiện nay có thể tính toán và thể hiện khoảng 15 triệu mặt trong
một giây; ở tốc độ video hiện tại là 30 hình/s (NTSC) chúng ta sẽ bị giới
hạn khoảng 500.000 mặt cho mọi khuôn hình. Với tốc độ xử lý của máy vi
tính cá nhân (PC) như vậy, chúng ta thấy rằng, còn rất nhiều hạn chế đối
với việc phổ cập các ứng dụng thực tại ảo trong không gian ba chiều
hiện nay.











a) - Quan sát vật thể ở gần - mô hình biểu diễn ~ 6000 mặt
b) - Quan sát vật thể ở xa
- mô hình biểu diễn ~ 100 mặt
Hình 1.10: Minh họa yêu cầu chất lượng quan sát vật thể trong thực tế

26
Các thuật toán "giảm thiểu đa diện" biểu diễn một vật thể trong không
gian ba chiều hiện nay là không nhiều đối với đa số các ứng dụng thực tại
ảo. Trong thực tế, không phải lúc nào chúng ta cũng cần biểu diễn một vật
thể trong không gian ba chiều với chất lượng như thật. Hơn nữa, mức độ
chất lượng hình ảnh của cùng một vật thể khi hiển thị cũng có thể thay đổi
theo cách nhìn (view). Ví dụ, khi quan sát cận cảnh một vật thể, chúng ta
cần số lượng mặt nhiều hơn (khoảng 10.000 mặt) để việc mô hình hoá có

thể đạt đến một chất lượng như thật, tuy nhiên, khi khoảng cách tăng lên,
vật thể càng nhỏ đi đối với mắt người quan sát thì số lượng mặt biểu diễn
có thể giảm đi mà vẫn đảm bảo cho người quan sát vẫn có thể hình dung ra
được vật thể.
Khi khoảng cách quan sát rất xa, vật thể thực chất chỉ được biểu diễn
bởi một vài điểm ảnh trong khung hình, khi đó thậm chí chỉ cần rất ít mặt
(khoảng 100 mặt) chúng ta cũng đủ để biểu diễn vật thể đó trong không
gian ba chiều. Hình 1.10 ở trên minh họa cho điều này.
Như vậy trong các ứng dụng đồ hoạ ba chiều nảy sinh một vấn đề là
nghiên cứu một lớp các thuật toán nhằm giảm bớt số mặt của một đa diện
biểu diễn vật thể sao cho vẫn giữ lại được một cách tương đối hình dạng
ban đầu của vật thể đó. Tùy theo cách phân loại, các tiêu chí phân loại có
thể kể tới là:
- Dựa trên ứng dụng: Một số thuật toán giới hạn các đối tượng vật
thể của mình, ở một số dạng nhất định tuỳ theo ứng dụng của nó. Ví dụ có
một loạt thuật toán chỉ nhằm giảm thiểu mặt của địa hình được dùng trong
các ứng dụng GIS hay các bài toán mô phỏng địa hình. Một số khác được
dành cho các ứng dụng tổng quát nên các ràng buộc vào dữ liệu đầu vào
ít hơn.

×