Tia sáng và Tứ giác

Một phần của tài liệu (LUẬN văn THẠC sĩ) kỹ thuật hiển thị mô hình 3d và ứng dụng vào hiển thị một số hệ xương người lào (Trang 47 - 51)

Một tứ giác abcd được xác định bởi bốn đỉnh 𝑎, 𝑏, 𝑐, 𝑑. Ta có thể biểu diễn tất cả các điểm 𝑝 trên bề mặt của tứ giác bằng việc kết hợp song song bốn đỉnh:

(1 − 𝑢)(1 − 𝑣)𝑎 ⃗⃗⃗⃗ + 𝑢(1 − 𝑣)𝑏⃗⃗ + (1 − 𝑢)𝑣𝑐⃗ + 𝑢𝑣𝑑⃗ = 𝑝⃗.

Hình vẽ sau cho thấy một hình tứ giác với các đường đẳng trị cho 𝑢 và 𝑣. Điểm 𝑝 thuộc tứ giác nếu 𝑢 và 𝑣 nằm trong khoảng [0,1].

Hình 2.29. Tứ giác abcd và cặp tọa độ song tuyến (u, v).

Trong thực tế, các tứ giác thường không phẳng. Việc tính toán các giao điểm trong tứ giác phẳng thường hiệu quả hơn trong trường hợp không phẳng. Đầu tiên, ta xét trường hợp tứ giác không phẳng.

a) Tứ giác không phẳng

Một tia sáng có thể cắt một tứ giác không phẳng tại 0, 1, hoặc 2 điểm. Thay phương trình tia sáng 𝑝⃗ = 𝑜⃗ + 𝑡𝑑⃗ vào phương trình tứ giác nêu trên, ta sẽ được 3 phương trình (mỗi phương trình ứng với một tọa độ 𝑥, 𝑦, 𝑧) với 3 biến 𝑡, 𝑢, và 𝑣. Các phương trình trên là phương trình không tuyến tính, cách giải quyết trước tiên là giải một phương trình bậc hai với biến 𝑢. Nếu 𝑢 nằm trong khoảng [0,1] thì tìm biến 𝑣 tương ứng. Nếu 𝑣 cũng thuộc khoảng [0,1] thì tìm tiếp đến biến 𝑡. Nếu biến 𝑡 tìm được là một số âm hoặc số dương có giá trị lớn hơn khoảng cách giao điểm tìm thấy trước đó thì kết luận không tồn tại giao điểm.

Một phương pháp hiệu quả hơn có thể được sử dụng, nếu các tứ giác có diện tích nhỏ. Trường hợp này các tứ giác thường được chia xấp xỉ thành hai tam giác, như vậy tọa độ giao điểm tìm thấy có thể có sai số nhưng do các tứ giác là rất nhỏ nên sai số là không đáng kể.

Hình 2.20. Tứ giác abcd được tính xấp xỉ bằng hai tam giác. b) Tứ giác phẳng

Một tia sáng chỉ có thể cắt một tứ giác phẳng ở 0 hoặc 1 điểm. Trường hợp này có thể sử dụng các công thức như đối với trường hợp tìm giao điểm của tia sáng và tam giác để tìm giao điểm của tia sáng với mặt phẳng chứa tứ giác sau đó xác định xem các giao điểm này nằm trong hay ngoài tứ giác. Nếu tứ giác là một hình chữ nhật hoặc hình vuôngthì cách tìm đơn giản hơn, đó là xác định các tọa độ song song 𝑢 và 𝑣 sử dụng tích vô hướng.

2.4.1.3. Tia sáng và các mặt bậc hai

Nhóm các mặt bậc hai bao gồm mặt đĩa, mặt cầu, mặt trụ, mặt nón, mặt ellip, mặt parabol và mặt hyperbol.

a) Mặt đĩa:

Một mặt đĩa được xác định bởi tâm 𝑐⃗, pháp tuyến 𝑛⃗⃗ và bán kính 𝑟. Tâm và pháp tuyến của mặt đĩa xác định một mặt phẳng. Việc tìm một giao điểm giữa tia sáng và mặt đĩa tương tự như tìm giao điểm giữa tia sáng và tam giác. Trước tiên, ta tìm giao điểm p⃗⃗ của tia sáng và mặt phẳng chứa đĩa, sau đó kiểm tra khoảng cách 𝑡⃗ có là số dương và nhỏ hơn khoảng cách các giao điểm được tìm thấy trước đó không. Giao điểm thuộc mặt đĩa nếu (𝑝⃗ − 𝑐⃗)2 ≤ 𝑟2.Mặt đĩa được ứng dụng khá nhiều trong việc kết xuất đồ họa, nhất là việc mô phỏng các hệ thống nguyên tử.

b) Mặt cầu:

Một mặt cầu được xác định bởi tâm 𝑐⃗ và bán kính 𝑟. Để tìm giao điểm giữa tia sáng và mặt cầu ta thay phương trình của tia 𝑝⃗ = 𝑜⃗ + 𝑡𝑑⃗ vào phương trình biểu diễn mặt cầu (𝑝⃗ − 𝑐⃗)2 = 𝑟2:

0 = (𝑝⃗ − 𝑐⃗)2 − 𝑟⃗2

= 𝑝⃗2 − 2(p⃗⃗ · c⃗) + 𝑐⃗2 − 𝑟2

= 𝑜⃗2 + 2 𝑡(𝑜⃗ · 𝑑⃗) + 𝑡2𝑑⃗2 − 2(𝑜⃗ · 𝑐⃗) − 2𝑡(𝑑⃗ · 𝑐⃗) + 𝑐⃗2 − 𝑟2

= 𝑑⃗2𝑡2 + 2𝑑⃗ · (𝑜⃗ − 𝑐⃗)𝑡 + (𝑜⃗ − 𝑐⃗)2 − 𝑟2

Đây là một phương trình bậc 2 với biến 𝑡. Hai nghiệm tìm được là: 𝑡1 =−𝐵+𝐷

2𝐴 và 𝑡2 =−𝐵−𝐷

2𝐴

Trong đó:𝐴 = 𝑑⃗2, 𝐵 = 2𝑑⃗ ∙ (𝑜⃗ − 𝑐⃗), 𝐶 = (𝑜⃗ − 𝑐⃗)2− 𝑟2, và biệt thức D có giá trị 𝐷 = √𝐵2− 4𝐴𝐶 (nếu cho trước hướng của tia sáng là vuông góc thì 𝐴 = 1). Nếu biểu thức D có giá trị âm thì phương trình vô nghiệm và tia sáng không cắt mặt cầu. Nếu biểu thức bằng 0 thì tia sáng tiếp tuyến với mặt cầu và chỉ tồn tại một giao điểm. Nếu biểu thức có giá trị dương thì tồn tại hai giao điểm của tia sáng và mặt cầu, giao điểm gần là giao điểm tương ứng với giá trị 𝑡 không âm nhỏ nhất. Nếu cho trước khoảng cách 𝑡 ta có thể tính toán được giao điểm 𝑝⃗. Pháp tuyến tại giao điểm là 𝑛⃗⃗ = 𝑝⃗ − 𝑐⃗.

c) Các dạng mặt bậc hai khác:

Đối với các trường hợp tia sáng giao với các mặt trụ, mặt nón nón, mặt ellip, mặt parabol và mặt hyperbol có thể giải quyết bằng cách giải các phương trình bậc hai theo cách tương tự. Đối với trường hợp xét mặt ellip ta có thể chuyển đổi mặt ellip thành mặt cầu và xét tia sáng đi qua mặt này tương tự như đi qua mặt cầu, như vậy cách tính giao điểm hoàn toàn tương tự.

2.4.1.4. Tia sáng và Mặt ẩn

Một bề mặt ẩn được xác định bởi hàm 𝑓 là tập hợp các điểm 𝑝⃗ sao cho giá của hàm 𝑓 có giá trị 0, 𝑓(𝑝⃗) = 0. Như vậy, để tìm giao điểm của tia sáng và bề mặt, ta phải tìm điểm 𝑝⃗ gần nhất thuộc tia sao cho 𝑓(𝑝⃗) có giá trị 0:f (o⃗⃗ + td⃗⃗) = 0

Phương trình này có thể giải bằng các phương pháp lặp như phương pháp Newton- Raphson. Pháp tuyến của bề mặt tại giao điểm được xác định bởi hàm:

𝑛⃗⃗ = ∇𝑓(𝑝⃗) = (𝜕𝑓(𝑝⃗) 𝜕𝑥 , 𝜕𝑓(𝑝⃗) 𝜕𝑦 , 𝜕𝑓(𝑝⃗) 𝜕𝑧 ) 2.4.1.5. Tia sáng và Mặt NURBS

Việc phát triển NURBS vào 1950 bởi những kĩ sư cần biểu diễn dạng thức chính xác trong toán học của các bề mặt tự do giống như vỏ của tàu thủy, bề mặt bên ngoài của tàu không gian vũ trụ, vỏ ôtô v.v…, những loại bề mặt vật thể yêu cầu được sản xuất lại một cách chính xác bằng kĩ thuật.

Lúc đầu mặt NURBS chỉ được sử dụng trong thuộc tính của gói phần mềm CAD của các công ty ôtô. Sau này chúng trở thành một phần của chuẩn gói chuẩn đồ họa máy tính.

Quá trình dựng ảnh tương tác thời gian thực của đường cong và mặt NURBS được tạo bởi máy trạm làm việc silicon, 1989. Vào năm 1993, công cụ mô hình hóa tương tác NURBS cho máy tính cá nhân, gọi là NURBS, đã được phát triển bởi CAS Berlin, một công ty nhỏ mới hình thành liên kết với trường đại học kĩ thuật Berlin. Ngày nay, hầu hết các ứng dụng đồ họa máy tính chuyên nghiệp có sẵn cho máy tính để bàn đều sử dụng kỹ nghệ NURBS.Mặt NURBS thường chứa nhiều đường cong biên, biểu diễn các phần của bề mặt bị "cắt bỏ". Như vậy, giao điểm tia sáng và mặt NURBS phải được kiểm tra đối với các đường cong cắt để xác định giao điểm nhau nằm trong hay ngoài đường cong biên, nếu nằm ngoài sẽ bị loại.

2.4.1.6. Tia sáng và Mặt con

Mặt con được sử dụng rộng rãi trong ngành công nghiệp điện ảnh để mô hình các bề mặt nhẵn với cấu trúc liên kết phức tạp, như đối với con người, động vật, v.v… Mặt con phổ biến nhất là Catmull-Clark và Loop. Việc tính toán dò theo các tia sáng trực tiếp trên các bề mặt con có phần phức tạp, đặc biệt là gần các đỉnh lạ. Cách xử lý phổ biến, đó là phân rã mặt con thành một khối đa giác và sau đó thực hiện ray tracing khối đó.

2.4.1.7. Tia sáng và Khối hộp

Một khối hộp thông thường được xác định bởi một đỉnh và ba vectơ (xem hình 3.20a). Một phép thử nghiệm đơn giản về việc giao nhau sẽ kiểm tra việc giao cắt tại tất cả sáu mặt của khối hộp. Hoặc một phép thử nhanh hơn có thể được thực hiện bằng cách chỉ kiểm tra ba mặt của khối hộp quay về phía nguồn sáng.

Hình 2.31. (a) Khối hộp thông thường; (b) Khối hộp trục liên kết.

Đối với các khối hộp trục liên kết, các phép thử tìm giao điểm được thực hiện hiệu quả hơn. Một khối hộp trục liên kết có hai hình chữ nhật trong mỗi mặt phẳng 𝑥𝑦, 𝑥𝑧 và 𝑦𝑧. Khối hộp trục liên kết được xác định bởi đỉnh nhỏ nhất 𝑝⃗𝑚𝑖𝑛 và đỉnh lớn nhất 𝑝⃗𝑚𝑎𝑥 của nó (hình 3.20b).

Nếu khối hộp được xem xét là loại khối hộp kín, ta không cần phải xác định giao điểm gần nhất và pháp tuyến mà chỉ cần xác định tia sáng có cắt khối hộp hay không. Khối hộp kín rất hữu ích cho việc tăng tốc ray tracing trong các cảnh phức tạp

Một phần của tài liệu (LUẬN văn THẠC sĩ) kỹ thuật hiển thị mô hình 3d và ứng dụng vào hiển thị một số hệ xương người lào (Trang 47 - 51)

Tải bản đầy đủ (PDF)

(91 trang)