ViewingTransf

Chia sẻ bởi Nguyễn Ngọc Sỹ | Ngày 14/10/2018 | 32

Chia sẻ tài liệu: ViewingTransf thuộc Tư liệu tham khảo

Nội dung tài liệu:


ĐỒ HỌA MÁY TÍNH

VIEWING TRANSFORMATIONS



















Dẫn nhập

? Sau công đoạn modeling transformation, tất cả các đối
tượng được đặt trong cùng một hệ tọa độ chung (world
coordinates).

? Bỏ qua công đoạn trivial rejection và illumination, chúng
ta sẽ xem xét công đoạn biến đổi vào không gian quan
sát (view transformation). Mục đích của công đoạn này
là chuyển đổi các đối tượng vào hệ tọa độ quan sát (eye
coordinates hay 3D camera coordinates)




















Dương Anh Đức, Lê Đình Duy




















Viewing transformation 1/10



Qui trình hiển thị























Camera

ĐỒ HỌA MÁY TÍNH
? Các tham số của Camera
? Vị trí mắt nhìn (x, y, z)

? Hướng nhìn (towards vector, up vector)

? Vùng quan sát

























Dương Anh Đức, Lê Đình Duy

























Viewing transformation 2/10

ĐỒ HỌA MÁY TÍNH

Camera Transformation



















? Trong cảnh trên, gốc tọa độ của world space đặt ngay
dưới đáy ghế, trục z hướng lên đi qua tâm của bình trà.
Để thuận tiện, trục x và y được chọn song song với các
bức tường (chú ý các viên gạch trên nền nhà). Với hệ
tọa độ này, ghế và bình trà rất dễ dàng biểu diễn.

? Bước tiếp theo, ta cần mô tả ảnh của mô hình ta đang
mong muốn diễn tả. Công việc này sẽ dễ dàng hơn
nhiều nếu gốc tọa độ trùng với vị trí quan sát (vị trí của
mắt hay camera). (Xem hình bên dưới)
























Dương Anh Đức, Lê Đình Duy
























Viewing transformation 3/10

ĐỒ HỌA MÁY TÍNH

? Ta có thể đạt được điều này nhờ vào các phép biến đổi
tịnh tiến và quay (rigid body transformations). Trước
tiên, ta cần thực hiện phép quay để cho 2 trục tọa độ
(world và camera) cùng phương.



















? Sau đó, ta thực hiện phép tịnh tiến để đưa gốc tọa độ
của world space về trùng với gốc tọa độ của eye space.



















? Tại sao ta lại quay trước rồi mới tịnh tiến ? Ta có
thể thực hiện theo một cách khác không ?
? Cách tiếp cận vừa trình bày không được trực quan và sẽ
gây không ít khó khăn khi ta muốn giao tiếp với người
dùng trong một hệ xử lý đồ họa 3 chiều. Ta thử tiếp cận
theo một cách khác.

Dương Anh Đức, Lê Đình Duy

Viewing transformation 4/10

ĐỒ HỌA MÁY TÍNH

? Thay cho việc xác định một hệ tọa độ quan sát mong
muốn bằng 1 phép quay và 1 phép tịnh tiến hệ tọa độ
thực ta có thể sử dụng phương pháp sau:

New Camera Transformation

? Trước tiên, ta xác định vị trí đặt camera (hoặc vị trí
quan sát) trong không gian thực. Ta gọi nó là vị trí mắt
(eye point). Sau đó, ta xác định một vị trí trong cảnh
(scene) mà ta muốn nó sẽ xuất hiện ở trung tâm của cửa
sổ nhìn. Ta gọi điểm này là điểm nhìn (look-at point).
Tiếp theo ta xác định 1 vector dùng để chỉ hướng đi lên
của ảnh tính từ look-at point. Ta gọi nó là vector
hướng lên (up-vector).



















? Cách biểu diễn trên rất tự nhiên. Ta có thể sử dụng
cách biểu diễn này để mô tả một quĩ đạo của camera
bằng cách chỉ thay đổi eye-point còn look-at point và up-
vector không đổi. Hoặc ta có thể quét camera từ đối
tượng này đến đối tượng khác trên ảnh bằng cách chỉ
thay đổi look-at point.







Dương Anh Đức, Lê Đình Duy







Viewing transformation 5/10

ĐỒ HỌA MÁY TÍNH

? 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:
�lx�
�lookatx�
�eyex�


l
�
y �
�
?�
lookat
�
y �
�
?�
eye

y
� lz�
� lookatz�
� eyez

? Chuẩn hóa vector l ta được vector l0:


l
H0?




l
2
x





?
l
l
2
y





?




l
2
z


? 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 l0thành vector [0, 0, -1] (Tại
sao ?).
?0

0
??1???0

l V

? 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:










Dương Anh Đức, Lê Đình Duy

r

l up
?H?










Viewing transformation 6/10

ĐỒ HỌA MÁY TÍNH

? Sau phép biến đổi V, ro(vector r đã được chuẩn hóa) sẽ
biến thành vector [1, 0, 0].
?1
0
?
r V

trong đó





r
H0?







r
2
x

0 ?0
r
??ry2
?







rz2

? 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:

u

r
? ?

l

? Vector này, sau khi được chuẩn hóa (thành vector u0), sẽ
bị biến thành vector [0, 1, 0] bởi V.
0 1 0???H
? u0V
H
?0 1 0???

u

2
x
u
??u

2
y

??u 2z
V

? Tổng hợp các kết quả trên ta được:
1

0
0




H
r0



0
1
0�
�
u
�
V

�
?�
0
H
�
�0



Dương Anh Đức, Lê Đình Duy
0
1 �
�??l0�



Viewing transformation 7/10

ĐỒ HỌA MÁY TÍNH

? 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 = VT 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:
Vrotate
???r0
�rx0
u0
u
0
x

??l0?
??l0x






r
0
y

u
0
y

l0
�
??�
�rz0
u
0
z

?
?
y �
l0z�

? 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):


?x - eye
x



y - eye
y
�rx
z- eye ?�r
z � y
�r
ux
uy
u
- lx�
- l
y
- l



?


?x` y`


z`?



Dương Anh Đức, Lê Đình Duy
�
z
z
z


Viewing transformation 8/10

ĐỒ HỌA MÁY TÍNH

? Phương trình trên có thể được viết lại như sau:

�rx

ux

- lx�
?
???
?�
�
x` y` z`
x
y z�ry
�rz
uy
uz
- ly� ?
- lz�
�rxux




- lx�
?
eyex
eyey
?�
eyez�ry
�rz
uy
uz
�
- ly�
- lz�

? 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:

rx
ux
??lx
0�

?x` y` z` 1???x y z 1?�
r
y
u

y
?
l
y
0

rz
uz
??lz
0

??r .eye
??u0.eye l0.eye 1

0
? 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:



















Dương Anh Đức, Lê Đình Duy



















Viewing transformation 9/10






































































Dương Anh Đức, Lê Đình Duy

ĐỒ HỌA MÁY TÍNH






































































Viewing transformation 10/10
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Ngọc Sỹ
Dung lượng: 290,00KB| Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)