Bài giảng đồ họa : VIEWING TRANSFORMATIONS part 2 potx

5 297 0
Bài giảng đồ họa : VIEWING TRANSFORMATIONS part 2 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Viewing transformation 6/10 • Bây giờ chúng ta sẽ xem xét, với mô tả trên, ta sẽ xây dựng được phép biến đổi từ hệ tọa độ thực sang hệ tọa độ quan sát như thế nào. • Trước tiên, ta sẽ xác đònh phần quay của camera transfromation (V). • Ta có thể xác đònh vector l có phương trùng với tia nhìn theo công thức: ù ê ê ê ë é − ú ú ú ù ê ê ê ë é = ú ú ú ù ê ê ê ë é z y x z y x z y x eye eye eye lookat lookat lookat l l l • Chuẩn hóa vector l ta được vector l 0 : 2 z 2 y 2 x 0 lll l l ++ = H • Ta có thể dễ dàng thấy rằng, phép biến đổi V mà ta đang xây dựng sẽ chuyển l 0 thành vector [0, 0, -1] (Tại sao ?). [] Vl100 0 =− • Ta còn có thể xác đònh một vector khác. Đó là vector r là tích hữu hướng của vector l và up-vector: uplr ×= H H ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Viewing transformation 7/10 • Sau phép biến đổi V, r o (vector r đã được chuẩn hóa) sẽ biến thành vector [1, 0, 0]. [] Vr01 0 H =0 trong đó 2 z 2 y 2 x 0 rrr r r ++ = H • Cuối cùng, ta có thể xác đònh vector cơ sở thứ 3, vector u vuông góc với 2 vector r và l: lru H H ×= • Vector này, sau khi được chuẩn hóa (thành vector u 0 ), sẽ bò biến thành vector [0, 1, 0] bởi V. [] Vu 0 H =010 [] V uuu u 2 z 2 y 2 x ++ = H 010 • Tổng hợp các kết quả trên ta được: V l u r 100 010 001 0 0 0 ú ú ú ù ê ê ê ë é − = ú ú ú ù ê ê ê ë é H H H ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Viewing transformation 8/10 • Chú ý rằng các vector mà chúng ta đã tạo ra đều có chiều dài là 1 (nghóa là chúng đều đã được chuẩn hóa) và chúng trực giao nhau đôi một. Như vậy, ma trận tạo bởi 3 vector này là ma trận trực chuẩn (orthonormal). Tính chất lý thú của các ma trận loại này là: V -1 = V T nếu V là ma trận trực chuẩn • Lợi dụng tính chất trên, ta có thể dễ dàng tính toán được thành phần quay của phép biến đổi: [] ú ú ú ù ê ê ê ë é − − − = −= 0 z 0 z 0 z 0 y 0 y 0 y 0 x 0 x 0 x 000rotate lur lur lur lurV • Tiếp theo, ta tính phần tònh tiến của viewing transformation. Để làm được điều này, trưóc tiên ta cần nhớ rằng phép quay chúng ta vừa xác đònh có tâm quay là gốc tọa độ, trong khi ta lại muốn phép quay xảy ra ở điểm quan sát (eye point). Ta có thể thực hiện phép quay với tâm quay đúng bằng cách trừ vào tọa độ của điểm đang xét trong không gian thực tọa độ của điểm quan sát. Ta có phương trình ([x’,y’,z’] là điểm ảnh tương ứng trong không gian quan sát): [] [] 'zy'x' l-ur l-ur l-ur eye-zeye-yeye-x zzz yyy xxx zyx = ù ê ê ê ë é ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Viewing transformation 9/10 • Phương trình trên có thể được viết lại như sau: [][] [] ú ú ú ù ê ê ê ë é − ú ú ú ù ê ê ê ë é = zzz yyy xxx zyx zzz yyy xxx l-ur l-ur l-ur eyeeyeeye l-ur l-ur l-ur zyx'zy'x' • Cuối cùng, ta có thể chuyển phép biến đổi sang dạng biểu diễn trong hệ tọa độ thuần nhất. Đó chính là công thức cuối cùng của V: [][] ù ê ê ê ê ë é −− − − − = 1.eyel.eyeu.eyer 0lur 0lur 0lur 1zyx1z'y'x' 000 zzz yyy xxx • Như vậy, ta có mối quan hệ giữa hệ toán độ quan sát và hệ toạ độ thế giới thực như sau: ẹO HOẽA MAY TNH Dửụng Anh ẹửực, Leõ ẹỡnh Duy Viewing transformation 10/10 . V. [] Vu 0 H =010 [] V uuu u 2 z 2 y 2 x ++ = H 010 • Tổng hợp các kết quả trên ta được: V l u r 100 010 001 0 0 0 ú ú ú ù ê ê ê ë é − = ú ú ú ù ê ê ê ë é H H H ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Viewing. vector [1, 0, 0]. [] Vr01 0 H =0 trong đó 2 z 2 y 2 x 0 rrr r r ++ = H • Cuối cùng, ta có thể xác đònh vector cơ sở thứ 3, vector u vuông góc với 2 vector r và l: lru H H ×= • Vector này, sau khi được. nhìn theo công thức: ù ê ê ê ë é − ú ú ú ù ê ê ê ë é = ú ú ú ù ê ê ê ë é z y x z y x z y x eye eye eye lookat lookat lookat l l l • Chuẩn hóa vector l ta được vector l 0 : 2 z 2 y 2 x 0 lll l l ++ = H •

Ngày đăng: 23/07/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan