Raytracer của tôi hỗ trợ nhiều đối tượng. Để cắt chúng, tôi sử dụng kỹ thuật tiêu chuẩn để biến các tia sáng thành không gian đối tượng. Điều này hoạt động tuyệt vời cho đến khi tôi thêm mờ chuyển động.
Tôi mô hình hóa chuyển động mờ như một chuỗi các biến đổi (để đơn giản hóa thảo luận, hãy nói chính xác hai) thay vì một. Cách tiếp cận của tôi là lấy biến đổi nghịch đảo của tia ở cả hai khung hình chính và lerp các vị trí / hướng.
Điều này có vẻ hoạt động tốt cho các bản dịch, nhưng nó bị hỏng cho xoay. Ví dụ, đây là hai hình tam giác trải qua các góc quay 30 và 90 độ:
(4 mẫu, tái tạo MN, các mẫu màu đỏ đến từ gần hai khung hình chính)
Ở các góc, tôi sẽ mong đợi các mẫu được xếp nằm trên một đường thẳng giữa hai đỉnh. Thay vào đó, chúng phình ra bên ngoài. Cái này sai. Trong những cảnh thú vị hơn với các biến đổi thú vị hơn, nó gây ra một loạt các chế độ thất bại. Ví dụ: đây là một chân vịt trải qua một vòng quay 45:
Một số vấn đề là do sự phá vỡ của BVH (nó giả định sự cực đoan của các vật thể nằm ở khung hình chính), nhưng ngay cả một kết xuất vũ phu cũng không chính xác.
Tôi có thể sửa tất cả những điều này bằng cách chỉ thực hiện các phép biến đổi chuyển tiếp (biến đổi đối tượng, không phải tia), nhưng điều này chỉ hoạt động đối với các đối tượng có thể (chỉ thực sự là tam giác).
Làm cách nào tôi có thể làm cho raytracer của mình tạo ra các xấp xỉ tuyến tính để biến đổi (đặc biệt là xoay) bằng cách biến đổi các tia chứ không phải các đối tượng?