Vì vậy, tôi đã viết một máy ảnh 3D dựa trên Quaternion hướng tới các lập trình viên mới để nó dễ dàng tích hợp và bắt đầu sử dụng.Máy ảnh 3D dựa trên Quaternion có nên tích lũy các góc Quaternions hoặc Euler không?
Trong khi tôi đang phát triển nó, lúc đầu tôi sẽ lấy đầu vào của người dùng làm góc Euler, sau đó tạo ra một Quaternion dựa tắt của đầu vào cho khung đó. Sau đó tôi sẽ lấy Quaternion của Camera và nhân nó với cái mà chúng ta tạo ra cho đầu vào, và theo lý thuyết, chỉ cần thêm vòng quay đầu vào vào trạng thái hiện tại của vòng quay của máy ảnh, và mọi thứ sẽ rất béo và hạnh phúc. Cho phép gọi này: Tích lũy Quaternions, bởi vì chúng tôi đang lưu trữ và thêm Quaternions chỉ.
Nhưng tôi nhận thấy rằng đã xảy ra sự cố với phương pháp này. Tôi càng sử dụng nó, ngay cả khi tôi chỉ quay trên một góc Euler, nói rằng Yaw, nó sẽ, trong một số lần lặp lại, bắt đầu chảy máu sang một số khác, nói Pitch. Đó là một chút, nhưng khá không thể chấp nhận được. Vì vậy, tôi đã làm một số nghiên cứu và tìm thấy một bài báo nói rằng nó là tốt hơn để tích lũy góc Euler, do đó, máy ảnh lưu trữ quay hiện tại của nó như góc Euler, và đầu vào chỉ đơn giản là thêm vào mỗi khung. Sau đó, tôi tạo ra một Quaternion từ mỗi khung hình, mà lần lượt được sử dụng để tạo ra ma trận xoay của tôi. Và điều này cố định vấn đề luân phiên chảy máu vào trục không đúng.
Vì vậy, mọi thành viên Stackoverflow có bất kỳ thông tin chi tiết nào về vấn đề này không? Đó có phải là cách làm đúng đắn không?
tương tự với cách tiếp cận ma trận biến đổi và nó không phải là nỗ lực nhiều để thêm một số truy cập của các hoạt động vào góc quaternion euler dựa trên (vài dòng chỉ). btw tôi không khuyên bạn nên bình thường hóa quá thường xuyên vì nó có thể gây rối một chút với các hiệu ứng chuyển đổi mong muốn của bạn. Tôi thường bình thường hóa mọi hoạt động 64-128 – Spektre
_ "để phục hồi điều đó, bạn phải tái chuẩn hóa lại góc Euler trong mọi trường hợp" _ - Điều này không đúng chút nào - yếu tố tỷ lệ có thể được phục hồi bằng cách lấy độ lớn của quaternion – Eric