Bài giảng Đồ họa máy tính: Các phép biến đổi - Ngô Quốc Việt

23 18 0
Bài giảng Đồ họa máy tính: Các phép biến đổi - Ngô Quốc Việt

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Đồ họa máy tính: Các phép biến đổi cung cấp cho người học những kiến thức như: Các phép biến đổi cơ bản; Ma trận của biến đổi tịnh tiến; Phép xoay; Kết hợp các phép xoay; Quay quanh vecto k bất kỳ;... Mời các bạn cùng tham khảo!

CÁC PHÉP BIẾN ĐỔI NGÔ QUỐC VIỆT 2009 Tịnh tiến Tỉ lệ • Biến đổi quanh gốc tọa độ Xoay Khối đặt gốc O Quay quanh Z 45; Tịnh tiến X Tịnh tiến X 1; Quay quanh Z 45  Tịnh tiến  Đồng sx = sy = sz Xoay quanh trục Z: Xoay quanh trục Y: Xoay quanh trục X:  x' cos   y '  sin   z'    w    sin  cos  0  x '  cos   y '     z '   sin     w    x' 1  y ' 0  z '   0  w  0 cos  sin  0 0 0 0  x  0  y  0  z  1  w sin  cos  0  x  0  y  0  z    1  w   sin  cos  0  x  0  y  0  z  1  w  Quay quanh vector A góc   Quay quanh trục Y góc  cho A nằm mặt phẳng      YZ Quay quanh trục X góc  cho A trùng với +Z Quay quanh trục Z góc  Quay ngược theo trục X (góc -) Quay ngược theo trục Y (góc -) Hỏi: cách tính    Cách tính ?  Chiếu A lên mặt phẳng XZ (Loại bỏ y-coordinate)  Tìm góc  để quay A đến x-axis:  = -(90° - ) =  - 90 °  Cách tính ?  Cần có ma trận sau:  p: The point to be rotated about A by   Ry : Quay quanh Y góc   Rx  : Quay quanh X góc   Rz : Quay quanh Z góc   Rx  -1: Quay quanh X góc -  Ry-1 : Quay quanh Y góc -  Nhân theo thứ tự nào?     Trả lời: phép biến đổi, theo thứ tự viết từ phải sang trái Vì vậy: p’ = Ry-1 Rx  -1 Rz Rx  Ry p Hỏi: làm cách tính Rx  -1  Trả lời: tính Rx (-)  Rõ hơn: ma trận xoay trực giao 10 Công thức Rodrigues: c = cos(), s=sin() 11      Viewing transformation: định vị camera hướng vào cảnh cần chụp Modeling transformation: Sắp xếp, định vị cảnh (nhiều đối tượng) Projection transformation: Chọn ống kính độ zoom Viewport transformation: Xác định độ lớn cảnh sau Tất dựa ma trận 4x4 12  Nhằm định vị hướng camera: sử dụng hàm gluLookAt(), với toạ độ hai vector (một hướng lên, nhằm vào “tâm” đối tượng) Là định vị hướng điểm nhìn (eye coordinate) gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);  (0, 0, 5): vị trí camera  (0, 0, 0): vị trí hướng đến  (0, 1, 0): đầu vector hướng lên  Xem glutLession05 13      Nhằm xác định viewing volume Chiếu lên hình, xem Hiệu ứng tương tự việc chọn ống kính (wideangle, normal, telephoto), vùng nhìn (field of view) Hàm glFrustum gluPerspective() Có thể dùng glMatrixMode(transformation type) để xác lập biến đổi tương ứng Chú ý: số ma trận biến đổi OpenGL hoán vị (hàng cột) so với ma trận chuẩn C 14  Chiếu phối cảnh: glFrustum  (left, bottom, -near) (right, top, -near) thuộc mặt near chiếu lên (lower, left) (upper, right) cửa sổ điểm nhìn (mắt) (0, 0, 0) 15  Giá trị near, far dương   Near   right  left       Near Top  Bottom 0  0   B 0  C 0  1  A Right  Left Top  Bottom ;B  ; Right  Left Top  Bottom Far  Near 2.Far  Near C ;D  Far  Near Far  Near A 16  Chiếu phối cảnh: gluPerspective 17  Xác lập ma trận chiếu phối cảnh gluPerspective( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) fovy: liếc theo góc thẳng đứng; aspect: tỉ lệ ngang dọc; zNear, zFar: khoảng xén  Ma trận chiếu xác định sau  18 fov*0.5 = arctan ((top-bottom)*0.5 / near) top = tan(fov*0.5)*near bottom = -top  top = tan(fov*3.14159/360.0) * near  left = aspect * bottom  right = aspect * top    19  Khối nhìn có dạng  Khoảng cách camera khơng ảnh hưởng đến kích cỡ hiển thị đối tượng 20 void glOrtho(GLdouble Left, GLdouble Right, GLdouble Bottom, GLdouble Top, GLdouble Near, GLdouble Far ) Giá trị far hay near âm, mặt nằm sau điểm nhìn, dương trước điểm nhìn    Right  Left         Top  Bottom 0  tx    ty   2 tz   Far  Near  Right  Left Right  Left Top  Bottom ty   Top  Bottom Far  Near tz   Far  Near tx   (left, bottom, near) (right, top, near) thuộc mặt near chiếu lên (lower, left) (upper, right) cửa sổ 21    Vùng chữ nhật theo đơn vị pixel windows để render cảnh (đã tính qua model view projection view) Tỉ lệ (dài/rộng) viewport nên đồng dạng với khối nhìn Chú ý: mắt nhìn theo hướng z âm Vì near=1, far=3 toạ độ có giá trị z từ đến thấy (mặc định mắt gốc) 22  Khi chọn đối tượng mouse  cần chuyển toạ độ đối tượng Sử dụng gluUnProject()  INV: ma trận nghịch đảo  23 ... (góc -? ??) Quay ngược theo trục Y (góc -? ??) Hỏi: cách tính    Cách tính ?  Chiếu A lên mặt phẳng XZ (Loại bỏ y-coordinate)  Tìm góc  để quay A đến x-axis:  = -( 90° - ) =  - 90 °  Cách... góc   Rx  -1 : Quay quanh X góc -? ??  Ry? ?-1 : Quay quanh Y góc -? ??  Nhân theo thứ tự nào?     Trả lời: phép biến đổi, theo thứ tự viết từ phải sang trái Vì vậy: p’ = Ry? ?-1 Rx  -1 Rz Rx ... type) để xác lập biến đổi tương ứng Chú ý: số ma trận biến đổi OpenGL hoán vị (hàng cột) so với ma trận chuẩn C 14  Chiếu phối cảnh: glFrustum  (left, bottom, -near) (right, top, -near) thuộc mặt

Ngày đăng: 26/10/2021, 13:26

Hình ảnh liên quan

 Nhằm xác định viewing volume. Chiếu lên màn hình, và xem được những gì. - Bài giảng Đồ họa máy tính: Các phép biến đổi - Ngô Quốc Việt

h.

ằm xác định viewing volume. Chiếu lên màn hình, và xem được những gì Xem tại trang 14 của tài liệu.

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