chương 1 cũng đề cập đến một số lý thuyết cơ bản về ánh sáng, nguồn sáng, bóng và các mô hình của chúng từ đó làm cơ sở cho các nội dung được trình bày trong “Chương 2”. Chương 2: Một số kỹ thuật tạo bóng khối trong đồ họa ba chiều. Đây là chương nội dung chính của luận văn, nó tập chung trình bày hai kỹ thuật chính tạo bóng khối của đối tượng đó là “kỹ thuật tạo bóng Z-Pass ”, và “kỹ thuật tạo bóng Z- Fail ”. Với mỗi loại kỹ thuật đều có những phương pháp thể hiện khác nhau, mà phần nội dung này của luận văn cũng đề cập đến.
Số hóa bởi Trung tâm Học liệu http://www.vn/ 4 Chương 3: Chương trình thử nghiệm. Đây là chương học viên giới thiệu về một chương trình thử nghiệm được xây dựng nhằm thể hiện cho một số kết quả đã được trình bày, tổng hợp trong luận văn. Số hóa bởi Trung tâm Học liệu http://www.vn/ 5 Chƣơng 1. KHÁI QUÁT VỀ ĐỒ HỌA BA CHIỀU VÀ BÀI TOÁN TẠO BÓNG 1.
Khái quát về đồ họa ba chiều Khi chúng ta mô hình hóa và hiển thị một cảnh ba chiều, ta cần phải xem xét rất nhiều khía cạnh và vấn đề khác nhau chứ không đơn giản là thêm vào tọa độ thứ ba cho các đối tượng. Bề mặt đối tượng có thể xây dựng bởi nhiều tổ hợp khác nhau của các mặt phẳng và các mặt cong. Ngoài ra, đôi khi chúng ta cũng cần mô tả một số thông tin về bên trong các đối tượng. Các công cụ hỗ trợ đồ họa (graphics package) thường cung cấp một số hàm hiển thị các thành phần bên trong, những đường nét tiêu biểu hoặc hiển thị một phần của đối tượng ba chiều (solid object).
Ngoài ra, các phép biến đổi hình học thường được sử dụng nhiều hơn và đa dạng hơn trong đồ họa ba chiều so với trong đồ họa hai chiều. Phép biến đổi hệ quan sát trong không gian ba chiều phức tạp hơn nhiều so với trong không gian hai chiều do chúng ta phải chọn lựa nhiều tham số hơn khi mô tả một cảnh ba chiều sẽ xuất hiện trên màn hình như thế nào. Một cảnh đồ họa ba chiều Các mô tả về một cảnh ba chiều phải đi qua một quy trình xử lí gồm nhiều công đoạn như phép biến đổi hệ tọa độ quan sát và phép chiếu chuyển cảnh từ hệ tọa độ quan sát ba chiều xuống hệ tọa độ thiết bị hai chiều. Những phần nhìn thấy Số hóa bởi Trung tâm Học liệu http://www.vn/ 6 được của cảnh, ứng với một hệ quan sát được chọn nào đó, phải được xác định và cuối cùng, các thuật toán vẽ mặt sẽ được áp dụng nhằm tạo ra hình ảnh trung thực (gần với thực tế) của cảnh.
Quy trình hiển thị Quy trình xử lí thông tin trong đồ họa ba chiều là một chuỗi các bước nối tiếp nhau, kết quả của mỗi bước sẽ là đầu vào của bước tiếp theo. Biến đổi mô hình: biến đổi từ hệ tọa độ đối Modeling tượng (object-space) sang hệ tọa độ thế transformation giới thực thực (world space) Trivial Tối ưu hóa: loại bỏ các đối tượng không Rejection nhìn thấy được Illumination Chiếu sáng đối tượng Viewing Chuyển từ world space sang eye space Transformation Clipping Loại bỏ phần nằm ngoài viewing space Projection Chiếu từ eye space xuống screen space Rastorization Chuyển đối tượng sang dạng pixel Display Hiển thị đối tượng Hình 1. Quy trình hiển thị đối tượng ba chiều Quy trình bắt đầu bằng việc xây dựng các mô hình đối tượng. Các mô hình này thường được mô tả trong không gian ba chiều (x,y,z).
Các mô hình thường thể hiện vật thể (solid) hoặc bề mặt (boundaries) của đối tượng. Như vậy ta có hai kiểu mô hình hóa. Trong solid modeling các đối tượng đồ họa cơ sở thường được dùng để mô tả các đối tượng có thể tích (volume). Trong boundary representations(B- reps), các đối tượng được định nghĩa bởi bề mặt của chúng.
Các mô hình thường được biểu diễn trong một hệ tọa độ cục bộ, mà ta gọi là hệ tọa độ đối tượng. Trong hệ tọa độ này chỉ có bản thân đối tượng được định nghĩa, vì vậy gốc tọa độ và đơn vị đo lường thường được chọn sao cho việc biểu diễn đối tượng tiện lợi nhất. Số hóa bởi Trung tâm Học liệu http://www.vn/ 7 Bước đầu tiên trong quy trình hiển thị là biến đổi đối tượng từ không gian đối tượng (object-space) vào một không gian chung gọi là không gian thực (world space). Trong không gian này các đối tượng, nguồn sáng, và người quan sát cùng tồn tại.
Bước này được gọi là giai đoạn biến đổi mô hình (modeling transformation). Bước tiếp theo là một bước tối ưu hóa. Trong giai đoạn loại bỏ đơn giản (trivial rejection) ta cần loại trừ tất cả các đối tượng không thể nhìn thấy. Điều này giúp chúng ta tránh được việc xử lí một số phần không cần thiết của cảnh (scene) mà ta đang chuẩn bị hiển thị ở các bước sau.
Tiếp theo ta phải chiếu sáng (illumination) các đối tượng có thể nhìn thấy được bằng cách gán cho chúng màu sắc dựa trên các đặc tính của các chất tạo nên vật và các nguồn sáng tồn tại trong cảnh. Sau khi chiếu sáng, ta phải 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. Bước này gọi là bước đổi hệ quan sát. Sau bước này, các đối tượng được chuyển từ không gian thực sang không gian quan sát (eye space).
Trong không gian quan sát, ta phải thực hiện việc xén các đối tượng trong cảnh để cảnh nằm gọn trong một phần không gian chóp cụt mà ta gọi là viewing frustum. Bước này sẽ loại bỏ hoàn toàn các đối tượng (các mảnh đối tượng) không nhìn thấy được trong ảnh. Bước tiếp theo ta sẽ chiếu các đối tượng xuống mặt phẳng hai chiều. Bước Projection thực hiện phép biến đổi từ không gian quan sát sang không gian màn hình (screenspace).
Trong bước rời rạc hóa (rasterization) ta sẽ chuyển đối tượng thành các pixel. Cuối cùng, toàn cảnh sẽ được hiển thị lên màn hình [1]. Tổng quan biểu diễn điểm và các phép biến đổi Sự chuyển đổi từ tọa độ thế giới sang tọa độ của thiết bị là một chuỗi của các phép biến đổi affine và các phép chiếu trong không gian Decarts ba chiều. Các phép biến đổi affine và các phép chiếu trong không gian Decarts ba chiều có thể được biểu diễn tốt nhất bởi các ma trận 4x4 tương ứng với các tọa độ Số hóa bởi Trung tâm Học liệu http://www.vn/ 8 đồng nhất (Homogeneous coordinates) (x,y,z,w).
Điểm ba chiều với tọa độ đồng x y z nhất (x,y,z,w) sẽ có tọa độ affine là , , w w w Mối quan hệ giữa tọa độ affine và tọa độ đồng nhất không phải là quan hệ 1-1. Cách đơn giản nhất để chuyển từ tọa độ affine (x,y,z) của một điểm sang tọa độ đồng nhất là đặt w=1: (x,y,z,1). Chúng ta thừa nhận rằng tất cả các tọa độ thế giới được biểu diễn bằng cách này. Ta sẽ biểu diễn các phép biến đổi affine (như là co giãn (scaling transformations), phép quay (rotations), và phép tịnh tiến (translations)) bằng các ma trận mà sẽ không làm thay đổi thành phần w (w=1).
● Tịnh tiến bởi véc tơ T (Tx , Ty , Tz ) : 1 0 0 Tx x x Tx 0 1 0 Ty y y Ty M t (T ) M t (T ) 0 0 1 Tz z z Tz 0 0 0 1 1 1 ● Phép co giãn theo các nhân tố S (S x , S y , S z ) : Sx 0 0 0 x Sx x 0 Sy 0 0 y Sy y M s (S ) M s (S ) 0 0 Sz 0 z Sz z 0 0 0 1 1 1 ● Phép quay quanh gốc tọa độ mà theo đó tập các véc tơ chuẩn tắc là u , v , n , trực giao từng đôi một, sẽ được chuyển về X , Y , Z. ux uy uz 0 vx vy vz 0 M r (u , v , n ) nx ny nz 0 0 0 0 1 Các đối tượng trong mô hình ba chiều được xác định với tọa độ thế giới. Cùng với các tọa độ của đối tượng, người dùng cũng phải xác định vị trí và hướng của Số hóa bởi Trung tâm Học liệu http://www.vn/ 9 camera ảo trong không gian ba chiều và xác định vùng nhìn (là một vùng không gian được hiển thị trên màn hình). Việc chuyển từ các tọa độ thế giới sang tọa độ màn hình được thực hiện theo 3 bước (hình 1.3): Bước đầu tiên thực hiện một phép biến đổi để đưa camera ảo trở về vị trí và hướng tiêu chuẩn.
Khi đó điểm nhìn (eyepoint) sẽ được đặt ở gốc tọa độ, hướng nhìn trùng với hướng âm của trục Z. Trục X chỉ về phía phải và trục Y chỉ lên phía trên trong màn hình. Hệ tọa độ mới này sẽ được gọi là Hệ tọa độ Mắt (Eye Coordinate System). Phép biến đổi từ tọa độ thế giới sang các tọa độ mắt là một phép biến đổi affine, được gọi là phép biến đổi hiển thị (Viewing Transformation).
Cả tọa độ thế giới và tọa độ mắt đều được biểu diễn bởi tọa độ đồng nhất (Homogeneous Coordinates) với w=1. Tọa độ mắt được chuyển qua tọa độ của thiết bị chuẩn hóa (Nomalized Device Coordinates) để cho vùng không gian mà ta muốn nhìn được đặt trong một khối lập phương tiêu chuẩn: 1 x 1, 1 y 1, 1 z 1 Các điểm ở gần điểm nhìn (điểm đặt camera) hơn sẽ có thành phần z nhỏ hơn. Bước này sẽ gồm 3 bước con. Bước cuối cùng, phép biến đổi cổng nhìn (Viewport Transformation) là sự kết hợp của 1 phép co giãn tuyến tính và 1 phép tịnh tiến.
Sẽ chuyển thành phần x và y của tọa độ thiết bị chuẩn hóa 1 x 1, 1 y 1 sang tọa độ Pixel của màn hình. Thành phần z ( 1 z 1 ) được chuyển sang đoạn [0,1] và sẽ được sử dụng như là giá trị chiều sâu (Depth-Value) trong thuật toán Z-Buffer (bộ đệm Z) được sử dụng cho việc xác định mặt sẽ được hiển thị. Bước thứ 2 bao gồm 3 bước con. Một phép chiếu chuyển từ vùng nhìn sang 1 khối lập phương tiêu chuẩn với tọa độ đồng nhất: 1 x 1, 1 y 1, 1 z 1.
Trong trường hợp sử dụng phép chiếu trực giao, vùng nhìn này sẽ có dạng một ống song song ba chiều với các mặt song song với các mặt của hệ tọa độ mắt. Trong trường hợp sử dụng Số hóa bởi Trung tâm Học liệu http://www.vn/ 10 phép chiếu đối xứng, vùng nhìn sẽ là một hình tháp cụt với đầu mút là gốc tọa độ của hệ tọa độ mắt.