Bài giảng chi tiết về đồ họa máy tính

162 198 1
Bài giảng chi tiết về đồ họa máy tính

Đ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

ĐỒ HỌA MÁY TÍNH Hiển thò đối tượng hai chiều Một số khái niệm • Cửa sổ (window) vùng chọn để hiển thò hệ tọa độ giới thực • Vùng quan sát (viewport) vùng chọn thiết bò hiển thò để đối tượng cửa sổ ánh xạ vào • Cửa sổ xác đònh thấy thiết bò hiển thò, vùng quan sát xác đònh nơi hiển thò • Quá trình ánh xạ vùng đònh nghóa hệ tọa độ giới thực vào vùng hệ tọa độ thiết bò gọi phép biến đổi hệ quan sát (viewing transformation) Window Viewport ywmax yvmax yvmin ywmin xwmin Dương Anh Đức, Lê Đình Duy xwmax xvmin xvmax Hiển thò đối tượng hai chiều 1/7 ĐỒ HỌA MÁY TÍNH Qui trình hiển thò đối tượng hai chiều • Trước tiên, đối tượng mô tả đối tượng đồ họa sở thuộc tính chúng hệ tọa độ cục (modeling coordinates - MC) nhằm đơn giản hóa tận dụng đặc trưng riêng loại • Sau đó, dùng phép biến đổi hệ tọa độ để chuyển mô tả từ hệ tọa độ cục sang hệ tọa độ giới thực (world coordinates WC) chứa toàn đối tượng thành phần Phép chuyển đổi gọi phép chuyển đổi mô hình (modeling coordinates transformation) • Tiếp theo, đònh hệ tọa độ quan sát (viewing coordinates - VC), hệ tọa độ mô tả vò trí người quan sát đối tượng Nhờ việc sử dụng hệ tọa độ mà mô tả, đối tượng quan sát nhiều góc độ vò trí khác • Sau chuyển mô tả đối tượng từ hệ tọa độ giới thực sang hệ tọa độ quan sát, đònh nghóa cửa sổ hệ tọa độ này, đồng thời đònh nghóa vùng quan sát hệ tọa độ thiết bò chuẩn (normalized device coordinates - NDC) có tọa độ chiều thay đổi khoảng từ đến • Sau thực phép ánh xạ từ cửa sổ sang vùng quan sát, tất phần đối tượng nằm vùng quan sát bò xén (clip) toàn nằm vùng quan sát ánh xạ sang hệ tọa độ thiết bò (device coordinates - DC) Dương Anh Đức, Lê Đình Duy Hiển thò đối tượng hai chiều 2/7 ĐỒ HỌA MÁY TÍNH • Việc đưa hệ tọa độ thiết bò chuẩn nhằm giúp cho việc tương thích dễ dàng với nhiều loại thiết bò hiển thò khác • Bằng cách thay đổi vò trí vùng quan sát quan sát đối tượng vò trí khác hình hiển thò, đồng thời, cách thay đổi kích thước vùng quan sát, thay đổi kích thước tính cân xứng đối tượng hiển thò • Chúng ta thực hiệu ứng thu phóng cách ánh xạ cửa sổ có kích thước khác vào vùng quan sát có kích thước cố đònh Khi cửa sổ thu nhỏ, phần nằm cửa sổ phóng to giúp dễ dàng quan sát chi tiết mà thấy cửa sổ lớn MC Chuyển đổi từ hệ tọa độ cục sang hệ tọa độ giới thực WC Chuyển đổi từ hệ tọa độ giới thực sang hệ tọa độ quan sát Dương Anh Đức, Lê Đình Duy VC Chuyển đổi từ hệ tọa độ quan sát sang hệ tọa độ thiết bò chuẩn NDC Ánh xạ từ hệ tọa độ thiết bò chuẩn sanghệ tọa độ thiết bò DC Hiển thò đối tượng hai chiều 3/7 ĐỒ HỌA MÁY TÍNH Hệ tọa độ quan sát • Hệ tọa độ quan sát : ♦ Chọn điểm P0 (x , y0 ) hệ tọa độ giới thực làm gốc tọa độ ♦ Vector V mô tả hướng quan sát để đònh hướng cho trục tung yv hệ tọa độ Vector V gọi view-up vector • Từ V tính vector đơn vò v = (v x , v y ) u = (u x , u y ) tương ứng cho trục tung yv trục hoành x v hệ tọa độ Các vector đơn vò dùng để tạo thành hai dòng ma trận quay M R để đưa trục x v y v trùng với trục x w yw hệ trục tọa độ giới thực • Ma trận phép chuyển điểm hệ tọa độ giới thực sang hệ tọa độ quan sát : M WC ,VC = M T M R , với MT phép tònh tiến gốc tọa độ hệ quan sát gốc tọa độ hệ tọa độ giới thực yworld yworld yview yv iew y0 T xview x0 xworld xworld R xv iew (a) Dương Anh Đức, Lê Đình Duy (b) Hiển thò đối tượng hai chiều 4/7 ĐỒ HỌA MÁY TÍNH Hệ tọa độ thiết bò chuẩn • Do cách đònh nghóa hệ tọa độ thiết bò khác nên hình ảnh hiển thò thiết bò chưa hiển thò xác thiết bò Chính cần phải xây dựng hệ tọa độ thiết bò chuẩn đại diện chung cho thiết bò để mô tả hình ảnh giới thực mà không phụ thuộc vào thiết bò • Trong hệ tọa độ này, tọa độ x, y gán giá trò khoảng từ đến Như vậy, vùng không gian hệ tọa độ thiết bò chuẩn hình vuông đơn vò có góc trái (0,0) góc phải (1,1) y (1,1) Dương Anh Đức, Lê Đình Duy x Hiển thò đối tượng hai chiều 5/7 ĐỒ HỌA MÁY TÍNH Chuyển đổi từ cửa sổ sang vùng quan sát • Phép chuyển đổi từ cửa sổ sang vùng quan sát bao gồm phép biến đổi : ♦ Phép tònh tiến để dòch chuyển góc trái gốc tọa độ (hình a) ♦ Phép biến đổi tỉ lệ để chỉnh kích thước cửa sổ kích thước vùng quan sát (hình b, hình c) ♦ Phép tònh tiến dòch chuyển góc trái vùng quan sát (hình d) y y v v (xmax,ymax) (umax,vmax) (xmin,ymin) (umin,vmin) x x (a) (b) u (c) u (d) • Ta có ma trận phép biến đổi : u − u vmax − vmin M WV = M TW (− x ,− y )M S  max , x − x y max − y min  max     =    − x  u max − u x max − x 0 u max − u + u x max − x Dương Anh Đức, Lê Đình Duy   M TV (u , vmin )   − y vmax y max vmax y max − vmin − y − vmin + vmin − y  0   0   1  Hiển thò đối tượng hai chiều 6/7 ĐỒ HỌA MÁY TÍNH • Như P (x, y) điểm cửa sổ có tọa độ vùng quan sát là: (sx(x − x ) + umin , sy( y − ymin ) + vmin ) u max − u v − vmin sx = sy = max , với x max − x y max − y • sx, sy hệ số tỉ lệ kích thước cửa sổ vùng quan sát Khi sx = sy = , đối tượng qua phép chuyển đổi giữ nguyên hình dáng tính cân xứng Dương Anh Đức, Lê Đình Duy Hiển thò đối tượng hai chiều 7/7 ĐỒ HỌA MÁY TÍNH ĐỒ HỌA CHIỀU Dương Anh Đức, Lê Đình Duy Giới thiệu đồ họa chiều 1/8 ĐỒ HỌA MÁY TÍNH Dẫn nhập • Các đối tượng giới thực phần lớn đối tượng chiều thiết bò hiển thò chiều • Muốn có hình ảnh chiều ta cần giả lập • Chiến lược chuyển đổi bước Hình ảnh hình thành từ từ, ngày chi tiết • Qui trình hiển thò: Modeling Transformation Trivial Rejection Illumination Biến đổi từ hệ toạ độ đối tượng sang hệ toạ độ giới thực Loại bỏ đối tượng không nhìn thấy Chiếu sáng đối tượng Viewing Transformation Chuyển từ world space sang eye space Clipping Loại bỏ phần nằm viewing frustum Projection Chiếu từ eye space xuống screen space Rasterization Display Dương Anh Đức, Lê Đình Duy Chuyển đối tượng sang dạng pixel Hiển thò đối tượng Giới thiệu đồ họa chiều 2/8 ĐỒ HỌA MÁY TÍNH Các vật thể 3D biểu diễn ? • Point • Vector • Line • Ray • Triangle • Polygon • Quadric curve • Spline • Quadric solid • Curved surface • v.v… Điểm không gian chiều • Mô tả vò trí không gian typedef struct{ Coordinate x ; Coordinate y ; Coordinate z ; }Point3D ; (x,y,z) 3D vector • Mô tả hướng biên độ (magnitude) ♦ Xác đònh toạ độ dx, dy, dz _ ♦ Magnitude V = dx + dy + dz2 ♦ Không có vò trí không gian • Tích vô hướng vector ♦ V1 • V2 = dx dx + dy dy + dz1 dz ♦ V1 • V2 = V1 V1 cos(Θ ) Dương Anh Đức, Lê Đình Duy typedef struct { Coordinate dx; Coordinate dy; Coordinate dz; }Vector; Giới thiệu đồ họa chiều 3/8 ĐỒ HỌA MÁY TÍNH • Phép đối xứng qua mặt phẳng yOz, zOx xOy é− ê0 Mr(x) = ê ê0 ê ë0 0 0 0 0 ù ú ú ú ú é1 ê0 Mr(y) = ê ê0 ê ë0 −1 0 0 0 0 ù ú ú ú ú é1 ê0 Mr(z) = ê ê0 ê ë0 0 0 −1 0 0 ù ú ú ú ú • Phép đối xứng qua trục x, y z é1 ê0 Mx = ê ê0 ê ë0 0 −1 0 −1 0 0 ù é− ú ê ú My = ê ú ê0 ú ê ë0 0 0 −1 0ù é− ê −1 ú 0ú Mz = ê ê0 0ú ú ê ë0 0 0 0 ù ú ú ú ú • Phép biến dạng é êh Sh = ê xy ê h xz ê ë h yx h yz h zx h zy 0ù 0úú 0ú ú y y x z Dương Anh Đức, Lê Đình Duy x z Các phép biến đổi chiều 7/11 ĐỒ HỌA MÁY TÍNH Các phép biến đổi Affine tổng quát • Tổ hợp phép biến đổi Affine phép biến đổi Affine • Mọi phép biến đổi Affine phân rã thành tổ hợp phép biến đổi Affine sở Phép tỉ lệ với tâm • Phép tỉ lệ với tâm đặt điểm (xf, yf, zf) xét tổ hợp phép biên đổi sở: ♦ Tònh tiến điểm bất động (x f , y f , z f ) gốc tọa độ ♦ Thực phép biến đổi tỉ lệ với tâm gốc toạ độ ♦ Tònh tiến ngược điểm bất động từ gốc tọa độ trở vò trí ban đầu • Ma trận biến đổi là: ỉ sx ç ç S f (s x ,s y ,s z ) = ç ç ç (1-s )x x f è sy (1-s y )y f 0 sz (1-s z )z f 0ư ÷ 0÷ 0÷ ÷ ÷ø Phép quay quanh trục • Giả sử trục quay xác đònh điểm P1 P2 (chiều dương hướng từ P1 đến P2 thể vector k) Dương Anh Đức, Lê Đình Duy Các phép biến đổi chiều 8/11 ĐỒ HỌA MÁY TÍNH • Áp dụng qui tắc phân rã, ta biểu diễn quay quanh k góc θ thành dãy phép biến đổi sở sau: ♦ Tònh tiến trục k gốc tọa độ: Tr(-P0) (thành trục k') ♦ Quay quanh trục x để đặt trục k' nằm mặt phẳng xOz: R(x,α) (thành trục k'') ♦ Góc quay xác đònh dựa chiếu k' lên mặt phẳng yOz Ta không cần tính α cụ thể Thay vào ta tính sin(α) cos(α) cách trực tiếp y P1 P0 d k= k k' ky α x k" P0 P1 , P0 P1 d = k 2y + k 2z cos(α ) = ky kz , sin(α ) = d d z ♦ Quay quanh trục y để đưa trục k' trục z: R(y,-β) Tương tự bước trước, ta không cần tính cụ thể β ♦ Thực phép quay quanh trục z góc θ: R(z,θ) ♦ Thực chuỗi phép biến đổi ngược lại trình y z β kx Dương Anh Đức, Lê Đình Duy k" x cos(β ) = d = d, sin(β ) = kx = kx Các phép biến đổi chiều 9/11 ĐỒ HỌA MÁY TÍNH • Như vậy, phép quay quanh trục phân rã thành chuỗi biến đổi sở sau: Tr(-P0) R(x,α) R(y,-β) R(z, θ) R(y, β) R(x, -α) Tr(P0) Modeling transformation • Biến đổi từ Hệ tọa độ đối tượng sang Hệ tọa độ giới thực yt Tractor System yW xt zt zW World xW yfW zfW xfW Front-Wheel System Phép biến đổi Hệ toạ độ • Cần thực phép quay phép tònh tiến (gọi Rigid boby transformation) • Nếu chuyển đổi hai hệ toạ độ bàn tay trái bàn tay phải cần thêm phép đối xứng Dương Anh Đức, Lê Đình Duy Các phép biến đổi chiều 10/11 ĐỒ HỌA MÁY TÍNH Rigid boby transformation • Bao gồm phép tònh tiên phép quay tổ hợp chúng • Do không làm thay đổi hình dạng kích thước đối tượng, làm thay đổi vò trí, phương hướng chúng không gian Ví dụ phép tònh tiến Ví dụ phép quay Dương Anh Đức, Lê Đình Duy Các phép biến đổi chiều 11/11 ĐỒ HỌA MÁY TÍNH VIEWING TRANSFORMATIONS Dẫn nhập • Sau công đoạn modeling transformation, tất đối tượng đặt hệ tọa độ chung (world coordinates) • Bỏ qua công đoạn trivial rejection illumination, xem xét công đoạn biến đổi vào không gian quan sát (view transformation) Mục đích công đoạn chuyển đổi đố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 ĐỒ HỌA MÁY TÍNH Qui trình hiển thò Camera • Các tham số 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 độ world space đặt đáy ghế, trục z hướng lên qua tâm bình trà Để thuận tiện, trục x y chọn song song với tường (chú ý viên gạch nhà) Với hệ tọa độ này, ghế bình trà dễ dàng biểu diễn • Bước tiếp theo, ta cần mô tả ảnh mô hình ta mong muốn diễn tả Công việc dễ dàng nhiều gốc tọa độ trùng với vò trí quan sát (vò trí 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 đạt điều nhờ vào phép biến đổi tònh tiến quay (rigid body transformations) Trước tiên, ta cần thực phép quay trục tọa độ (world camera) phương • Sau đó, ta thực phép tònh tiến để đưa gốc tọa độ world space trùng với gốc tọa độ eye space • Tại ta lại quay trước tònh tiến ? Ta thực theo cách khác không ? • Cách tiếp cận vừa trình bày không trực quan gây không khó khăn ta muốn giao tiếp với người dùng hệ xử lý đồ họa chiều Ta thử tiếp cận theo 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 hệ tọa độ quan sát mong muốn phép quay phép tònh tiến hệ tọa độ thực ta 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) không gian thực Ta gọi vò trí mắt (eye point) Sau đó, ta xác đònh vò trí cảnh (scene) mà ta muốn xuất trung tâm cửa sổ nhìn Ta gọi điểm điểm nhìn (look-at point) Tiếp theo ta xác đònh vector dùng để hướng lên ảnh tính từ look-at point Ta gọi vector hướng lên (up-vector) • Cách biểu diễn tự nhiên Ta sử dụng cách biểu diễn để mô tả q đạo camera cách thay đổi eye-point look-at point upvector không đổi Hoặc ta quét camera từ đối tượng đến đối tượng khác ảnh cá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 xem xét, với mô tả trên, ta xây dựng phép biến đổi từ hệ tọa độ thực sang hệ tọa độ quan sát • Trước tiên, ta xác đònh phần quay camera transfromation (V) • Ta xác đònh vector l có phương trùng với tia nhìn theo công thức: él x ù é lookat x ù éeye x ù êl ú = êlookat ú − êeye y ê ê ê êë lz ú êë lookat z ú êë eyez • Chuẩn hóa vector l ta vector l0: H l0 = l l2x + l2y + l2z • Ta dễ dàng thấy rằng, phép biến đổi V mà ta xây dựng chuyển l0 thành vector [0, 0, -1] (Tại ?) [0 − 1] = l0 V • Ta xác đònh vector khác Đó vector r tích hữu hướng vector l up-vector: H H r = l × up Dương Anh Đức, Lê Đình Duy Viewing transformation 6/10 ĐỒ HỌA MÁY TÍNH • Sau phép biến đổi V, ro (vector r chuẩn hóa) biến thành vector [1, 0, 0] H [1 0] = r0 V H r0 = r rx2 + ry2 + rz2 • Cuối cùng, ta xác đònh vector sở thứ 3, vector u vuông góc với vector r l: H H u = r× l • Vector này, sau chuẩn hóa (thành vector u0), bò biến thành vector [0, 1, 0] V H [0 0] = u V H u [0 0] = 2 V ux + u y + uz • Tổng hợp kết ta được: H é1 0ù é r0 ù ê0 0ú = ê uH ú V ê ú ê H0 ú êë0 1ú êë− l0 ú Dương Anh Đức, Lê Đình Duy Viewing transformation 7/10 ĐỒ HỌA MÁY TÍNH • Chú ý vector mà tạo có chiều dài (nghóa chúng chuẩn hóa) chúng trực giao đôi Như vậy, ma trận tạo vector ma trận trực chuẩn (orthonormal) Tính chất lý thú ma trận loại là: V-1 = VT V ma trận trực chuẩn • Lợi dụng tính chất trên, ta dễ dàng tính toán thành phần quay phép biến đổi: Vrotate = [r0 u0 érx0 ê = êry0 êrz0 ë u 0x u 0y u 0z − l0 ] − l0x ù ú − l0y ú − l0z ú • Tiếp theo, ta tính phần tònh tiến viewing transformation Để làm điều này, trưóc tiên ta cần nhớ phép quay vừa xác đònh có tâm quay gốc tọa độ, ta lại muốn phép quay xảy điểm quan sát (eye point) Ta thực phép quay với tâm quay cách trừ vào tọa độ điểm xét không gian thực tọa độ điểm quan sát Ta có phương trình ([x’,y’,z’] điểm ảnh tương ứng không gian quan sát): [x - eye x y - eyey Dương Anh Đức, Lê Đình Duy érx ux - lx ù z - eyez êêry uy - ly = [x' y' z'] êërz uz - lz ] Viewing transformation 8/10 ĐỒ HỌA MÁY TÍNH • Phương trình viết lại sau: érx u x - lx ù [x' y' z'] = [x y z]êêry u y - ly úú − êërz u z - lz ú [eyex eyey érx u x - lx ù eyez êêry u y - ly úú êërz u z - lz ú ] • Cuối cùng, ta chuyển phép biến đổi sang dạng biểu diễn hệ tọa độ Đó công thức cuối V: ux − lx é rx ê r uy − ly [x' y' z' 1] = [x y z 1]ê y ê rz uz − lz ê ë− r0 eye − u eye l0 eye 0ù 0 • Như vậy, ta có mối quan hệ hệ toán độ quan sát hệ toạ độ giới thực sau: Dương Anh Đức, Lê Đình Duy Viewing transformation 9/10 ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Viewing transformation 10/10 ... nguyên hình dáng tính cân xứng Dương Anh Đức, Lê Đình Duy Hiển thò đối tượng hai chi u 7/7 ĐỒ HỌA MÁY TÍNH ĐỒ HỌA CHI U Dương Anh Đức, Lê Đình Duy Giới thiệu đồ họa chi u 1/8 ĐỒ HỌA MÁY TÍNH Dẫn nhập... dx; Coordinate dy; Coordinate dz; }Vector; Giới thiệu đồ họa chi u 3/8 ĐỒ HỌA MÁY TÍNH Đoạn thẳng không gian chi u • Biểu diễn tổ hợp tuyến tính điểm ♦ Biểu diễn dạng tham số đoạn thẳng P = P1...ĐỒ HỌA MÁY TÍNH Qui trình hiển thò đối tượng hai chi u • Trước tiên, đối tượng mô tả đối tượng đồ họa sở thuộc tính chúng hệ tọa độ cục (modeling coordinates

Ngày đăng: 20/10/2017, 15:42

Từ khóa liên quan

Mục lục

  • 2DViewing.pdf (p.1-7)

  • 3D-Introduction.pdf (p.8-15)

  • AreaFilling.pdf (p.16-31)

  • Clipping.pdf (p.32-42)

  • ComputerGraphicsPrimitives.pdf (p.43-48)

  • CProgrammingHelp.pdf (p.49-50)

  • HiddenSurfaceRemoval.pdf (p.51-65)

  • Illumination-Shading.pdf (p.66-79)

  • Introduction.pdf (p.80-93)

  • LineDrawing.pdf (p.94-115)

  • Projection.pdf (p.116-125)

  • Transf2D.pdf (p.126-141)

  • Transf3D.pdf (p.142-152)

  • ViewingTransf.pdf (p.153-162)

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

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

Tài liệu liên quan