Ray Tracing
1
Giới thiệu
Các nhà khoa học đồ họa máy tính luôn muốn tạo
được những hình ảnh như thật như trong tự nhiên.
Điều đó có thể đạt được khi ngày nay máy tính đã
trở nên mạnh hơn, những thiết bị xuất nhập đồ họa
trở nên phổ biến.
Vì thế không ai không bị gây ấn tượng khi những gì
họ thấy trong phim khoa học viễn tưởng thực chất
là do máy tính tạo ra. Đối với những công việc cần
có mô hình phức tạp và tốn công để vẽ thì bây giờ có
thể mô hình hóa trên máy tính với những chi tiết
phức tạp nhưng lại cho ra những kết quả hết sức
trung thực.
2
Giới thiệu (cont.)
Nền tảng để máy tính xây dựng các hình ảnh chính
là cách mô hình hình học chính xác các hình ảnh đó.
Hiện nay có nhiều thuật giải đã được phát hiện
dùng để hiển thị cho nhiều mô hình toán học hiển
thị mặt cong: mặt tham số hóa, các mặt bậc ba, các
mặt dạng ẩn…
Sự khác nhau giữa các thuật giải này chính là sự
khác nhau về mặt hình học của đối tượng cần
được hiển thị. Vì vậy đối với mỗi loại đối tượng
khác nhau cần có một phương pháp hiển thị khác
nhau tương ứng.
3
Ưu điểm
Khắc phục được nhược điểm trên, Ray Tracing là
phương pháp tổng quát rất hữu hiệu để hiển thị các
mặt cong bởi vì:
– là tính đơn giản của thuật toán,
– sử dụng nguyên lý quang hình nên tạo ra những hình ảnh
rất giống thực tế,
– áp dụng cho nhiều loại mặt cong.
4
Điều kiện áp dụng thuật toán Ray Tracing
Để áp dụng thuật toán Ray Tracing cho các mặt cong thì
ta phải xác định được 2 điều:
– giao điểm của một đường thẳng với một mặt cong
– pháp vector tại một điểm trên mặt cong.
Những mặt cong nào thỏa mãn 2 điều kiện này thì có
thể áp dụng phương pháp Ray Tracing để hiển thị.
5
Tính chất của Ray Tracing
Ray tracing là phương pháp để tạo ra những hình
ảnh giống như thật:
– sự tương tác giữa ánh sáng và bóng tối với các vật thể
được thể hiện giống như ta thấy trong tự nhiên.
– sự kết hợp đơn giản của các hiệu ứng như bóng, sự phản
xạ, khúc xạ.
– mô phỏng theo đường đi giữa tia sáng và vật thể theo quy
luật của quang hình học.
Những gì (hình ảnh) mà chúng ta thấy được là sự tổ
hợp màu của hàng tỉ tia sáng đi vào mắt chúng ta.
Vì vậy, Ray Tracing đề ra phương pháp để tính toán
màu sắc của tia sáng.
6
Tính chất của Ray Tracing
Eyepoint
Screen
Scene
7
Mô hình tạo ảnh của Ray Tracing
Nguồn sáng
Vật thể
Tia này giao với
một vật thể.
Màu của điểm
ảnh tương ứng
tùy thuộc vào
màu của vật thể
và những yếu
tố khác.
Tương ứng
giữa View
Plane và
Buffer lưu trữ
hình ảnh.
Buffer
Viewpoint
Location
View
Plane
Tia này không giao với vật thể nào.
Màu của điểm ảnh tương ứng
được xác định bởi màu nền.
8
Mô hình tạo ảnh của Ray tracing
•
Mô hình tạo ảnh của Ray Tracing, bao gồm:
– light source (nguồn sáng),
– object (vật thể),
– viewing geometry (tầm nhìn).
•
•
•
Light source bao gồm các thuộc tính vị trí và màu sắc.
Object có các thuộc tính: màu sắc, vị trí, độ phản xạ, khúc xạ,
phương trình mặt, vectơ trực chuẩn.
Viewing geomeotry (tầm nhìn) được định nghĩa phức tạp hơn.
Thực chất, tầm nhìn xác định vị trí mắt người nhìn, hướng của
mắt sẽ nhìn tới và vùng nào trong không gian mà mắt sẽ nhìn
thấy 3 chiều thông qua một cửa sổ gọi là viewplane.
9
Viewing Geometry
View Plane
Mắt
Mắt
Direction
Location
Up
Right
View Plane
Không gian vật thể
phía sau View Plane
10
Viewing Geometry
Chúng ta sử dụng 4 vector để định nghĩa viewing
geomeotry:
Location: xác định vị trí của mắt trong hoạt cảnh 3
chiều. Vị trí của mắt được xác định trong cùng hệ tọa độ
với các vật thể.
Direction: định nghĩa bởi một vector từ vị trí mắt điểm
giữa của viewplane. Độ lớn của vector này xác định khoảng
cách giữa mắt và viewplane.
Up: vector có gốc là điểm giữa của viewplane và ngọn là
điểm giữa của cạnh trên viewplane.
Right: vector có gốc là điểm giữa của viewplane và ngọn
là điểm giữa của cạnh phải viewplane.
11
Phương pháp tạo ảnh
Trên thực tế, tia sáng xuất phát từ nguồn sáng, đi vào hoạt
cảnh 3 chiều, sau khi tương tác với các vật thể tia sáng đi ra
khỏi hoạt cảnh, có thể được mắt nhìn thấy hoặc không.
Phương pháp này thường được gọi là Ray Tracing thuận và
phải tính toán rất nhiều.
Sở dĩ như vậy là vì khi muốn tạo hình ảnh của hoạt cảnh ta
phải xây dựng hàng tỉ tia sáng (có thể hơn thế nữa) đi từ nguồn
sáng mà chỉ có một số ít có hướng đi đúng qua viewplane và tới
mắt người xem.
Như thế máy tính PC không thể trong thời gian ngắn hoàn
thành được công việc đồ sộ như vậy.
12
Phương pháp tạo ảnh (cont.)
Bằng cách thay phương pháp đi của tia sáng, ta được một kỹ
thuật tạo ảnh nhanh chóng hơn nhiều thường được gọi là Ray
Casting hay Ray Tracing ngược.
Ý tưởng của phương pháp này là cho tia sáng xuất phát từ vị trí
mắt và đi qua từng điểm trên viewplane vào hoạt cảnh 3 chiều.
Khi tia sáng tương tác với các vật thể trong hoạt cảnh, điểm
trên viewplane (và điểm màu trên buffer) tương ứng với tia sáng
đó sẽ có màu của giao điểm của vật thể gần nhất mà tia sáng
tương tác.
13
Ray Casting
Eyepoint
Screen
Scene
14
Lighting model
Màu sắc của một điểm trên vật thể bị ảnh hưởng bởi những yếu
tố sau đây:
Giữa điểm đó và nguồn sáng có vật thể nào che khuất hay không,
nếu không nó được chiếu sáng hoàn toàn.
Sự phản xạ của bề mặt vật thể. Điển hình là cái gương nó phản xạ
hoàn toàn các tia sáng tới. Cái gương không hề có màu của nó mà
mang màu của những tia sáng đi tới.
Sự khúc xạ ánh sáng của bề mặt vật thể. Ví dụ khi nhìn miếng thủy
tinh ta không hề thấy màu của miếng thủy tinh mà chỉ thấy màu của
những vật thể phía sau nó.
15
Shadow – Bóng
Đường thẳng nối giao điểm và nguồn sáng giao với vất thể
khác.
16
Inter-object reflections – Phản xạ
Tạo tia sáng phản xạ ra khỏi vật thể,
Nếu nó tương tác với vật thể khác thì tính toán màu sắc của
nó và phối hợp màu với giao điểm đầu tiên.
17
Refraction – Khúc xạ
Vật thể trong suốt bẻ cong ánh sáng khi đi qua nó
sin
n1 2
sin
i
r
n2
n1
18
Recursive ray tracing - Đệ qui
19
Lighting model (cont.)
•
Do vậy để tính màu tại một điểm ta phải tổng hợp màu:
– màu do nguồn sáng (local shading),
– màu do tia phản xạvà màu do tia khúc xạ mang tới (recursive
shading).
•
Hai màu do tia phản xạ và khúc xạ tạo nên có được bằng cách
xây dựng thêm hai tia phản xạ và khúc xạ và tiếp tục tính màu
của hai tia trên bằng phương pháp trên. Đây được gọi là sự đệ
qui trong cách xây dựng màu của vật thể.
20
Ưu điểm và nhược điểm
Ưu điểm:
Transparency
Reflection
Shadow
No clipping, no projections, no scan conversion
Nhược điểm:
Tính toán giao điểm phức tạp
21
Thuật toán Ray Tracing tổng quát
•
Với mỗi điểm ảnh trên buffer,
– Xác định điểm P tương ứng trên viewplane;
– Xây dựng tia Ray đi từ mắt qua P;
– Xác định giao điểm gần nhất giữa tia Ray và các vật thể Objects trong
khung cảnh;
– Nếu không tồn tại giao điểm thì điểm ảnh có màu là màu nền;
– Ngược lại,
• Tính vector trực chuẩn của vật thể tại giao điểm;
• Màu điểm ảnh là màu ambient;
• Với mỗi nguồn sáng,
– Tạo tia đi từ giao điểm đến nguồn sáng;
– Tính sự phân phối ánh sáng diffuse tới vật thể và cộng dồn vào
màu của điểm ảnh;
– Nếu vật thể phản xạ,
» Tính toán tia phản xạ;
» Xác định màu của tia phản xạ;
» Cộng dồn vào màu của điểm ảnh;
– Nếu vật thể trong suốt,
» Tính toán tia khúc xạ;
» Xác định màu của tia khúc xạ;
» Cộng dồn vào màu của điểm ảnh;
22
Ứng dụng Ray Tracing
Chúng ta chỉ cần xác định giao điểm của tia và mặt cong, vector
trực chuẩn của mặt cong tại giao điểm đó:
–
–
–
–
Biểu diễn tia
Biểu diễn vật thể
Giao điểm của tia và vật thể
Vectơ pháp tuyến tại giao điểm
23
Biểu diễn tia
•
•
Tia đóng vai trò quan trọng trong thuật toán ray tracing. Tia bao gồm
gốc và hướng. Tia được tạo bởi hai vector, một cho gốc và một cho
hướng của tia. Để mô tả tia di chuyển như thế nào ta xem thời gian
như tham số t, ta có phương trình của tia như sau:
R(t)
Rd * t
Ro, t
0
•
R(t) là tập hợp những điểm tạo nên đường đi của tia. Tia chỉ đi về
một hưóng được định bởi t>0.
Rd:hướng của tia.
•
R0:gốc của tia.
R0
Rd
24
Phương trình tham số của tia
•
Phương trình R(t) được xét trong không gian 3 chiều nên ta có cách
khác:
x(t) x d * t x 0
y(t)
z(t)
yd * t
zd * t
y0
z0
– hướng của tia được mô tả bởi vector (xd, yd , zd)
– gốc của tia mô tả bởi vector (xo, yo , zo) .
•
Như bạn đã biết, thuật toán ray tracing liên quan rất nhiều đến việc
xác định giữa tia và vật thể có giao với nhau hay không. Sử dụng
phương trình tham số của tia, chúng ta dễ dàng có thể xác định giao
điểm giữa tia và vật thể.
R0
Rd
25