3D Introduction bài giảng đồ họa
ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 1/8ĐĐĐĐĐĐĐĐOOOOOOOỒÀÀÀÀÀÀÀHHHHHHHHOOOOOOOỌÏÏÏÏÏÏÏAAAAAAAA33333333CCCCCCCCHHHHHHHHIIIIIIIIEEEEEEEỀÀÀÀÀÀÀÀUUUUUUUU ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 2/8DDaẫãnnnnhhaậäpp• Các đối tượng trong thế giới thực phần lớn là các đốitượ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ò:ModelingTransformationTrivialRejectionIlluminationViewingTransformationClippingProjectionRasterizationDisplayBiến đổi từ hệ toạ độ đối tượng sanghệ toạ độ thế giới thựcLoại bỏ các đối tượng không nhìnthấy đượcChiếu sáng đối tượngChuyển từ world space sang eye spaceLoại bỏ phần nằm ngoài viewing frustumChiếu từ eye space xuống screen spaceChuyển đối tượng sang dạng pixelHiển thò đối tượng ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 3/8CCaáùccvvaậätttthheểå33DDđđưươợïccbbiieểåuuddiieễãnnnnhhưưtthheếánnaàøoo??• Point • Vector• Line • Ray• Triangle • Polygon• Quadric curve • Spline• Quadric solid • Curved surface• v.v…ĐĐiieểåmmttrroonnggkkhhoôânnggggiiaann33cchhiieềàuu• Mô tả một vò trí trong không giantypedef struct{Coordinate x ;Coordinate y ;Coordinate z ;}Point3D ;33DDvveeccttoorr• Mô tả một hướng và biên độ (magnitude)♦Xác đònh bởi 3 toạ độ dx, dy, dz_♦♦Magnitude222dzdydxV ++=♦♦Không có vò trí trong không gian•• Tích vô hướng của 2 vector♦21212121dzdzdydydxdxVV ++=•♦()ΘcosVVVV1121=•(x,y,z)typedef struct {Coordinate dx;Coordinate dy;Coordinate dz;}Vector; ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 4/8ĐĐooaạïnntthhaẳúnnggttrroonnggkkhhoôânnggggiiaann33cchhiieềàuu• 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ẳngP = P1+ t (P2- P1), (0 ≤ t ≤ 1)TTiiaa((RRaayy))• 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 tiaP = P1+ t V, (0 ≤ t <∞)ĐĐưươờønnggtthhaẳúnngg((LLiinnee))• 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ẳngP = P1+ t V, (-∞<t <∞)typedef struct {Point P1;Point P2;}Segment;P1P2typedef struct {Point P1;Vector V;}Ray;PVtypedef struct {Point P1;Vector V;}Line;PV ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 5/8MMaặëttpphhaẳúnngg((PPllaannee))• 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ẳngP.N + d = 0hoặcax + by + cz + d = 0ĐĐaaggiiaáùcc((PPoollyyggoonn))• 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ÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 6/8MMooddeelliinnggttrraannssffoorrmmaattiioonn• Biến đổi từ Hệ tọa độ đối tượng sang Hệ tọa độ thế giớithự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à đơnvò đo lường sao cho việc biểu diễn thuận lợi nhất. Thườngthì người ta chuẩn hóa kích thước của đối tượng khi biểudiễn.♦Boudary representation cho phép xử lý nhanh còn silidmodeling cho hình ảnh đầy đủ và xác thực hơn.z11xy112345678910 ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 7/8TTrriivviiaallRReejjeeccttiioonn• Loại bỏ các đối tượng hoàn toàn không thể nhìn thấytrong cảnh.• Thao tác này giúp ta lược bỏ bớt các đổi tượng khôngcần thiết hiển thò giảm chi phí xử lý.IIlllluummiinnaattiioonn• Gán cho các đối tượng màu sắc dựa trên các đặc tính củacác chất tạo nên chúng và các nguồn sáng tồn tại trongcảnh.• Có nhiều mô hình chiếu sáng và tạo bóng : constant-intensity, interpolate (Gouraud), phong, ….VViieewwiinnggttrraannssffoorrmmaattiioonn• 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ẳngquan 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ócnhìn.• Hệ qui chiếu có gốc đặt tại vò trí quan sát và phù hợpvới hướng nhìn sẽ thuận lợi cho các xử lý nhất. ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 8/8CClliippppiinngg• 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ụtgiớ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ướcgiới hạn bởi vùng ta muốn quan sát.PPrroojjeeccttiioonn• Thực hiện việc chiếu cảnh 3 chiều từ không gian quansá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ànhình thuộc về đối tượng nào trong cảnh.VCSzyxz=-near z=-fary=bottomx=righty=topx=left . không giantypedef struct{Coordinate x ;Coordinate y ;Coordinate z ;}Point3D ;33DDvveeccttoorr• Mô tả một hướng và biên độ (magnitude)♦Xác đònh bởi 3 toạ. Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 3/8CCaáùccvvaậätttthheểå33DDđđưươợïccbbiieểåuuddiieễãnnnnhhưưtthheếánnaàøoo??• Point • Vector• Line •