Ý nghĩa của việc chấm dứt tia sớm và truyền qua trước trong truy tìm tia


7

Tôi mới làm quen với đồ họa máy tính. Ngày nay, tôi đã cố gắng hiểu cách thức dò tia bằng cách sử dụng cấu trúc dữ liệu gia tốc. Tôi đã bắt gặp thuật ngữ "chấm dứt tia sớm" nhiều lần, tôi cũng đã xem qua internet nhiều lần, nhưng tôi không thể tìm thấy lời giải thích thỏa đáng về nó. Việc chấm dứt một tia sớm có nghĩa là gì và tại sao chúng ta phải làm điều đó?
Ngoài ra, tôi nhận thấy rằng thuật ngữ "truyền qua trước" được nhắc đến gần như mỗi khi có đề cập đến "chấm dứt tia sớm". Cụ thể là làm thế nào để truyền tải trước-sau hoạt động (trong trường hợp của cây kd chẳng hạn)?

Câu trả lời:


5

Truyền qua trước là ý tưởng rằng khi truyền tia qua cấu trúc gia tốc, chúng ta muốn kiểm tra các nút ở phía trước, tức là gần camera hơn, trước các nút khác. Nếu bạn chỉ muốn giao điểm đầu tiên với một bề mặt (như thường lệ trong dò tia), thì nếu bạn có một giao lộ trong nút phía trước, bạn không cần phải đi qua bất kỳ nút nào phía sau nó; vì bất kỳ giao lộ nào có thể sẽ có muộn hơn giao lộ bạn đã tìm thấy. Điều này tiết kiệm thời gian.

Ví dụ, trong cây kd, tại mỗi nút bạn có một mặt phẳng phân chia không gian chia thành hai nút con. Trước tiên, bạn sẽ hạ xuống đứa trẻ gần camera hơn và chỉ khi không tìm thấy giao điểm nào ở đó thì bạn mới hạ xuống đứa trẻ kia.

Chấm dứt tia sớm dường như là một thuật ngữ được sử dụng trong bối cảnh kết xuất khối. Khi bạn truyền tia qua một môi trường làm suy giảm ánh sáng, chẳng hạn như sương mù, khói, chất lỏng có mây, v.v., thì vượt quá một khoảng cách nhất định, không có khả năng tia nào có tác dụng nữa đối với hình ảnh. Nếu bạn có sương mù dày với tầm nhìn 10 mét, thì có thể nhìn thấy một vật ở cách đó 11 mét.

Bạn có thể xác định trước khoảng cách mà độ suy giảm đạt 99% hoặc hơn (nó không bao giờ hoàn toàn đạt được 100%, nhưng tiếp cận nó theo cấp số nhân). Không có lý do nào để giao tia với các vật thể xa hơn thế, vì vậy khi sử dụng cấu trúc gia tốc, bạn có thể chỉ cần loại bỏ bất kỳ nút nào vượt quá khoảng cách đó. Trong thực tế, tia trở thành một đoạn đường kết thúc ở một độ dài cố định. Nếu nó không trúng bất cứ thứ gì trong khoảng thời gian đó, sẽ không có điểm nào kiểm tra thêm. (Một trường hợp khác mà các tia có độ dài giới hạn là tiện dụng cho các tia bóng. Bạn chỉ muốn theo dõi chúng trở lại nguồn sáng ban đầu; bất kỳ giao điểm nào ngoài phạm vi không liên quan đến bóng tối.)


Cảm ơn @NathanReed. Thêm 1 câu hỏi. Nói rằng tôi muốn đi qua chiều rộng của cây trước, tôi ở cấp 0 (tức là ở gốc cây, tôi chưa chia cây, tôi có một hộp giới hạn bao gồm tất cả các nguyên thủy cảnh). Tôi chia hộp giới hạn dọc theo một trục sao cho nút con bên trái là nút gần camera hơn. Sau đó, tôi thấy rằng một tia R nhất định cắt nút trái. R nên được kết thúc sớm liên quan đến nút con phải và tất cả các nút con tương lai của nó. Nhưng tôi vẫn phải kiểm tra giao điểm của R với các nút con tương lai của nút bên trái này, phải không?
dùng2651062

1
@ user2651062 Thông thường bạn sẽ xây dựng toàn bộ cây trước khi bắt đầu di chuyển ngang qua nó. Nhận xét của bạn làm cho âm thanh giống như bạn đang cố gắng xây dựng và duyệt qua cùng một lúc? Hoặc những gì bạn có nghĩa là "các nút con tương lai"? Trong mọi trường hợp, bạn phải đi qua tất cả các nút con giao nhau với tia hoặc phân đoạn. Nếu nó giao với đứa trẻ bên trái, bạn hạ xuống đứa trẻ bên trái và lặp lại quá trình cho những đứa trẻ của nó. Bạn có thể cần phải hạ xuống cả hai đứa trẻ nếu cả hai đều giao nhau với tia / phân đoạn.
Nathan Reed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.