Tải bản đầy đủ

Nghiên cứu một số kỹ thuật tạo bóng khối trong đồ họa ba chiều

i

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Bùi Phương Thủy

NGHIÊN CỨU MỘT SỐ KỸ THUẬT TẠO BÓNG
KHỐI TRONG ĐỒ HỌA BA CHIỀU
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TS Đỗ Năng Toàn

Thái Nguyên - 2014


ii


LỜI CAM ĐOAN
Luận văn là sự nghiên cứu, tổng hợp các kiến thức mà học viên đã thu thập
được trong quá trình học tập tại Đại học Công nghệ thông tin và truyền thông – Đại
học Thái Nguyên, dưới sự hướng dẫn, giúp đỡ của các thầy cô và bạn bè đồng
nghiệp. Đặc biệt là sự hướng dẫn, giúp đỡ của thầy giáo PGS.TS Đỗ Năng Toàn –
Viện Công nghệ thông tin – Viện KHCN Việt Nam.
Học viên cam đoan luận văn không phải là sản phẩm sao chép của bất kỳ tài
liệu khoa học nào.
Thái Nguyên, ngày 5 tháng 5 năm 2014
Học viên

Bùi Phương Thủy


3

LỜI CẢM ƠN
Luận văn sẽ không thể hoàn thành nếu không có sự động viên, hỗ trợ hết
mình của rất nhiều người. Trước hết tôi xin gửi lời tri ân đến PGS.TS Đỗ Năng
Toàn người thầy đã chỉ bảo, giúp đỡ tận tình trong cả quá trình học tập và hoàn
thiện luận văn.
Tôi xin gửi lời cảm ơn đến các thầy cô giáo tại trường Đại học Công nghệ
thông tin và truyền thông – Đại học Thái Nguyên, những người đã trang bị các kiến
thức cơ sở, nền tảng cho việc nghiên cứu, tiếp thu những tri thức mới, mà từ đó tôi
có thể hoàn thành tốt luận văn của mình, xa hơn nữa là hoàn thành tốt những dự án,
công việc trong tương lai.
Quá trình thực hiện đề tài không tránh khỏi những thiếu sót. Tôi hi vọng sẽ
được sự góp ý chân thành từ phía các thầy, cô giáo, bạn bè, đồng nghiệp để đề tài
nghiên cứu được hoàn thiện hơn
Xin chân trọng cảm ơn!


4

MỤC LỤC
TRANG PHỤ BÌA

LỜI CAM ĐOAN ............................................................................................. i
LỜI CẢM ƠN .................................................................................................


iii
MỤC
LỤC
....................................................................................................... iv DANH
MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .............................. vi DANH
MỤC CÁC BẢNG ............................................................................ vii DANH
MỤC CÁC HÌNH ( HÌNH VẼ, ẢNH CHỤP, ĐỒ THỊ…) .......... viii MỞ
ĐẦU .......................................................................................................... 1
Chương 1. KHÁI QUÁT VỀ ĐỒ HỌA BA CHIỀU VÀ BÀI TOÁN TẠO
BÓNG ............................................................................................................... 5
1.1. Khái quát về đồ họa ba chiều ........................................................... 5
1.1.1. Quy trình hiển thị ....................................................................... 6
1.1.2. Tổng quan biểu diễn điểm và các phép biến đổi ..................... 7
1.1.3. Phép biến đổi hiển thị............................................................... 11
1.1.4. Mô hình Wireframe.................................................................. 13
1.1.5. Mô hình Wireframe với các phép chiếu ................................. 15
1.1.6. Phép biến đổi cổng nhìn ........................................................... 20
1.1.7. Bộ đệm và các phép kiểm tra .................................................. 21
1.2. Bài toán tạo bóng trong đồ họa ba chiều....................................... 22
1.2.1. Nguồn sáng và phân loại nguồn sáng ..................................... 22
1.2.2. Phân loại bóng........................................................................... 29
Chương 2. MỘT SỐ KỸ THUẬT TẠO BÓNG KHỐI TRONG ĐỒ HỌA
BA CHIỀU ..................................................................................................... 31
2.1. Giới thiệu .......................................................................................... 31
2.2. Danh sách cạnh viền........................................................................ 33
2.3. Xác định tứ giác bao quanh............................................................ 38
2.4. Kỹ thuật tạo bóng Z - Pass ............................................................. 42
2.5. Kỹ thuật tạo bóng Z - Fail ................................................................. 47
2.6. So sánh giữa hai thuật toán ............................................................ 52
CHƯƠNG 3. CHƯƠNG TRÌNH THỬ NGHIỆM..................................... 53
3.1. Bài toán............................................................................................. 53
3.2. Phân tích, lựa chọn giải pháp ......................................................... 53
3.3. Kết quả thử nghiệm......................................................................... 60
KẾT LUẬN .................................................................................................... 65


TÀI LIỆU THAM KHẢO ............................................................................ 66


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
STT

Ký hiệu/
Chữ viết tắt

Viết đầy đủ

Ý nghĩa

1

2D

2 Dimentional

Hai chiều

2

3D

3 Dimentional

Ba Chiều

3

BRDF

4

Bidirectional

reflectance Hàm phân phối phản xạ hai

distribution function

chiều

CPU

Central Processing Unit

Bộ xử lý trung tâm

5

GPU

Graphical Processing Unit

6

HMD

Head Mounted Displays

Bộ xử lý đồ họa đối khi được
hiểu đồng nghĩa với card đồ họa
Mũ đội đầu có màn hiển thị


vii

DANH MỤC CÁC BẢNG
Bảng 1.1. Bảng danh sách các cạnh và đỉnh biểu diễn vật thể ............................. 14
Bảng 2.1. So sánh giữa hai thuật toán ................................................................... 53


8

DANH MỤC CÁC HÌNH ( HÌNH VẼ, ẢNH CHỤP, ĐỒ THỊ…)
Hình 1.1. Một cảnh đồ họa ba chiều ........................................................................ 5
Hình 1.2. Quy trình hiển thị đối tượng ba chiều ......................................................6
Hình 1.3 Tổng quan về hiển thị ba chiều và các phép chiếu ................................ 11
Hình 1.4 Kết quả phép tịnh tiến ............................................................................ 12
Hình 1.5. Vật thể ba chiều được biểu diễn bằng mô hình khung nối kết .............. 13
Hình 1.6. Phép chiếu song song (a) và phép chiếu phối cảnh (b) ......................... 16
Hình 1.7. Phép chiếu trực giao.............................................................................. 17
Hình 1.8. Kết quả của ba phép chiếu trực giao .................................................... 17
Hình 1.9. Phép chiếu xiên .................................................................................... 18
Hình 1.10. Phép chiếu phối cảnh đơn giản ........................................................... 19
Hình 1.11. Khả năng quan sát của con người tương ứng với từng mức sóng ...... 20
Hình 1.12. Chiếc ấm được chiếu bằng Ambient Light ......................................... 25
Hình 1.13. Ấm chè được chiều bằng Diffuse Light .............................................. 26
Hình 1.14. Ấm chè được chiếu bằng Specular Light ............................................ 26
Hình 1.15. Sự phản xạ của ánh sáng .................................................................... 27
Hình 1.16. Sự phản xạ không toàn phần của ánh sáng ........................................ 28
1.17
. ...................................................................................................................... 29
2.1. Bối cảnh không có đổ bóng .................................................................. 32
2.2. Bối cảnh có bóng khối .......................................................................... 33
2.3. Mô tả các phần của bóng khối .............................................................. 33
Hình 2.4. Biểu diễn của một căn nhà .................................................................... 34
Hình 2.5. Cạnh viền (Silhouette Edge) được tô đỏ ............................................... 35
Hình 2.6. Khi nhìn từ vị trí của nguồn sáng ta sẽ không thấy bóng và rất dễ để xác
định cạnh và đỉnh viền .......................................................................................... 35
Hình 2.7. Cạnh viền là cạnh có một mặt kề hướng ánh sáng còn mặt còn lại thì
không ..................................................................................................................... 35
Hình 2.8. Dựng shadow volume mesh bằng các thêm vào các mặt phụ ............... 38


9

................................................... 40

...................................................................................................... 40
Hình 2.11. Khối bao của tam (ABC) giác với nguồn sáng điểm L ........................ 41
Hình 2.12. Đường bao của một đa giác trong không gian hai chiều ................... 41
Hình 2.13. Tư tưởng chính của Z-Pass ................................................................. 43
........................................ 46
............................................... 47
........................................
47
.48
Hình 2.18. Thuật toán tạo bóng khối với kỹ thuật z-fail....................................... 49
Hình 2.18. Tư tưởng của Z-Fail ............................................................................ 50
Hình 3.1. Giao diện mô tả bóng khối .................................................................... 69
Hình 3.2. Giao diện mô tả bóng cứng tạo ra từ bóng khối .................................... 69
3.3. Giao diện mô tả b
3.4. Giao diện mô tả b
-

-fail .......................... 71
. ................................................ 72


1

MỞ ĐẦU
1. Lý do chọn đề tài
Số hóa bởi Trung tâm Học liệu

http://www.lrc-tnu.edu.vn/


Năm 1966, Sutherland ở Học viện Công nghệ Massachusetts là người đầu
tiên đặt nền bóng cho đồ họa ba chiều bằng việc phát minh ra thiết bị hiển thị trùm
đầu (head-amounted display) được điều khiển bởi máy tính đầu tiên. Nó cho phép
người nhìn có thể thấy được hình ảnh dưới dạng lập thể ba chiều. Từ đó đến nay đồ
họa ba chiều trở thành một trong những lĩnh vực phát triển rực rỡ nhất của đồ họa
máy tính.
Số hóa bởi Trung tâm Học liệu

http://www.lrc-tnu.edu.vn/


Đồ họa máy tính là một lĩnh vực được quan tâm phát triển, nó đang ngày
càng chứng tỏ vai trò của mình trong sự phát triển của công nghệ thông tin nói
riêng và các lĩnh vực của đời sống, xã hội nói chung. Nó được ứng dụng rộng rãi
trong hầu hết tất cả các lĩnh vực như Điện ảnh, Hoạt hình, kiến trúc và các ứng
dụng xây dựng các mô hình thực tại ảo…..Và không thể không nhắc đến vai trò tối
quan trọng của đồ họa ba chiều trong việc tạo ra các game sử dụng đồ họa hiện nay.
Việc sử dụng đồ họa ba chiều trong game làm cho người chơi thích thú và có cảm
Số hóa bởi Trung tâm Học liệu

http://www.lrc-tnu.edu.vn/


giác như đang sống trong một thế giới thực. Có thể nói đồ họa ba chiều đã đang và
sẽ tạo nên một nền công nghiệp game phát triển mạnh mẽ.
Mục đích chính của đồ họa ba chiều là tạo ra và mô tả các đối tượng, các mô
hình trong thế giới thật bằng máy tính sao cho càng giống với thật càng tốt. Việc
nghiên cứu các phương pháp các kỹ thuật khác nhau của đồ họa ba chiều cũng chỉ
hướng đến một mục tiêu duy nhất đó là làm sao cho các nhân vật, các đối tượng,
Số hóa bởi Trung tâm Học liệu

http://www.lrc-tnu.edu.vn/


các mô hình được tạo ra trong máy tính giống thật nhất. Và một trong các phương
pháp đó chính là tạo bóng cho đối tượng.
Thuật toán tạo bóng bằng kỹ thuật sử dụng bóng khối được đề xuất đầu tiên
bởi Frank Crow vào năm 1977. Theo đó ông ta vẽ một khối mà bị che lấp ánh sáng
bởi vật tạo bóng. Mọi vật thể nằm trong khối đó được gọi là nằm trong bóng.

Số hóa bởi Trung tâm Học liệu

http://www.lrc-tnu.edu.vn/


Xuất phát từ thực tế đó, học viên lựa chọn đề tài: “Nghiên cứu một số kỹ
thuật tạo bóng khối trong đồ hoạ ba chiều”. Sự thành công của đề tài sẽ góp phần
nâng cao chất lượng của hình ảnh trong các ngành công nghiệp và giải trí.

Số hóa bởi Trung tâm Học liệu

http://www.lrc-tnu.edu.vn/


2

2. Đối tượng và phạm vi nghiên cứu:
Đối tượng của đề tài
Đồ họa ba chiều
Bài toán tạo bóng
Một số kỹ thuật tạo bóng khối
Phạm vi nghiên cứu
Đề tài nghiên cứu về các kiến thức tổng quan về đồ họa ba chiều: cách hiển
thị vật thể ba chiều
Đề tài khái quát về bài toán tạo bóng trong đồ họa ba chiều. Tìm hiểu các dữ
liệu đầu vào và đầu ra của bài toán: nguồn sáng, vật chắn sáng và bóng.
Đề tài giới hạn trong phạm vi nghiên cứu hai kỹ thuật tạo bóng khối trong đồ
họa ba chiều: kỹ thuật tạo bóng Z-Pass, kỹ thuật tạo bóng Z-Failr
Khảo sát, phân tích, thiết kế và xây dựng phần mềm thử nghiệm
3. Hướng nghiên cứu của đề tài
Về khoa học
Đề tài tập trung nghiên cứu khái quát về các kiến thức cơ bản của đồ họa ba
chiều và tạo bóng
Nghiên cứu một số kỹ thuật tạo bóng khối trong đồ họa ba chiều
Nghiên cứu đề xuất kiến trúc, công nghệ thích hợp cho việc phát triển
ứng dụng
Về xây dựng phần mềm thử nghiệm
Tìm hiểu, khảo sát bài toán
Phân tích, lựa chọn giải pháp xây dựng phần mềm thử nghiệm đưa ra kết quả
tạo bóng khối bằng hai kỹ thuật: kỹ thuật tạo bóng Z-Pass, kỹ thuật tạo bóng Z-Failr
4. Phương pháp nghiên cứu
Thu thập, đọc và phân tích các tài liệu và thông tin liên quan đến đề tài.
Phân tích, so sánh với các mô hình khác


3

Dựa trên việc tìm hiểu các thuật toán của hai kỹ thuật tạo bóng khối để đưa
ra so sánh và lựa chọn phương pháp trong trường hợp các trường hợp khác nhau
Kết hợp các nghiên cứu trước đây của các tác giả trong và ngoài nước cùng
với sự chỉ bảo, góp ý của Thầy hướng dẫn để hoàn thành nội dung nghiên cứu.
Thực nghiệm cài đặt ứng dụng để minh họa các vấn đề trình bày trong đề tài.
5. Ý nghĩa khoa học của đề tài
Về khoa học
Hiểu được tổng quan các kiến thức cơ bản của đồ họa ba chiều và bài toán
tạo bóng.
Nghiên cứu các kỹ thuật tạo bóng khối trong đồ họa ba chiều, trợ giúp cho
việc nâng cao chất lượng hình ảnh.
Về thực tiễn
Cài đặt hoàn chỉnh các thuật toán hiển thị đối tượng, nguồn sáng của bài toán
tạo bóng.
Xây dựng chương trình thử nghiệm dùng hai phương pháp tạo bóng khối đã
nêu đáp ứng và trợ giúp người sử dụng dễ dàng, trực quan và nhanh chóng.
Cấu trúc của luận văn bao gồm “Phần mở đầu”, “Phần kết luận” và ba
chương nội dung, cụ thể:
Chương 1: Khái quát về đồ họa ba chiều và bài toán tạo bóng. Nội dung
chính của “Chương 1” là những vấn đề cơ bản về đồ họa ba chiều, ứng dụng đồ họa
ba chiều, đồng thời nội dung của chương 1 cũng đề cập đến một số lý thuyết cơ bản
về ánh sáng, nguồn sáng, bóng và các mô hình của chúng từ đó làm cơ sở cho các
nội dung được trình bày trong “Chương 2”.
Chương 2: Một số kỹ thuật tạo bóng khối trong đồ họa ba chiều. Đây là
chương nội dung chính của luận văn, nó tập chung trình bày hai kỹ thuật chính tạo
bóng khối của đối tượng đó là “kỹ thuật tạo bóng Z-Pass ”, và “kỹ thuật tạo bóng ZFail ”. Với mỗi loại kỹ thuật đều có những phương pháp thể hiện khác nhau, mà
phần nội dung này của luận văn cũng đề cập đến.


4

Chương 3: Chương trình thử nghiệm. Đây là chương học viên giới thiệu về
một chương trình thử nghiệm được xây dựng nhằm thể hiện cho một số kết quả đã
được trình bày, tổng hợp trong luận văn.


5

Chương 1.
KHÁI QUÁT VỀ ĐỒ HỌA BA CHIỀU VÀ BÀI TOÁN TẠO BÓNG
1.1.

Khái quát về đồ họa ba chiều
Khi chúng ta mô hình hóa và hiển thị một cảnh ba chiều, ta cần phải xem xét

rất nhiều khía cạnh và vấn đề khác nhau chứ không đơn giản là thêm vào tọa độ thứ
ba cho các đối tượng. Bề mặt đối tượng có thể xây dựng bởi nhiều tổ hợp khác nhau
của các mặt phẳng và các mặt cong. Ngoài ra, đôi khi chúng ta cũng cần mô tả một
số thông tin về bên trong các đối tượng. Các công cụ hỗ trợ đồ họa (graphics
package) thường cung cấp một số hàm hiển thị các thành phần bên trong, những
đường nét tiêu biểu hoặc hiển thị một phần của đối tượng ba chiều (solid object).
Ngoài ra, các phép biến đổi hình học thường được sử dụng nhiều hơn và đa dạng
hơn trong đồ họa ba chiều so với trong đồ họa hai chiều. Phép biến đổi hệ quan sát
trong không gian ba chiều phức tạp hơn nhiều so với trong không gian hai chiều do
chúng ta phải chọn lựa nhiều tham số hơn khi mô tả một cảnh ba chiều sẽ xuất hiện
trên màn hình như thế nào. [1],[3].

Hình 1.1. Một cảnh đồ họa ba chiều
Các mô tả về một cảnh ba chiều phải đi qua một quy trình xử lí gồm nhiều
công đoạn như phép biến đổi hệ tọa độ quan sát và phép chiếu chuyển cảnh từ hệ
tọa độ quan sát ba chiều xuống hệ tọa độ thiết bị hai chiều. Những phần nhìn thấy


6

được của cảnh, ứng với một hệ quan sát được chọn nào đó, phải được xác định và
cuối cùng, các thuật toán vẽ mặt sẽ được áp dụng nhằm tạo ra hình ảnh trung thực
(gần với thực tế) của cảnh.
1.1.1.

Quy trình hiển thị

Quy trình xử lí thông tin trong đồ họa ba chiều là một chuỗi các bước nối
tiếp nhau, kết quả của mỗi bước sẽ là đầu vào của bước tiếp theo.
Biến đổi mô hình: biến đổi từ hệ tọa độ đối

Modeling
transformation

tượng (object-space) sang hệ tọa độ thế
giới thực thực (world space)

Trivial

Tối ưu hóa: loại bỏ các đối tượng không

Rejection

nhìn thấy được

Illumination

Chiếu sáng đối tượng

Viewing
Transformation

Chuyển từ world space sang eye space

Clipping

Loại bỏ phần nằm ngoài viewing space

Projection

Chiếu từ eye space xuống screen space

Rastorization

Chuyển đối tượng sang dạng pixel

Display

Hiển thị đối tượng
Hình 1.2. Quy trình hiển thị đối tượng ba chiều

Quy trình bắt đầu bằng việc xây dựng các mô hình đối tượng. Các mô hình
này thường được mô tả trong không gian ba chiều (x,y,z). Các mô hình thường thể
hiện vật thể (solid) hoặc bề mặt (boundaries) của đối tượng. Như vậy ta có hai kiểu
mô hình hóa. Trong solid modeling các đối tượng đồ họa cơ sở thường được dùng
để mô tả các đối tượng có thể tích (volume). Trong boundary representations(Breps), các đối tượng được định nghĩa bởi bề mặt của chúng.
Các mô hình thường được biểu diễn trong một hệ tọa độ cục bộ, mà ta gọi là
hệ tọa độ đối tượng. Trong hệ tọa độ này chỉ có bản thân đối tượng được định nghĩa,
vì vậy gốc tọa độ và đơn vị đo lường thường được chọn sao cho việc biểu diễn đối
tượng tiện lợi nhất.


7

Bước đầu tiên trong quy trình hiển thị là biến đổi đối tượng từ không gian
đối tượng (object-space) vào một không gian chung gọi là không gian thực (world
space). Trong không gian này các đối tượng, nguồn sáng, và người quan sát cùng
tồn tại. Bước này được gọi là giai đoạn biến đổi mô hình (modeling transformation).
Bước tiếp theo là một bước tối ưu hóa. Trong giai đoạn loại bỏ đơn giản
(trivial rejection) ta cần loại trừ tất cả các đối tượng không thể nhìn thấy. Điều này
giúp chúng ta tránh được việc xử lí một số phần không cần thiết của cảnh (scene)
mà ta đang chuẩn bị hiển thị ở các bước sau.
Tiếp theo ta phải chiếu sáng (illumination) các đối tượng có thể nhìn thấy
được bằng cách gán cho chúng màu sắc dựa trên các đặc tính của các chất tạo nên
vật và các nguồn sáng tồn tại trong cảnh.
Sau khi chiếu sáng, ta phải thực hiện một phép biến đổi hệ tọa độ để đặt vị trí
quan sát (viewing position) về gốc tọa độ và mặt phẳng quan sát (viewing plane) về
một vị trí mong ước. Bước này gọi là bước đổi hệ quan sát. Sau bước này, các đối
tượng được chuyển từ không gian thực sang không gian quan sát (eye space).
Trong không gian quan sát, ta phải thực hiện việc xén các đối tượng trong
cảnh để cảnh nằm gọn trong một phần không gian chóp cụt mà ta gọi là viewing
frustum. Bước này sẽ loại bỏ hoàn toàn các đối tượng (các mảnh đối tượng) không
nhìn thấy được trong ảnh.
Bước tiếp theo ta sẽ chiếu các đối tượng xuống mặt phẳng hai chiều. Bước
Projection thực hiện phép biến đổi từ không gian quan sát sang không gian màn
hình (screenspace).
Trong bước rời rạc hóa (rasterization) ta sẽ chuyển đối tượng thành các pixel.
Cuối cùng, toàn cảnh sẽ được hiển thị lên màn hình [1].
1.1.2.

Tổng quan biểu diễn điểm và các phép biến đổi

Sự chuyển đổi từ tọa độ thế giới sang tọa độ của thiết bị là một chuỗi của các
phép biến đổi affine và các phép chiếu trong không gian Decarts ba chiều.
Các phép biến đổi affine và các phép chiếu trong không gian Decarts ba
chiều có thể được biểu diễn tốt nhất bởi các ma trận 4x4 tương ứng với các tọa độ


8

đồng nhất (Homogeneous coordinates) (x,y,z,w). Điểm ba chiều với tọa độ đồng
x y z
, ,
w w w

nhất (x,y,z,w) sẽ có tọa độ affine là

Mối quan hệ giữa tọa độ affine và tọa độ đồng nhất không phải là quan hệ 1-1.
Cách đơn giản nhất để chuyển từ tọa độ affine (x,y,z) của một điểm sang tọa độ
đồng nhất là đặt w=1: (x,y,z,1). Chúng ta thừa nhận rằng tất cả các tọa độ thế giới
được biểu diễn bằng cách này.
Ta sẽ biểu diễn các phép biến đổi affine (như là co giãn (scaling
transformations), phép quay (rotations), và phép tịnh tiến (translations)) bằng các
ma trận mà sẽ không làm thay đổi thành phần w (w=1).
● Tịnh tiến bởi véc tơ T (Tx ,Ty ,Tz ) :

M t (T
)

1 0 0 Tx

x

x

Tx

0 1 0 Ty

y
M t (T )

y

Ty

0 0 1 Tz
0 0 0

M s (S )

0

0

Sy

0
0

0
0

1

z
1

1

● Phép co giãn theo các nhân tố S
Sx

z Tz

0
0

0
0

Sz

0

0

1

(S x , S y , S z ) :
x

M s (S )

y
z
1

S

x

xSy
ySz
z
1

● Phép quay quanh gốc tọa độ mà theo đó tập các véc tơ chuẩn tắc là
u , v , , trực giao từng đôi một, sẽ được chuyển về X , Y , Z .
n

u
M r (u , v ,
n)

x

0 vx

u

u

y

v

y

0 nx n y
0
0 0 0

z

vz
nz
1

Các đối tượng trong mô hình ba chiều được xác định với tọa độ thế giới. Cùng
với các tọa độ của đối tượng, người dùng cũng phải xác định vị trí và hướng của


camera ảo trong không gian ba chiều và xác định vùng nhìn (là một vùng không
gian được hiển thị trên màn hình).
Việc chuyển từ các tọa độ thế giới sang tọa độ màn hình được thực hiện theo 3
bước (hình 1.3):
Bước đầu tiên thực hiện một phép biến đổi để đưa camera ảo trở về vị trí và
hướng tiêu chuẩn. Khi đó điểm nhìn (eyepoint) sẽ được đặt ở gốc tọa độ, hướng
nhìn trùng với hướng âm của trục Z. Trục X chỉ về phía phải và trục Y chỉ lên phía
trên trong màn hình. Hệ tọa độ mới này sẽ được gọi là Hệ tọa độ Mắt (Eye
Coordinate System). Phép biến đổi từ tọa độ thế giới sang các tọa độ mắt là một
phép biến đổi affine, được gọi là phép biến đổi hiển thị (Viewing Transformation).
Cả tọa độ thế giới và tọa độ mắt đều được biểu diễn bởi tọa độ đồng nhất
(Homogeneous Coordinates) với w=1.
Bước thứ 2. Tọa độ mắt được chuyển qua tọa độ của thiết bị chuẩn hóa
(Nomalized Device Coordinates) để cho vùng không gian mà ta muốn nhìn được
đặt trong một khối lập phương tiêu chuẩn:
1 x

1,

1 y

1,

1 z

1

Các điểm ở gần điểm nhìn (điểm đặt camera) hơn sẽ có thành phần z nhỏ hơn.
Bước này sẽ gồm 3 bước con.
Bước cuối cùng, phép biến đổi cổng nhìn (Viewport Transformation) là sự
kết hợp của 1 phép co giãn tuyến tính và 1 phép tịnh tiến. Sẽ chuyển thành phần x
1

và y của tọa độ thiết bị chuẩn hóa
màn hình. Thành phần z ( 1 z

x

1 , 1

y

1 sang tọa độ Pixel của

1 ) được chuyển sang đoạn [0,1] và sẽ được sử

dụng như là giá trị chiều sâu (Depth-Value) trong thuật toán Z-Buffer (bộ đệm Z)
được sử dụng cho việc xác định mặt sẽ được hiển thị.
Bước thứ 2 bao gồm 3 bước con.
Một phép chiếu chuyển từ vùng nhìn sang 1 khối lập phương tiêu chuẩn với tọa
độ đồng nhất: 1 x

1, 1

y

1, 1

z

1 . Trong trường hợp sử dụng

phép chiếu trực giao, vùng nhìn này sẽ có dạng một ống song song ba chiều với
các mặt song song với các mặt của hệ tọa độ mắt. Trong trường hợp sử dụng


phép chiếu đối xứng, vùng nhìn sẽ là một hình tháp cụt với đầu mút là gốc tọa
độ của hệ tọa độ mắt. Hệ tọa độ đồng nhất (4 thành phần) thu được sau phép
chiếu được gọi là hệ tọa độ cắt (Clipping Coordinate System). Phép chiếu sẽ là
một phép biến đổi affine trong trường hợp phép chiếu là phép chiếu trực giao.
Nếu phép chiếu là phép chiếu phối cảnh sẽ không phải là một phép biến đổi
affine (Vì w sẽ nhận một giá trị khác 1)
Bước tiếp theo, các vùng của không gian hiển thị mà không nằm trong
khối tiêu chuẩn đó (Khối này còn được gọi là khối nhìn tiêu chuẩn) sẽ bị
cắt đi. Các đa giác, các đường thẳng được chứa trong hoặc là có một phần
ở trong sẽ được thay đổi để chỉ phần nằm trong khối nhìn tiêu chuẩn mới
được giữ lại. Phần còn lại không cần quan tâm nhiều nữa.
Sau khi cắt gọt, các tọa độ đồng nhất sẽ được chuyển sang tọa độ của
thiết bị bằng cách chia x,y,z cho w. Nếu w nhận 1 giá trị đúng qua phép
chiếu, thì phép chia này sẽ cho các động phối cảnh mong muốn trên màn
hình. Vì lý do đó, phép chia này còn được gọi là phép chia phối cảnh
(Perspective Division)


Hình 1.3 Tổng quan về hiển thị ba chiều và các phép chiếu.
1.1.3.

Phép biến đổi hiển thị

Phép biến đổi hiển thị sẽ đưa một camera ảo được cho tùy ý về một camera
với điểm nhìn trùng với gốc tọa độ và hướng nhìn dọc theo chiều âm của trục Z
(xem hình 1.3) Trục Y sau phép biến đổi tương ứng sẽ chỉ lên phía trên của màn
hình. Trục X sẽ chỉ về phía phải.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×