ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
Nguyễn Anh Dũng
KỸ THUẬT RAY TRACING TRONG SINH ẢNH
VÀ ỨNG DỤNG
LUẬN VĂN THẠC SỸ NGÀNH KHOA HỌC MÁY TÍNH
Thái Nguyên - 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
Nguyễn Anh Dũng
KỸ THUẬT RAY TRACING TRONG SINH ẢNH
VÀ ỨNG DỤNG
Chuyên ngành: Khoa học máy tính
Mã số:
LUẬN VĂN THẠC SỸ NGÀNH KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. Nguyễn Thị Hồng Minh
Thái Nguyên - 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung luận văn này do tôi tự sưu tầm, tra cứu
và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài. Nội dung luận văn này
chưa từng được công bố hay xuất bản dưới bất kỳ hình thức nào và cũng không
được sao chép từ bất kỳ một công trình nghiên cứu nào.
Phần mã nguồn của chương trình do tôi tự thiết kế và xây dựng, trong đó
có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất bản
công khai và miễn phí trên mạng Internet.
Nếu sai tôi xin tôi xin hoàn toàn chịu trách nhiệm.
Thái Nguyên, ngày 09 tháng 10 năm 2010.
Người cam đoan
Nguyễn Anh Dũng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
LỜI CẢM ƠN
Sau một thời gian nỗ lực thực hiện, luận văn nghiên cứu “Kỹ thuật Ray
tracing trong sinh ảnh và ứng dụng” đã cơ bản hoàn thành. Ngoài sự cố gắng hết
mình của bản thân, em đã nhận được nhiều sự khích lệ từ phía nhà trường, thầy
cô, gia đình và bạn bè.
Trước hết em xin cảm ơn gia đình, người thân đã luôn động viên và tạo
mọi điều kiện tốt nhất để em được học tập và hoàn thành luận văn này.
Em xin cảm ơn quý thầy cô trường Đại học Thái Nguyên đã truyền đạt
những kiến thức quý báu cho em trong quá trình học tập. Đặc biệt, em xin bày tỏ
sự biết ơn chân thành đến cô giáo, TS.Nguyễn Thị Hồng Minh, người đã tận tình
hướng dẫn và giúp đỡ em trong quá trình làm luận văn tốt nghiệp.
Xin cảm ơn tất cả bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình
học tập và hoàn thành luận văn tốt nghiệp này.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
MỤC LỤC
Trang
Phần mở đầu ........................................................................................................ 1
Chương 1. Khái quát về đồ họa máy tính ba chiều và kỹ thuật kết xuất đồ
họa ......................................................................................................................... 4
1.1. Khái quát về đồ họa máy tính ba chiều ...................................................... 4
1.1.1. Đồ họa máy tính .................................................................................. 4
1.1.2. Các kỹ thuật đồ họa ............................................................................. 5
1.1.3. Đồ họa máy tính ba chiều (3D - Dimensions) .................................... 5
1.2. Các kỹ thuật kết xuất đồ họa ba chiều ..................................................... 11
1.2.1. Kết xuất đồ họa ba chiều ................................................................... 11
1.2.2. Kỹ thuật kết xuất Ray tracing ........................................................... 18
Chương 2. Kỹ thuật Ray tracing ..................................................................... 22
2.1. Tính toán đường đi của ánh sáng ............................................................. 22
2.1.1. Tia sáng và Tam giác ........................................................................ 22
2.1.2. Tia sáng và Tứ giác ........................................................................... 24
2.1.3. Tia sáng và các mặt bậc hai .............................................................. 25
2.1.4. Tia sáng và Mặt ẩn ............................................................................ 27
2.1.5. Tia sáng và Mặt NURBS .................................................................. 27
2.1.6. Tia sáng và Mặt con .......................................................................... 28
2.1.7. Tia sáng và Khối hộp ........................................................................ 29
2.2. Xử lý đổ bóng với Ray tracing ................................................................. 30
2.3. Một số vấn đề khác về Ray tracing .......................................................... 32
2.4.1. Ray tracing phân tán.......................................................................... 36
2.4.2. Ray tracing theo đường ..................................................................... 37
2.4.3. Đổ bóng với nguồn sáng hẹp ............................................................ 37
2.4.4. Đổ bóng với nguồn sáng rộng ........................................................... 38
2.4.5. Phản xạ bề mặt bóng ......................................................................... 39
2.4.6. Phản xạ khuếch tán............................................................................ 40
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
2.4.7. Độ sâu trường ảnh ............................................................................. 41
2.4.8. Làm mờ chuyển động........................................................................ 41
Chương 3. Chương trình ứng dụng ................................................................. 43
3.1. Bài toán..................................................................................................... 43
3.2. Phân tích các yêu cầu đối với chương trình cài đặt thử nghiệm kỹ thuật
sinh ảnh trong không gian 3D theo hướng Ray-tracing. ................................. 43
3.3. Chương trình sinh ảnh RTRendering theo kỹ thuật Ray-tracing ............. 44
Kết luận .............................................................................................................. 48
Tài liệu tham khảo............................................................................................. 50
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
1
PHẦN MỞ ĐẦU
Phần mở đầu
Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về
cơ sở toán học, các thuật toán cũng như các kỹ thuật để cho phép tạo, hiển thị
và điều khiển hình ảnh trên màn hình máy tính. Đồ họa máy tính có liên quan
ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa
hình, quang học,... và kỹ thuật máy tính, đặc biệt là chế tạo phần cứng.
Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ
dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình
bằng máy tính. Đồ họa máy tính hay kỹ thuật đồ họa máy tính còn được hiểu
dưới dạng phương pháp và kỹ thuật tạo hình ảnh từ các mô hình toán học mô
tả các đối tượng hay dữ liệu lấy được từ các đối tượng trong thực tế.
Khái niệm Đồ hoạ máy tính 3D được William Fetter đưa ra năm 1960.
Đồ họa 3D cho phép mô phỏng không gian 3 chiều trong máy tính. Về mặt
toán học, đây là một công việc cực kỳ phức tạp, tuy nhiên hầu hết những công
việc phức tạp này được thực hiện bởi phần cứng chuyên dụng với tốc độ
rất cao.
Trong đồ họa máy tính 3D, Rendering - kết xuất đồ họa - là một quá
trình sinh tạo một hình ảnh từ một mô hình bằng cách sử dụng một chương
trình ứng dụng phần mềm. Nhiều thuật toán kết xuất đồ họa đã được nghiên
cứu và phần mềm dùng trong quá trình kết xuất có thể áp dụng một số những
kỹ thuật kết xuất để đạt được hình ảnh cuối cùng. Các kỹ thuật kết xuất đồ
họa phổ biến được sử dụng là Tạo ảnh điểm (rasterization), Chiếu tia (Ray
casting) và Dò tia (Ray-tracing).
Ray-tracing là một kỹ thuật để sinh ảnh bằng cách tìm đường đi của
ánh sáng qua các điểm ảnh trong một mặt phẳng ảnh và mô phỏng các hiệu
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
2
ứng khi ánh sáng chạm vào bề mặt các đối tượng ảo. Kỹ thuật này dò theo
đường đi của các tia sáng, bắt đầu từ Camera, tới bề mặt đầu tiên và sau đó
phụ thuộc vào tính trong suốt hay phản xạ của bề mặt, xác định hướng đi tiếp
theo của tia sáng. Ray-tracing lần đầu tiên cho phép tính đến môi trường xung
quanh trong sự chiếu sáng vật thể, cho phép tạo ra các khung hình có độ chân
thực rất cao so với phương pháp kết xuất quét dòng thông thường. Raytracing đặc biệt phù hợp với các ứng dụng có các ảnh được kết xuất chậm như
ảnh tĩnh, phim hay các hiệu ứng truyền hình đặc biệt. Ray-tracing có khả năng
mô phỏng nhiều hiệu ứng quang học như phản xạ, khúc xạ, tán xạ, và quang
sai màu.
Xuất phát trong hoàn cảnh đó, luận văn lựa chọn đề tài Kỹ thuật Raytracing trong sinh ảnh và ứng dụng là vấn đề không chỉ có tính khoa học mà
còn mang đậm tính thực tiễn.
Trong phạm vi nghiên cứu, luận văn được chia thành các phần: Phần
mở đầu, phần kết luận và ba chương chính, cụ thể:
Chương 1. Khái quát về đồ họa máy tính ba chiều và kỹ thuật kết xuất đồ họa
Chương này giới thiệu khái quát về đồ họa máy tính ba chiều gồm các
khái niệm, định nghĩa cơ bản trong đồ họa máy tính ba chiều;trình bày khái
quát các kỹ thuật kết xuất đồ họa ba chiều từ cơ bản đến phức tạp xếp theo
thứ tự phát triển của các kỹ thuật, trong đó giới thiệu sơ lược về kỹ thuật kết
xuất Ray tracing.
Chương II. Kỹ thuật Ray tracing
Chương này tìm hiểu chi tiết về kỹ thuật kết xuất Ray tracing, bao gồm
các nội dung về tính toán đường đi của ánh sáng trong các trường hợp mô
phỏng vật thể với nhiều hình dáng bề mặt khác nhau; các nội dung về việc
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
3
ứng dụng kỹ thuật Ray tracing xử lý các hiệu ứng khi mô phỏng các hình ảnh
ba chiều như đổ bóng, phản xạ, khúc xạ ánh sáng…
Chương III.Chương trình ứng dụng
Chương này nêu ra bài toán ứng dụng kỹ thuật Ray tracing đối với việc
sinh một ảnh trong không gian ba chiều, phân tích các yêu cầu đối với chương
trình cài đặt thử nghiệm giải quyết bài toán đặt ra và giới thiệu các chức năng,
tính năng kỹ thuật của chương trình sinh ảnh sử dụng kỹ thuật Ray tracing.
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
4
Chƣơng 1
KHÁI QUÁT VỀ ĐỒ HỌA MÁY TÍNH BA CHIỀU
VÀ KỸ THUẬT KẾT XUẤT ĐỒ HỌA
Chương 1. Khái quát về đồ họa máy tính ba chiều và kỹ thuật kết xuất đồ họa
1.1. Khái quát về đồ họa máy tính ba chiều
1.1.1. Đồ họa máy tính
Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về
cơ sở toán học, các thuật toán cũng như các kĩ thuật để cho phép tạo, hiển thị
và điều khiển hình ảnh trên màn hình máy tính. Đồ họa máy tính có liên quan
ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa
hình, quang học,... và kĩ thuật máy tính, đặc biệt là chế tạo phần cứng (các
loại màn hình, các thiết bị xuất, nhập, các vỉ mạch đồ họa...) [1], [3].
Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ
dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình
bằng máy tính. Đồ họa máy tính hay kĩ thuật đồ họa máy tính còn được hiểu
dưới dạng phương pháp và kĩ thuật tạo hình ảnh từ các mô hình toán học mô
tả các đối tượng hay dữ liệu lấy được từ các đối tượng trong thực tế [6], [8],
[11]. Thuật ngữ "đồ họa máy tính" (computer graphics) được đề xuất bởi một
chuyên gia người Mĩ tên là William Fetter vào năm 1960. Khi đó ông đang
nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing. William
Fetter đã dựa trên các hình ảnh 3 chiều của mô hình người phi công trong
buồng lái để xây dựng nên mô hình buồng lái tối ưu cho máy bay Boeing.
Đây là phương pháp nghiên cứu rất mới vào thời kì đó. Phương pháp này cho
phép các nhà thiết kế quan sát một cách trực quan vị trí của người lái trong
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
5
khoang buồng lái. William Fetter đã đặt tên cho phương pháp của mình
là computer graphics [5].
1.1.2. Các kỹ thuật đồ họa
a) Kỹ thuật đồ họa điểm
Nguyên lý của kỹ thuật này như sau: các hình ảnh được hiển thị thông
qua từng pixel (từng mẫu rời rạc). Với kỹ thuật này, chúng ta có thể tạo ra,
xóa hoặc thay đổi thuộc tính của từng pixel của các đối tượng. Các hình ảnh
được hiển thị như một lưới điểm rời rạc (grid), từng điểm đều có vị trí xác
định được hiển thị với một giá trị nguyên biểu thị màu sắc hoặc dộ sáng của
điểm đó. Tập hợp tất cả các pixel của grid tạo nên hình ảnh của đối tượng mà
ta muốn biểu diễn [10].
b) Kỹ thuật đồ họa vector
Nguyên lý của kỹ thuật này là xây dựng mô hình hình học (geometrical
model) cho hình ảnh đối tượng, xác định các thuộc tính của mô hình hình học,
sau đó dựa trên mô hình này để thực hiện quá trình kết xuất (rendering) để
hiển thị từng điểm của mô hình, hình ảnh của đối tượng.
Ở kỹ thuật này chỉ lưu trữ mô hình toán học của các thành phần trong
mô hình hình học cùng với các thuộc tính tương ứng mà không cần lưu lại
toàn bộ tất cả các pixel của hình ảnh đối tượng [7].
1.1.3. Đồ họa máy tính ba chiều (3D - Dimensions)
a) Định nghĩa về 3D
Vô chiều: Một điểm là một ví dụ của một đối tượng không. Nó tạo ra
một điểm trong không gian nhưng rõ ràng là điểm đó không có độ dài, chiều
cao hay độ sâu.
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
6
Một chiều: Một đối tượng một chiều là một đường thẳng đơn, nó chứa
độ dài nhưng không chứa chiều cao hoặc độ sâu.
Hai chiều: Một đối tượng 2 chiều chứa bất kỳ hai trong số ba
chiều sau:
* Chiều rộng
* Chiều cao
* Độ sâu
Ba chiều: Đối tượng 3 chiều (three-dimension hay 3-Dimentions hoặc
3D) sử dụng tất cả 3 chiều (dài, cao và sâu) hoặc các trục tương ứng trong
không gian X, Y và Z. Các ứng dụng 3D thực thi theo một chuẩn dựa trên các
trục gọi là hệ tọa độ Đề-Các trong không gian, khái niệm được đề cập tới đầu
tiên vào những năm giữa thế kỷ 17. Hệ trục tọa độ này gồm có các trục X, Y
và Z tương ứng với các chiều của không gian, tuân theo quy ước:
X: Chiều rộng
Y: Chiều cao
Z: Độ sâu
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
7
Theo đồ thị trên, các điểm X nằm ở trái và phải, các điểm thuộc trục Y
nằm hướng trên hoặc dưới, và các điểm thuộc trục Z dùng để biểu thị độ sâu
theo hướng chéo. Các ứng dụng 3D sử dụng các trục này để chuyển đổi, quay
và phân chia các đối tượng trong không gian theo các trục xác định. Chẳng
hạn, có thể biến dạng hoặc di chuyển một đối tượng dọc theo trục X bằng
cách di chuyển nó theo hướng trái hoặc phải, cũng có thể di chuyển đối tượng
trên trục Y bằng cách kéo nó lên hoặc xuống. Nếu di chuyển đối tượng của
mình trên trục Z, thì đối tượng sẽ xuất hiện ở gần hơn hoặc xa hơn.
Trong đồ họa máy tính, các dữ liệu 3D được tạo ra bằng cách sử dụng
các công cụ 2D. Màn hình máy tính là một đối tượng hiển thị 2D và chuột
cũng chỉ có thể di chuyển trên một mặt phẳng 2D, nó có thể phản hồi các
tương tác dựa trên các chuyển động theo hướng trái-phải, trước-sau, nhưng
không thể phản hồi được theo hướng trên hoặc dưới bàn đặt chuột. Ngoài ra,
những gì xuất ra từ máy tính cũng sẽ luôn là 2D. Do vậy, để máy tính có thể
biểu diễn các hình ảnh 3D từ các dữ liệu 2D nhập vào như vậy cần phải có
các phần mềm 3D [4].
b) Đồ họa máy tính 3D
Khái niệm Đồ hoạ máy tính 3D được William Fetter đưa ra năm 1960.
Đồ họa 3D cho phép mô phỏng không gian 3 chiều trong máy tính. Về mặt
toán học, đây là một công việc cực kỳ phức tạp, tuy nhiên hầu hết những công
việc phức tạp này được thực hiện bởi phần cứng chuyên dụng với tốc độ
rất cao.
Đồ họa máy tính 3D khác với đồ họa máy tính 2D vì nó có chiều thứ 3
và các dữ liệu hình học được máy tính lưu trữ với mục đính để tính toán và
tạo lại các hình ảnh 2D của đối tượng mô phỏng 3D. Đôi khi các hình ảnh này
sẽ hiển thị sau theo dạng được tạo ảnh trước, và đôi khi chúng được tạo trong
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
8
quá trình trực tiếp (real-time). Các mô hình 3D được tạo bởi các dữ liệu hình
học được máy tính lưu trữ gần giống với các hình ảnh vật thể đó ở bên ngoài
thực tế hay các ảnh chụp và đồ họa 3D là vẽ lại theo các công thức toán học
để tạo ra các hình ảnh 2D về vật thể 3D đó. Trong các phần mềm đồ họa máy
tính sự phân biệt này đôi khi không rõ rệt; một số ứng dụng 2D sử dụng công
nghệ 3D để tạo các hiệu ứng như ánh sáng, trong khi một số phần mềm 3D lại
sử dụng công nghệ 2D để tạo 3D ảo.
Tiến trình tạo dựng đồ họa 3D có thể chia làm 3 bước tuần tự:
- Tạo mô hình (mô hình 3D, tạo vật liệu, tạo chuyển động)
- Cài đặt bố cục khung cảnh
- Kết xuất (Rendering)
Bƣớc 1: Tạo mô hình
Mô hình gốc của vật thể có thể mô tả hình dạng cá nhân các đối tượng
để sau đó sử dụng trong khung cảnh. Hiện nay tồn tại nhiều công nghệ tạo mô
hình, có thể kể đến một số công nghệ sau:
- Hình học cấu trúc khối (solid)
- Mô hình NURBS
- Mô hình đa giác (polygonal)
- Mô hình bề mặt (surfaces)
- Mô hình bề mặt nhỏ (subdivision surfaces)
Việc xử lý mô hình có thể bao gồm việc biên tập các bề mặt đối tượng
hoặc các thuộc tính vật liệu (ví dụ màu sắc, độ tương phải, độ phản chiếu,... nhiều thuộc tính chung như làm tròn, phản quang đối tượng, trong suốt, mờ
đục, ...), thêm kết cấu, bump-maps và nhiều đặc điểm khác.
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
9
Bƣớc 2: Cài đặt bố cục khung cảnh (Scene)
Cài đặt bố cục khung cảnh nghĩa là sắp xếp các đối tượng ảo, ánh sáng,
máy quay camera và toàn bộ các đối tượng khác trên khung cảnh mà người
dùng mong muốn. Ánh sáng là một đối tượng quan trọng trong khung cảnh.
Giống như trong thế giới thực thì để có một kết quả tốt thì chúng ta phải bố trí
và sắp xếp ánh sáng sao cho hợp lý với toàn bộ khung cảnh. Các hiệu ứng ánh
sáng có thể làm cho các hiệu ứng trên đối tượng trở nên đẹp hơn, do vậy đòi
hỏi các kỹ thuật viên phải có nhiều kiến thức về bố trí ánh sáng trước khi
thực hiện.
Bƣớc 3: Kết xuất (Rendering)
Trong đồ họa máy tính 3D, Rendering - kết xuất đồ họa - là một quá
trình sinh tạo một hình ảnh từ một mô hình bằng cách sử dụng một chương
trình ứng dụng phần mềm.
Rendering cho các sản phẩm tương tác trong trò chơi hay trong mô
phỏng là việc tính toán để hiển thị trong thời gian thực tại thời điểm đó hình
sẽ ra sao. Tốc độ khung hình hiển thị có thể từ 20 đến 120 khung hình/giây.
Các đoạn phim không có tương tác thường được render ở tốc độ chậm vì
chúng không cần render ở thời gian thực nên cho phép nâng cao giới hạn hình
ảnh và tạo ra các khung cảnh thực sự phức tạp với chất lượng cao. Thời gian
Render được tính riêng cho mỗi khung hình riêng rẽ có thể mất vài giây hoặc
đến vài ngày với các cảnh phức tạp. Các khung hình này được hiển thị lần
lượt với tốc độ cao, thường là khoảng 24, 25, hoặc 30 khung hình trên giây,
để mô tả lại các chuyển động đã tạo trước đó.
Một số phương thức render thường được sử dụng là: scanline rendering
(phương thức quét dòng), ray tracing (phương pháp dò tia), hoặc radiosity
(phương pháp lộ sáng). Trong thực tế mỗi phương thức đều có các bộ render
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
10
khác nhau để tạo hình ảnh thực hơn và các bộ đó có thể tạo ra các hình ảnh ở
thời gian thực.
Khác với render thời gian thực, khi cần cho ra kết quả là một khung ảnh
với độ chân thực cao, các công nghệ được sử dụng thường là ray tracing hoặc
radiosity. Để hoàn thành một khung hình, máy render (render engine) có thể
mất từ vài giây tới vài ngày tùy độ phức tạp của khung hình.
Trong việc render thời gian thực (real-time), kết quả của quá trình
render được sử dụng để hiển thị hình ảnh trong khoảng 1/30 giây (hay còn gọi
là 1 khung hình, trong trường hợp này đang nói đến tốc độ 30 khung
hình/giây). Điều đó cho phép chúng ta cảm nhận tốt về chuyển động của tác
phẩm. Trong các games thường thiết kế các đối tượng động và phải render
trong khoảng thời gian tương tác. Để tăng tốc độ render trong thời gian thực
thì các công nghệ tối ưu hóa và giảm thiểu hóa thường được đưa vào việc
dựng mô hình như công nghệ HDR rendering. Công nghệ render thời gian
thực thường sử dụng máy tính đồ họa tốc độ cao.
Các công nghệ được phát triển phụ thuộc vào sự mô phỏng của các
hiệu ứng trong tự nhiên, như sự tương tác của ánh sáng với hàng loạt dạng vật
chất khác nhau. Ví dụ như công nghệ tạo hệ thống hạt (particle systems - có
thể mô phỏng mưa, khói hoặc lửa), công nghệ lấy mẫu thể tích (volumetric
sampling - để mô phỏng sương mù, bụi và các hiệu ứng không gian khác), tụ
quang (caustics - để mô tả tiêu điểm ánh sáng chiếu vào vật thể và tạo lên các
hiệu ứng sáng trên bề mặt bóng), và công nghệ phân tán bề mặt (subsurface
scattering - được dùng để mô phỏng các hiệu ứng phản chiếu bên trong thể
tích của các đối tượng khối như da của con người).
Các hình ảnh xuất ra từ việc render chỉ có thể sử dụng trong một phần
nhỏ của một khung cảnh chuyển động lớn. Nhiều lớp đối tượng, vật liệu có
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
11
thể được render riêng rẽ và tích hợp lại ở giai đoạn cuối bằng việc sử dụng
các phần mềm kết hợp đặc biệt.
1.2. Các kỹ thuật kết xuất đồ họa ba chiều
1.2.1. Kết xuất đồ họa ba chiều
Trong đồ họa máy tính, kết xuất đồ họa (tiếng Anh: rendering), gọi tắt
là kết xuất, là một quá trình sinh tạo một hình ảnh từ một mô hình bằng cách
sử dụng một chương trình phần mềm ứng dụng. Mô hình là mô tả của các đối
tượng ba chiều bằng một ngôn ngữ được định nghĩa chặt chẽ hoặc bằng một
cấu trúc dữ liệu. Mô tả này bao gồm các thông tin về hình học, điểm
nhìn, chất liệu và bố trí ánh sáng của đối tượng. Hình ảnh này có thể là
một hình ảnh số (digital image) hoặc một hình ảnh đồ họa điểm (raster
graphics image) [5], [8].
Kết xuất đồ họa là một trong các nội dung rất quan trọng được đề cập
tới trong đồ họa máy tính ba chiều (3D computer graphics). Trong thực tiễn,
nó luôn luôn có quan hệ chặt chẽ với các chủ đề khác. Trong quy trình xử lý
đồ họa, kết xuất là bước quan trọng cuối cùng để tạo ra diện mạo kết cục của
các mô hình và hoạt hình. Với tính phức tạp của đồ họa máy tính ngày càng
tăng, từ năm 1970 đến nay, kết xuất đồ họa đã trở thành một chủ đề riêng biệt.
Kết xuất đồ họa được sử dụng trong: trò chơi video và
điệntử (computer
and
video
games),
trong
các chương
trình
môphỏng (simulators), trong điện ảnh (movies) hay trong hiệu ứng đặc
biệt (special effects) trên TV và trong hình tượng hóa thiết kế (design
visualisation), mỗi lĩnh vực trên áp dụng một cân bằng giữa các đặc trưng và
kỹ thuật khác nhau. Hiện nay còn có nhiều sản phẩm phần mềm đa dạng dùng
cho việc kết xuất đồ họa. Một số được kết hợp trong những bộ phần mềm tạo
mô hình và làm phim hoạt họa, một số khác là những phần mềm đứng riêng
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
12
(stand-alone) và một số là những dự án nguồn mở tự do (free open-source
projects). Bên trong chúng, chương trình kết xuất đồ họa là một chương trình
ứng dụng được thiết kế và xây dựng một cách cẩn trọng, dựa trên một số kiến
thức của các ngành: vật lý quang học, nhận thức thị giác (visual
perception), toán học và phát triển phần mềm.
Các kỹ thuật kết xuất đồ họa ba chiều
a) Các hiệu ứng đồ họa
Có thể hiểu một hình ảnh đã được kết xuất thông qua một số đặc điểm,
hiệu ứng có thể nhìn thấy được của hình ảnh. Việc nghiên cứu và phát triển
các kỹ thuật kết xuất đồ họa chủ yếu nhằm vào việc tìm kiếm các phương
pháp để mô phỏng các đặc điểm, hiệu ứng này một cách hiệu quả. Một số
hiệu ứng hình ảnh phổ biến được nghiên cứu sử dụng gồm:
hiệu ứng tô bóng (shading) - phương pháp bố trí ánh sáng nhất định,
màu sắc và cường độ ánh sáng trên bề mặt của vật thể
hiệu ứng tạo chất liệu (texture-mapping ) - phương pháp cho thêm
chi tiết vào các bề mặt của vật thể
hiệu ứng tạo bề mặt sần (bump-mapping) - phương pháp tái tạo hiệu
ứng nhấp nhô, lổn nhổn của các bề mặt trên phạm vi thu nhỏ
hiệu ứng xa mờ/ảnh hưởng trên các vật chất (fogging/participating
medium ) - phương pháp mô tả ánh sáng bị tối đi như thế nào khi chúng
xuyên qua môi trường không khí
hiệu ứng bóng tối (shadows ) - phương pháp mô tả sự ảnh hưởng của
ánh sáng khi chúng bị che lấp bởi vật thể (ngả bóng)
hiệu ứng bóng tối mềm (soft shadows) - phương pháp mô tả sự biến
thiên của bóng tối gây ra do nguồn ánh sáng chỉ bị che khuất một phần
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
13
hiệu ứng phản quang (reflection) - phương pháp mô tả hiệu ứng phản
quang như gương hoặc bởi những bề mặt bóng loáng
hiệu ứng trong suốt (transparency) - phương pháp mô tả hiệu ứng
truyền ánh sáng xuyên qua các vật thể đặc
hiệu ứng trong mờ (translucency) - phương pháp mô tả sự phân tán
cao độ của ánh sáng khi được truyền xuyên qua các vật thể đặc
hiệu ứng khúc xạ (refraction) - phương pháp mô tả sự đổi hướng của
ánh sáng khi truyền qua những vật thể trong suốt
hiệu ứng chiếu sáng gián tiếp (indirect illumination) - phương pháp
mô tả các bề mặt hừng sáng khi ánh sáng phản quang từ các bề mặt khác mà
không phải do nguồn sáng trực tiếp chiếu vào
hiệu ứng tụ quang (caustics - một hình thức của tính phản quang) phương pháp mô tả sự phản quang của ánh sáng từ một vật thể bóng loáng,
hay sự hội tụ của ánh sáng khi xuyên qua một vật trong suốt, tạo nên các điểm
chói sáng trên các vật thể khác
hiệu ứng chiều sâu tầm nhìn (depth of field) - phương pháp mô tả các
vật thể mờ đi hoặc không rõ khi chúng nằm quá xa, hoặc nằm sau một vật
đang ở trong tầm mắt
hiệu ứng nhòe hình của vật chuyển động (motion blur) - phương
pháp mô tả vật thể bị nhòe đi trong khi đang chuyển động với tốc độ cao,
hoặc do chuyển động của máy quay phim
hiệu ứng tạo hình thái như thật của ảnh chụp (photorealistic
morphing) - phương pháp mô tả tạo hiệu ứng như ảnh chụp của kết xuất 3D
làm cho hình ảnh giống như thật
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
14
hiệu ứng kết xuất không giống ảnh chụp (non-photorealistic
rendering) - phương pháp kết xuất các phong cảnh theo phong cách họa sĩ,
với dụng ý làm cho nó giống các bức tranh (sơn dầu) hay những hình vẽ
b) Các phương pháp kết xuất đồ họa
Để giải quyết được bài toán hiển thị các hiệu ứng đồ họa trên, nhiều
thuật toán kết xuất đồ họa đã được nghiên cứu, trong đó nổi bật lên là ý tưởng
về việc làm thế nào để tính toán và mô phỏng từng tia sáng một trong một
phong cảnh ba chiều. Việc làm này đòi hỏi một số lượng khổng lồ các thao
tác tính toán và tương đương với đó là một lượng thời gian không ít cho việc
kết xuất.
Các phương pháp kết xuất đồ họa đã được nghiên cứu gồm:
Tạo điểm ảnh (rasterization).
Chiếu tia (ray-casting).
Dò tia (ray-tracing).
Tính sự va đập của ánh sáng (radiosity).
b.1) Tạo điểm ảnh (rasterization).
Một ảnh thường được tạo thành từ một hay nhiều yếu tố cơ bản. Những
yếu tố này được gọi là “nguyên thủy”. Ví dụ trong một bản vẽ sơ đồ mạch,
các đoạn đường thẳng và đường cong có thể là nguyên thủy. Trong một giao
diện người dùng đồ họa, cửa sổ và các nút có thể là nguyên thủy. Trong kết
xuất đồ họa 3D, tam giác và đa giác trong không gian có thể là nguyên thủy.
Trong kết xuất đồ họa, nếu tiếp cận với đơn vị tính là điểm ảnh thường
rất chậm và không thực tế đối với một số khâu xử lý. Vì thế cách tiếp cận với
đơn vị tính là từng “nguyên thủy” trong kết xuất đồ họa mang lại hiệu quả
nhiều hơn, theo đó, khi cần kết xuất sẽ xét một lượt qua từng nguyên thủy,
Kỹ thuật Ray tracing trong sinh ảnh và ứng dụng
- Xem thêm -