Nghiên cứu một số kỹ thuật tạo bóng trong đồ họa 3d1

64 187 0
Nghiên cứu một số kỹ thuật tạo bóng trong đồ họa 3d1

Đ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

1 MỤC LỤC MỤC LỤC PHẦN MỞ ĐẦU 3.2.1 Bóng khối (SHADOW VOLUME) 55 3.2.2 Bản đồ bóng (SHADOW MAPPING) .57 PHẦN KẾT LUẬN 61 PHẦN MỞ ĐẦU Đồ họa máy tính lĩnh vực phát triển nhanh tin học Nó áp dụng rộng rãi nhiều lĩnh vực khác thuộc khoa học, kỹ nghệ, y khoa, kiến trúc giải trí Thuật ngữ đồ họa máy tính (Computer Graphics) đề xuất nhà khoa học người Mỹ tên William Fetter vào năm 1960 ông nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing Các chương trình đồ họa ứng dựng cho phép làm việc với máy tính cách thoải mái thân thiện Năm 1966, Sutherland Học viện Công nghệ Massachusetts người đặt bóng cho đồ họa 3D việc phát minh thiết bị hiển thị trùm đầu (head-amounted display) điều khiển máy tính Nó cho phép người nhìn thấy hình ảnh dạng lập thể 3D Từ đến đồ họa 3D trở thành lĩnh vực phát triển rực rỡ đồ họa máy tính Nó ứng dụng rộng rãi hầu hết tất lĩnh vực Điện ảnh, Hoạt hình, kiến trúc ứng dụng xây dựng mô hình thực ảo… Và không nhắc đến vai trò tối quan trọng đồ họa 3D việc tạo game sử dụng đồ họa Doom, Halflife… Việc sử dụng đồ họa 3D game làm cho người chơi thích thú có cảm giác sống giới thực Có thể nói đồ họa 3D tạo nên công nghiệp game phát triển mạnh mẽ Mục đích đồ họa 3D tạo mô tả đối tượng, mô hình giới thật máy tính cho giống với thật tốt Việc nghiên cứu phương pháp kỹ thuật khác đồ họa 3D hướng đến mục tiêu cho nhân vật, đối tượng, mô hình tạo máy tính giống thật Và phương pháp tạo bóng cho đối tượng “Bóng (Shadow) vùng tối nằm vùng chiếu sáng, xuất vật thể chiếu sáng toàn phần” Bóng yếu tố quan trọng tri giác người việc nhận biết vật thể giới chiều Bóng giúp cho ta nhận biết vị trí tương đối vật đổ bóng (occluder) với mặt nhận bóng (receiver), nhận biết kích thước dạng hình học vật đổ bóng mặt nhận bóng Hình 1: Bóng cung cấp thông tin vị trí tương đối vật thể Với ảnh bên trái ta biết vị trí rối Nhưng với ảnh bên phải ta thấy vị khoảng cách chúng so với mặt đất xa dần Hình 2: Bóng cung cấp thông tin dạng hình học mặt tiếp nhận Hình bên trái ta biết dạng hình học mặt tiếp nhận, mặt bên phải dễ dàng thấy Hình 3: Bóng cung cấp thông tin dạng hình học rối Hình bên trái rối cầm đồ chơi, cầm vòng, bên phải cầm ấm trà Nhận biết quan trọng bóng nên chọn đề tài: “Nghiên cứu số kỹ thuật tạo bóng đồ họa 3D” Nội dung luận văn bao gồm chương: Chương 1: KHÁI QUÁT VỀ SỰ CHIẾU SÁNG VÀ CÁC NGUỒN SÁNG Chương giới thiệu khái quát đồ họa chiều ứng dụng, nguồn sáng chiếu sáng đồ họa chiều Chương 2: MỘT SÓ KỸ THUẬT TẠO BÓNG Chương sâu, nghiên cứu hai kỹ thuật tạo bóng cứng phổ biến kỹ thuật tạo bóng khối kỹ thuật tạo bóng sử dụng đồ bóng Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM Chương KHÁI QUÁT VỀ SỰ CHIẾU SÁNG VÀ CÁC NGUỒN SÁNG 1.1 Khái quát đồ họa chiều ứng dụng 1.1.1 Khái quát đồ họa 3D 1.1.1.1 Hiển thị 3D a Tổng quan Các đối tượng mô hình 3D xác định với tọa độ giới Cùng với tọa độ đối tượng, người dùng phải xác định vị trí hướng camera ảo không gian 3D xác định vùng nhìn (là vùng không gian hiển thị hình) Việc chuyển từ tọa độ giới sang tọa độ hình thực theo bước [1]: - Bước thực phép biến đổi để đưa camera ảo trở vị trí hướng tiêu chuẩn Khi điểm nhìn (eyepoint) đặt gốc tọa độ, hướng nhìn trùng với hướng âm trục Z Trục X phía phải trục Y lên phía hình Hệ tọa độ gọi Hệ tọa độ Mắt (Eye Coordinate System) Phép biến đổi từ tọa độ giới sang tọa độ mắt phép biến đổi affine, gọi phép biến đổi hiển thị (Viewing Transformation) Cả tọa độ giới tọa độ mắt biểu diễn tọa độ đồng (Homogeneous Coordinates) với w=1 - Bước thứ Tọa độ mắt chuyển qua tọa độ thiết bị chuẩn hóa (Nomalized Device Coordinates) vùng không gian mà ta muốn nhìn đặt khối lập phương tiêu chuẩn: Các điểm gần điểm nhìn (điểm đặt camera) có thành phần z nhỏ Bước gồm bước - Bước cuối cùng, phép biến đổi cổng nhìn (Viewport Transformation) kết hợp phép co giãn tuyến tính phép tịnh tiến Sẽ chuyển thành phần x y tọa độ thiết bị chuẩn hóa − ≤ x ≤ 1,−1 ≤ y ≤ sang tọa độ Pixel hình Thành phần z ( − ≤ z ≤ ) chuyển sang đoạn [0,1] sử dụng giá trị chiều sâu (Depth-Value) thuật toán Z-Buffer (bộ đệm Z) sử dụng cho việc xác định mặt hiển thị Bước thứ bao gồm bước + Một phép chiếu chuyển từ vùng nhìn sang khối lập phương tiêu chuẩn với tọa độ đồng nhất: − ≤ x ≤ 1,−1 ≤ y ≤ 1,−1 ≤ z ≤ Trong trường hợp sử dụng phép chiếu trực giao, vùng nhìn có dạng ống song song 3D với mặt song song với mặt hệ tọa độ mắt Trong trường hợp sử dụng phép chiếu đối xứng, vùng nhìn hình tháp cụt với đầu mút gốc tọa độ hệ tọa độ mắt Hệ tọa độ đồng (4 thành phần) thu sau phép chiếu gọi hệ tọa độ cắt (Clipping Coordinate System) Phép chiếu phép biến đổi affine trường hợp phép chiếu phép chiếu trực giao Nếu phép chiếu phép chiếu phối cảnh phép biến đổi affine (Vì w nhận giá trị khác 1) + Bước tiếp theo, vùng không gian hiển thị mà không nằm khối tiêu chuẩn (Khối gọi khối nhìn tiêu chuẩn) bị cắt Các đa giác, đường thẳng chứa có phần thay đổi để phần nằm khối nhìn tiêu chuẩn giữ lại Phần lại không cần quan tâm nhiều + Sau cắt gọt, tọa độ đồng chuyển sang tọa độ thiết bị cách chia x,y,z cho w Nếu w nhận giá trị qua phép chiếu, phép chia cho động phối cảnh mong muốn hình Vì lý đó., phép chia gọi phép chia phối cảnh (Perspective Division) Hình1.1: Tổng quan hiển thị 3D phép chiếu [8] b Biểu diễn điểm phép biến đổi Sự chuyển đổi từ tọa độ giới sang tọa độ thiết bị chuỗi phép biến đổi affine phép chiếu không gian Decarts chiều Các phép biến đổi affine phép chiếu không gian Decarts chiều biểu diễn tốt ma trận 4x4 tương ứng với tọa độ đồng (Homogeneous coordinates) (x,y,z,w) Điểm 3D với tọa độ đồng (x,y,z,w) có tọa độ affine (x/w,y/w,z/w) Mối quan hệ tọa độ affine tọa độ đồng [5] quan hệ 1-1 Cách đơn giản để chuyển từ tọa độ affine (x,y,z) điểm sang tọa độ đồng đặt w=1: (x,y,z,1) Chúng ta thừa nhận tất tọa độ giới biểu diễn cách Ta biểu diễn phép biến đổi affine [3] (như co giãn (scaling transformations), phép quay (rotations), phép tịnh tiến (translations)) ma trận mà không làm thay đổi thành phần w (w=1) ● Tịnh tiến véc tơ T = (Tx , T y , Tz ) : ● Phép co giãn theo nhân tố S = ( S x , S y , S z ) ● Phép quay quanh gốc tọa độ mà theo tập véc tơ chuẩn tắc { u , v, n }, trực giao đôi một, chuyển { X , Y , Z } c Phép biến đổi hiển thị (Viewing Transformation) Phép biến đổi hiển thị đưa camera ảo cho tùy ý camera với điểm nhìn trùng với gốc tọa độ hướng nhìn dọc theo chiều âm trục Z (xem hình 2.1) Trục Y sau phép biến đổi tương ứng lên phía hình Trục X phía phải Một cách thuận tiện để xác định vị trí camera ảo cho sãn vị trí điểm nhìn E , Một điểm khung nhìn R (điểm tham chiếu) hướng V lên phía hình Phép biển đổi hiển thị gồm bước: ● Một phép tịnh tiến đưa điểm nhìn E gốc tọa độ Ma trận biến đổi tương ứng M t (− E ) Kết sau: Hình 1.2: Phép biến đổi tịnh tiến [7] ● Một phép quay chuyển hướng nhìn ngược trục Z, quay vectơ V mặt phẳng YZ Vector V quay trùng với trục Y V vuông góc với hướng nhìn Trước hết ta xây dựng tập véc tơ chuẩn tắc phù hợp tọa độ giới n= u= E−R E−R V ×n V ×n v = n×u Ngược với hướng nhìn → Z ( Oz ) Chỉ phía phải, vuông góc với n → X Chỉ lên giống V , vuống góc với n u → Y Như ma trận phép quay là: M r (u,v, n) Và ma trận phép biến đổi là: Trong u, v v tính từ E , R V d Phép chiếu trực giao (Orthographic Projection) Trong trường hợp phép chiếu trực giao, vùng không gian hiển thị ống song song hệ tọa độ mắt Các mặt ống song song song song với mặt hệ tọa độ mắt Kích thước vị trí vùng không gian hiển thị xác định tọa độ mắt x left, xright, ybottom, ytop, zfront zback (xleft, ybottom) (xright, ytop) xác định cửa sổ mặt phẳng chiếu (hoặc mặt song song với mặt XY) mà vùng không gian hiển thị hiển thị Cửa sổ phải đưa dạng hình vuông [-1,+1] zfront zback định nghĩa mặt phẳng cắt trước cắt sau Tọa độ tất điểm không gian (hoặc điểm ta muốn nhìn) phải thỏa mãn zback ≤ z ≤ zfront Khoảng giá trị z phải đưa giá trị chiều sâu (depth value) nằm đoạn [-1,+1] Các điểm gần mắt có giá trị chiều sâu nhỏ 10 Hình 1.3 : Vùng không gian hiển thị phép chiếu trực giao [7] Phép chiếu trực giao thu cách thực phép biến đổi sau theo thứ tự: ● Phép tịnh tiến M t (− M ) đưa tâm vùng không gian hiển thị gốc tọa độ hệ tọa độ mắt ● Một phép co giãn để đưa kích thước vùng hiển thị đơn vị chiều ● Một phép đối xứng qua mặt XY để điểm nằm gần nhận giá trị z nhỏ Phép co giãn phép đối xứng thu phép biển đổi đơn: M s (S ) với: Như ma trận phép chiếu trực giao là: 50 o Tọa độ tọa độ để xác định giá trị độ sâu thực depth test Giả sử điểm chuyển sang có tọa độ (x,y,z’) o Sau công việc lại so sánh giá trị độ sâu z điểm có tọa độ (x,y) đồ độ sâu với giá trị z’ điểm (x,y,z’)  Nếu z < z’ điểm nằm bóng không vẽ hình thực vẽ khung cảnh từ vị trí điểm nhìn  Nếu z >=z’ điểm chiếu sáng vẽ hình từ vị trí điểm nhìn Hình 2.11: A < B điểm nằm bóng 51 Hình 2.12: A >= B điểm chiếu sáng 52 Hình 2.13: Hình bên trái: Khung cảnh bóng vẽ từ vị trí điểm nhìn Hình bên phải: Khung cảnh nhìn từ nguồn sáng Hình trái: Bản đồ bóng tạo nhìn từ vị trí nguồn sáng Hình phải (a): Bản đồ bóng chiếu lên khung cảnh nhìn từ mắt (giá trị A) Hình trái (b): Chiếu khoảng cách phẳng nguồn sáng lên khung cảnh nhìn từ mắt (Giá trị B) Hình Dưới phải: Bóng vẽ sau phép kiểm tra chiều sâu (a) (b) 53 2.2.3 Chuyển tọa độ Ta phải xác định chuyển tọa độ điểm từ hệ tọa độ mắt tọa độ hiển thị ánh sáng Hình 2.14: Các hệ tọa độ ma trận biến đồi • Đầu tiên ta phải chuyển từ hệ tọa độ mắt (Camera’s Eye Space) hệ tọa độ giới ma trận nghịch đảo ma trận biến đổi hiển thị (Camera’s View Matrix = Viewing matrix) Ta ký hiệu ma trận VEV • Sau ta phải đưa từ hệ tọa độ giới hệ tọa độ ánh sáng ma trận hiển thị ánh sáng (Light’s Viewing Matrix) Kí hiệu ma trận VLV • Tiếp theo thực phép chiếu thích hợp (Phép chiếu trực giao) để đưa hệ tọa độ thiết bị tiêu chuẩn PS 54 • Cuối thực phép biến đổi cổng nhìn đưa đoạn [-1,1] đoạn [0,1] với ma trận S là: Như ma trận T đưa điểm từ hệ tọa độ mắt tọa độ hiển thị ánh sáng có dạng: T = S PS VLV VEV 55 Chương CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Bài toán Giới thiệu chương trình mô hai kỹ thuật tạo bóng cứng dùng bóng khối đồ bóng dựa thuật toán bóng khối thuật toán tạo bóng dựa thông tin hình dạng vật thể cần tạo bóng , đòi hỏi phải có thông tin tính kết nối lưới đa giác tất vật thể có khung hình (scene) để tính toán cách hiệu xác Thuật toán tạo bóng dựa đồ bóng kỹ thuật tạo bóng không gian ảnh (image-space algorithm) nên thông tin hình dạng vật thể hay kiến thức hình học không cần thiết Thuật toán giống thuật toán bóng khối, thực phép kiểm tra “trong bóng” (in shadow) pixel Một pixel chiếu sáng vật chắn đường nối nguồn sáng Chìa khóa để hiểu thuật toán Shadow Mapping (bản đồ bóng) điểm nằm đồ bóng điểm hiển thị hình điểm nhìn đặt vị trí ánh sáng 3.2 Chương trình 3.2.1 Bóng khối (SHADOW VOLUME) Một số hướng dẫn: • Nhấn P: Để Pause • Nhấn U: Để Unpause • Nhấn F: Để chuyển sang dùng thuật toán Z-fail • Nhấn G: Để chuyển sang dùng thuật toán Z-pass • Key Up ( ↑ ): Để dịch chuyển nguồn sáng lên • Key Down ( ↓ ): Để dịch chuyển nguồn sáng xuống 56 • Click chuột trái vào dịch chuyển để thay đổi vị trí camera Số frames được render mỗi giây Thuật toán được sử dụng Vật thể được tạo bóng Nguồn sáng Hình 3.1: Bóng tạo thuật toán Z-fail 57 Hình 3.2: Bóng tạo thuật toán Z-pass Số Frame tăng đáng kể so với thuật toán Z-fail không cần Capping 3.2.2 Bản đồ bóng (SHADOW MAPPING) Một số hướng dẫn: • Nhấn C: Chuyển chế độ sang dịch chuyển Camera • Nhấn L: Chuyển chế độ sang dịch chuyển nguồn sáng • Click chuột trái di chuyển để dịch chuyển (nguồn sáng camera tùy thuộc chế độ nào) • Ấn Space: Để vẽ vùng quan sát (Frustum) • Nhấn T: Để chuyển vật thể sang hình vòng • Nhấn B: Để chuyển vật thể thành hình cầu 58 • Nhấn ( ↑ ) ( ↓ ): Để tăng giảm kích thước Bản đồ bóng Số Frames được render mỗi giây Vật được tạo bóng Mặt phẳng nhận bóng Kích thước đồ bóng Hình 3.3: Bóng tạo với kích thước đồ bóng 512 Sồ frames render mỗi giây thấp kích thước đồ bóng tăng, phải tính toán nhiều 59 Hình 3.4: Bóng tạo với kích thước đồ bóng 256 Số Frames render mỗi giây tăng lên cao số lượng tính toán giảm 60 Hình 3.5: Bóng tạo với kích thước đồ bóng 128 Sồ Frames render mỗi giây lên đến 101 61 PHẦN KẾT LUẬN Mỗi luận văn trình tìm hiểu, nghiên cứu thực tế, trình làm luận văn trình đúc kết kinh nghiệm người Qua trình làm luận văn, sau phân tích, tìm hiểu chung ứng dụng đồ hoạ 3D, bổ sung thêm cho nhiều kiến thức quý giá Tôi tìm hiểu sâu hơn, đầy đủ kỹ thuật tạo bóng Tôi có thêm kiến thức ứng dụng đồ hoạ máy tính việc tạo loại bóng, ứng dụng kỹ thuật tạo bóng lĩnh vực Điện ảnh, Hoạt hình, kiến trúc ứng dụng xây dựng mô hình thực ảo Tôi tìm hiểu kỹ thuật tạo bóng cứng kỹ thuật tạo bóng mềm Tuy nhiên luận văn có sâu giới thiệu kỹ thuật tạo bóng dùng bóng khối dùng đồ bóng kỹ thuật có tính ưu việt Sau trình nghiên cứu làm luận văn với dẫn nhiệt tình thầy giáo hướng dẫn học cách tìm hiểu, phân tích nghiên cứu vấn đề khoa học Trong thời gian làm luận văn tốt nghiệp, thân nỗ lực, cố gắng, đầu tư nhiều thời gian, công sức cho việc tìm hiểu nghiên cứu đề tài nhận bảo, định hướng tận tình thầy giáo hướng dẫn anh, chị trước hạn chế mặt thời gian khó khăn việc tìm kiếm tài liệu, hạn chế mặt kiến thức thân, nên chưa có kết thực hoàn hảo Kính mong thầy cô giáo bạn đồng nghiệp bảo giúp đỡ Hướng phát triển: Luận văn sâu nghiên cứu số kỹ thuật tạo bóng, đưa mô kỹ thuật tạo bóng cứng dùng đồ bóng dùng bóng khối Nhưng với tốc độ phát triển nhanh chóng ngành công nghệ 62 thông tin nói chung kỹ thuật đồ hoạ nói riêng đòi hỏi cần phải sâu để nghiên cứu thêm kỹ thuật tạo bóng mới, mô thêm số kỹ thuật tạo bóng khác 63 TÀI LIỆU THAM KHẢO Tiếng Việt Lương Mạnh Bá, Nguyễn Thanh Thủy ( 1999), Nhập môn Xử lý ảnh số, Nhà xuất Khoa học Kỹ thuật, Hà Nội Trần Thanh Hiệp ( 2004), “Tìm hiểu ngôn ngữ VRML ứng dụng”, Khoá luận tốt nghiệp đại học, Khoa Công nghệ - Đại học Quốc gia, Hà Nội Phạm Anh Phương, Nguyễn Hữu Tài ( 2006), Giáo trình Lý thuyết Đồ họa, Nhà xuất Khoa học Kỹ Thuật, Hà Nội Nguyễn Hải Thanh (2005), “ Shadow Technique_Thesis”, Khoá luận tốt nghiệp đại học, Khoa Công nghệ - Đại học Quốc Gia, Hà Nội Đỗ Năng Toàn, Phạm Việt Bình (2008), Giáo trình Xử lý ảnh, Nhà xuất Khoa học Kỹ thuật, Hà Nội Tiếng Anh Andrew V.Nealen (2000), “Shadow Volume and Shadow Mapping, Recent Development in Real-time Shadow Rendering”, University of British Columbia Dietrich, Sim ( 2003), “Shadow Techniques”, Game Developers Convention 2001, http://developer.nvidia.com/attach/1308, 2003-11-01 Jackie Neider, Tom Davis, Mason Woo ( 1997), “The Red Book”, Addison Wesley Publisher Woo, Andrew Poulin, Pierre Fournier, Alain (1990) , “A Survey of shadow algorithms”, IEEE CG&A 10 Williams, Lance ( 1978), “Casting curved shadows on curved surfaces”, Computer Graphics 12(8), pp 270-274 64 11 Mark Kilgard, “Shadow Mapping with Today’s Hardware”, Technical Presentation: http://developer.nvidia.com/view.asp?IO=cedec_shadowmap 12 Everitt, CassRege, Ashu Cebenoyan, Cem (2003), Hardware Shadow Mapping, http://developer.nvidia.com/attach/5708, 2003-12-17 13 Ikrima Elhassan ( 2007), Shadow Algorithms, 20-02-2007 ... quát đồ họa chiều ứng dụng, nguồn sáng chiếu sáng đồ họa chiều Chương 2: MỘT SÓ KỸ THUẬT TẠO BÓNG Chương sâu, nghiên cứu hai kỹ thuật tạo bóng cứng phổ biến kỹ thuật tạo bóng khối kỹ thuật tạo bóng. .. tham số GL_KEEP 1.1.1.3 Khái quát kỹ thuật tạo bóng a Phân loại Hầu hết thuật toán phương pháp tạo bóng chia làm loại bóng cứng (Hard shadow) bóng mềm (Soft shadow), phụ thuộc vào loại bóng mà tạo. .. Bóng khối (Shadow Volume) Bóng khối kỹ thuật tạo bóng cần đến cấu trúc hình học vật đổ bóng Vật đổ bóng phải tạo khối đa giác Theo ta tìm đỉnh cạnh viền, cạnh đóng vai trò tạo nên bóng khối Một

Ngày đăng: 16/04/2017, 17:07

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • PHẦN MỞ ĐẦU

    • 3.2.1. Bóng khối (SHADOW VOLUME)

    • 3.2.2. Bản đồ bóng (SHADOW MAPPING)

    • PHẦN KẾT LUẬN

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

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

Tài liệu liên quan