ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 1/8 Đ ĐĐ Đ Đ ĐĐ Đ O OO O O OO O À ÀÀ À À ÀÀ À H HH H H HH H O OO O O OO O Ï ÏÏ Ï Ï ÏÏ Ï A AA A A AA A 3 33 3 3 33 3 C CC C C CC C H HH H H HH H I II I I II I E EE E E EE E À ÀÀ À À ÀÀ À U UU U U UU U ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 2/8 D D a a ã ã n n n n h h a a ä ä p p • Các đối tượng trong thế giới thực phần lớn là các đối tượng 3 chiều còn thiết bò hiển thò chỉ 2 chiều. • Muốn có các hình ảnh 3 chiều ta cần giả lập. • Chiến lược cơ bản là chuyển đổi từng bước. Hình ảnh sẽ được hình thành từ từ, ngày càng chi tiết hơn. • Qui trình hiển thò: Modeling Transformation Trivial Rejection Illumination Viewing Transformation Clipping Projection Rasterization Display Biến đổi từ hệ toạ độ đối tượng sang hệ toạ độ thế giới thực Loại bỏ các đối tượng không nhìn thấy được Chiếu sáng đối tượng Chuyển từ world space sang eye space Loại bỏ phần nằm ngoài viewing frustum Chiếu từ eye space xuống screen space Chuyển đối tượng sang dạng pixel Hiển thò đối tượng ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 3/8 C C a a ù ù c c v v a a ä ä t t t t h h e e å å 3 3 D D đ đ ư ư ơ ơ ï ï c c b b i i e e å å u u d d i i e e ã ã n n n n h h ư ư t t h h e e á á n n a a ø ø o o ? ? • Point • Vector • Line • Ray • Triangle • Polygon • Quadric curve • Spline • Quadric solid • Curved surface • v.v… Đ Đ i i e e å å m m t t r r o o n n g g k k h h o o â â n n g g g g i i a a n n 3 3 c c h h i i e e à à u u • Mô tả một vò trí trong không gian typedef struct{ Coordinate x ; Coordinate y ; Coordinate z ; }Point3D ; 3 3 D D v v e e c c t t o o r r • Mô tả một hướng và biên độ (magnitude) ♦ Xác đònh bởi 3 toạ độ dx, dy, dz _ ♦ ♦ Magnitude 222 dzdydxV ++= ♦ ♦ Không có vò trí trong không gian • • Tích vô hướng của 2 vector ♦ 21212121 dzdzdydydxdxVV ++=• ♦ () ΘcosVVVV 1121 =• (x,y,z) typedef struct { Coordinate dx; Coordinate dy; Coordinate dz; }Vector; ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 4/8 Đ Đ o o a a ï ï n n t t h h a a ú ú n n g g t t r r o o n n g g k k h h o o â â n n g g g g i i a a n n 3 3 c c h h i i e e à à u u • Biểu diễn tổ hợp tuyến tính của 2 điểm. ♦ Biểu diễn dạng tham số của đoạn thẳng P = P1 + t (P2 - P1 ), (0 ≤ t ≤ 1) T T i i a a ( ( R R a a y y ) ) • Là một đoạn thẳng với một đầu nằm ở vô cực. ♦ Biểu diễn dạng tham số của tia P = P1 + t V, (0 ≤ t <∞) Đ Đ ư ư ơ ơ ø ø n n g g t t h h a a ú ú n n g g ( ( L L i i n n e e ) ) • Là một đoạn thẳng với cả hai đầu nằm ở vô cực. ♦ Biểu diễn dạng tham số của đường thẳng P = P1 + t V, (-∞<t <∞) typedef struct { Point P1; Point P2; }Segment; P 1 P 2 typedef struct { Point P1; Vector V; }Ray; P V typedef struct { Point P1; Vector V; }Line; P V ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 5/8 M M a a ë ë t t p p h h a a ú ú n n g g ( ( P P l l a a n n e e ) ) • Là một đoạn thẳng với cả hai đầu nằm ở vô cực. ♦ Biểu diễn của mặt phẳng P.N + d = 0 hoặc ax + by + cz + d = 0 Đ Đ a a g g i i a a ù ù c c ( ( P P o o l l y y g g o o n n ) ) • Là một vùng giới hạn bởi dãy các điểm đồng phẳng. ♦ Tam giác, ♦ Tứ giác, ♦ Đa giác lồi, ♦ Đa giác lõm, ♦ Đa giác tự cắt, ♦ Đa giác có lỗ ♦ Các điểm được cho theo thứ tự ngược chiều kim đồng hồ typedef struct { Vector N; Distance d; }Plane; typedef struct { Point *Points; int nPoints; }Polygon; ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 6/8 M M o o d d e e l l i i n n g g t t r r a a n n s s f f o o r r m m a a t t i i o o n n • Biến đổi từ Hệ tọa độ đối tượng sang Hệ tọa độ thế giới thực. • Mỗi đối tượng được mô tả trong một hệ tọa độ riêng được gọi là Hệ tọa độ đối tượng. • Có hai cách mô hình hóa đối tượng : ♦ Solid modeling: mô tả các vật thể (kể cả bên trong) ♦ Boudary representation: chỉ quan tâm đến bề mặt đ/tg • Các đối tượng có thể được biểu diễn bằng mô hình Wire- Frame • Nhận xét ♦ Khi biểu diễn đối tượng, ta có thể chọn gốc tọa độ và đơn vò đo lường sao cho việc biểu diễn thuận lợi nhất. Thường thì người ta chuẩn hóa kích thước của đối tượng khi biểu diễn. ♦ Boudary representation cho phép xử lý nhanh còn silid modeling cho hình ảnh đầy đủ và xác thực hơn. z 1 1 xy 1 1 2 3 45 6 7 8 9 10 ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 7/8 T T r r i i v v i i a a l l R R e e j j e e c c t t i i o o n n • Loại bỏ các đối tượng hoàn toàn không thể nhìn thấy trong cảnh. • Thao tác này giúp ta lược bỏ bớt các đổi tượng không cần thiết hiển thò giảm chi phí xử lý. I I l l l l u u m m i i n n a a t t i i o o n n • Gán cho các đối tượng màu sắc dựa trên các đặc tính của các chất tạo nên chúng và các nguồn sáng tồn tại trong cảnh. • Có nhiều mô hình chiếu sáng và tạo bóng : constant- intensity, interpolate (Gouraud), phong, …. V V i i e e w w i i n n g g t t r r a a n n s s f f o o r r m m a a t t i i o o n n • Thực hiện một phép biến đổi hệ tọa độ để đặt vò trí quan sát (viewing position) về gốc tọa độ và mặt phẳng quan sát (viewing plane) về một vò trí mong ước. • Hình ảnh hiển thò phụ thuộc vào vò trí quán sát và góc nhìn. • Hệ qui chiếu có gốc đặt tại vò trí quan sát và phù hợp với hướng nhìn sẽ thuận lợi cho các xử lý nhất. ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 8/8 C C l l i i p p p p i i n n g g • Thực hiện việc xén (clip) các đối tượng trong cảnh để cảnh nằm gọn trong một phần không gian hình chóp cụt giới hạn vùng quan sát mà ta gọi là viewing frustum. • Viewing frustum có trục trùng với tia nhìn, kích thước giới hạn bởi vùng ta muốn quan sát. P P r r o o j j e e c c t t i i o o n n • Thực hiện việc chiếu cảnh 3 chiều từ không gian quan sát xuống không gian màn hình. • Có hai phương pháp chiếu: ♦ Chiếu song song ♦ Chiếu phối cảnh • Khi chiếu ta phải tiến hành việc khử mặt khuất để có thể nhận được hình ảnh trung thực. • Khử mặt khuất cho phép xác đònh vò trí (x,y) trên màn hình thuộc về đối tượng nào trong cảnh. VCS z y x z=-near z=-far y=bottom x=right y=top x=left . MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 1/8 Đ ĐĐ Đ Đ ĐĐ Đ O OO O O OO O À ÀÀ À À ÀÀ À H HH H H HH H O OO O O OO O Ï ÏÏ Ï Ï ÏÏ Ï A AA A A AA A 3 33 3 3 33 3 C CC C C CC C H HH H H HH H I II I I II I E EE E E EE E À ÀÀ À À ÀÀ À U UU U U UU U ĐỒ. pixel Hiển thò đối tượng ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 3/ 8 C C a a ù ù c c v v a a ä ä t t t t h h e e å å 3 3 D D đ đ ư ư ơ ơ ï ï c c b b i i e e å å u u d d i i e e ã ã n n n n h h ư ư t t h h e e á á n n a a ø ø o o ? ? •. v.v… Đ Đ i i e e å å m m t t r r o o n n g g k k h h o o â â n n g g g g i i a a n n 3 3 c c h h i i e e à à u u • Mô tả một vò trí trong không gian typedef struct{ Coordinate x ; Coordinate y ; Coordinate z ; }Point3D ; 3 3 D D v v e e c c t t o o r r •