Thực tại ảo là một thế giới thực song lại ảo, vì một phần của thế giới thực sẽ được tái tạo trên máy tính, thông qua các thiết bị đầu vào con người có thể chìm đắm trong môi trường không
Trang 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
KHOA CÔNG NGHỆ THÔNG TIN
Vũ Duy Tuyên
CÁC KỸ THUẬT CHẠM NỔI 3D VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ
Thái Nguyên – 2010
Trang 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
KHOA CÔNG NGHỆ THÔNG TIN
Vũ Duy Tuyên
CÁC KỸ THUẬT CHẠM NỔI 3D VÀ ỨNG DỤNG
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS Đỗ Năng Toàn
Trang 3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Tôi, Vũ Duy Tuyên xin cam đoan toàn bộ nội dung bản luận văn này là
do tôi tự sưu tầm, tra cứu và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài Nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳ hình thức nào và cũng không được sao chép từ bất kỳ một công trình nghiên cứu nào Phần mã nguồn của chương trình đều do tôi tự thiết kế và xây dựng, trong đó có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất bản công khai và miễn phí trên mạng Internet
Nếu sai tôi xin hoàn toàn chịu trách nhiệm
Người Cam Đoan
Vũ Duy Tuyên
Trang 4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
LỜI CÁM ƠN
Sau thời gian nghiên cứu, tìm hiểu và viết luận văn, giờ luận văn của
em đã hoàn thành Lời đầu tiên em xin được chân thành cảm ơn sự giúp đỡ,
sự chỉ bảo và hướng dẫn nhiệt tình của thầy giáo PGS.TS Đỗ Năng Toàn – Viện Công nghệ Thông tin thuộc Viện Khoa học và Công nghệ Việt Nam là giáo viên hướng dẫn em trong suốt thời gian làm luận văn
Em xin chân thành cảm ơn các thầy giáo, cô giáo, các anh, chị công tác tại phòng Thực tại ảo – Viện Công nghệ thông tin, các thầy cô giáo công tác tại Khoa công nghệ thông tin – Đại học Thái Nguyên, cùng tập thể các bạn học viên lớp cao học Khóa 6 đã luôn giúp đỡ chia sẻ kinh nghiệm trong suốt khóa học
Xin chân thành cám ơn Ban lãnh đạo Ngân hàng Nông nghiệp và Phát triển Nông thôn Việt Nam chi nhánh Hải Phòng cùng các bạn đồng nghiệp trong phòng Điện Toán đã tạo điều kiện giúp đỡ để tôi hoàn thành được khóa học
Thái Nguyên, ngày 10 tháng 10 năm 2010
Học viên
Trang 5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 6MỤC LỤC
Trang
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT iii
DANH MỤC CÁC HÌNH VẼ iv
PHẦN MỞ ĐẦU 1
Chương 1: KHÁI QUÁT THỰC TẠI ẢO VÀ CHẠM NỔI 3D 2
1.1 Khái quát thực tại ảo 2
1.2 Ứng dụng cơ bản của thực tại ảo 4
1.2.1 Giáo dục và khoa học 4
1.2.2 Y học 5
1.2.3 Thiết kế xây dựng 7
1.2.5 Hàng không 8
1.2.4 Quân sự 9
1.2.6 Nghệ thuật 10
1.2.7 Điện ảnh 11
1.2.8 Game và giải trí 11
1.2.9 Hội thảo từ xa 11
1.3 Kỹ thuật chạm nổi 3D 13
Chương 2: MỘT SỐ KỸ THUẬT CHẠM NỔI 14
2.1 Kỹ thuật Bump mapping 14
2.1.1 Kỹ thuật Emboss bump mapping 16
2.1.2 Kỹ thuật Dot Product 3 17
2.1.3 Kỹ thuật Environment mapping 17
Trang 72.2 Kỹ thuật Normal mapping 22
2.3 Kỹ thuật Displayment mapping 25
2.3.1 Không gian tiếp tuyến 30
2.3.2 Tính toán các bản đồ chiều cao: 33
2.3.3 Ánh xạ thay thế trên mỗi đỉnh 33
2.3.4 Ánh xạ thay thế trêm mỗi điểm ảnh 37
2.3.5 Ánh xạ thay thế trên mỗi điểm ảnh cùng với hàm khoảng cách 41
2.4 Kỹ thuật Parallax mapping 50
2.4.1 Parallax mapping 51
2.4.2 Steep parallax mapping: 54
2.4.3 Parallax mapping cùng với độ dốc thông tin: 55
Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM 58
3.1 Đặt vấn đề 58
3.2 Kỹ thuật chạm nổi ánh xạ thay thế sử dụng hàm khoảng cách 58
3.3 Một số hình ảnh kết quả của chương trình 59
PHẦN KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 8DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Binormal Véc tơ nửa pháp tuyến
Bitangent Véc tơ nửa tiếp tuyến
BRDF Hàm phân bố năng xuất phản xạ hai chiều (Bidirectional
Reflectance Distribution Funtion)
CPU Bộ xử lý trung tâm (Center Processing Unit)
3D 3 chiều (3Dimension)
FS Tô bóng mảnh (Fragment shader)
GPU Đơn vị xử lý đồ họa (Graphic Processor Unit)
Mipmap Tập hợp nhóm các loại cỡ của mảng hình chất liệu
NURB Là một kiểu của Basis spline (Non-Uniform Rational
B-Splines)
PS Tô bóng điểm ảnh (Pixel Shader)
VS Tô bóng đỉnh (Vertex Shader)
Texel Là đơn vị cơ bản của không gian kết cấu (Texture element –
texture pixel)
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Hình ảnh của dự án nghiên cứu về tay của con người 5
Hình 1.2 Bên trái- Quả tim người, Bên phải- Mắt con người 6
Hình 1.3 Hình ảnh ứng dụng của thực tại ảo trong xây dựng 7
Hình 1.4 Ứng dụng của thực tại ảo trong huấn luyện quân sự 9
Hình 2.1 Bump mapping 13
Hình 2.2 Các ảnh kết cấu cho bản đồ khối 17
Hình 2.3 a- Environment map, b- Tính toán véc tơ phản chiếu 18
Hình 2.4 Ý tưởng cơ bản của displacement mapping 26
Hình 2.5 Không gian tiếp tuyến 28
Hình 2.6 Displacement mapping trên thiết bị tô bóng đỉnh 31
Hình 2.7 Ánh xạ thay thế trên mỗi điểm ảnh 34
Hình 2.8 Ray tracing của trường chiều cao 35
Hình 2.9 Một trường hợp khó khăn cho các thuật toán Displacement 39
Hình 2.10 Việc kết xuất văn bản được thay thế 39
Hình 2.11 Một ví dụ ánh xạ khoảng cách trong hai đơn vị độ dài 40
Hình 2.12 Sphere stracing 41
Hình 2.13 Displacement mapping cùng với việc vẽ hình cầu 44
Hình 2.14 Ánh xạ song song (Parallax mapping) 47
Hình 2.15 Ánh xạ song song cùng với offset limiting 48
Hình 2.16 Parallax mapping with slope information 50
Hình 3.1 Ảnh màu -ảnh chiều cao - ảnh pháp tuyến của quạt 54
Hình 3.2 Ảnh quạt của kỹ thuật chạm nổi 54
Trang 10Hình 3.4 Ảnh màu - ảnh chiều cao - ảnh pháp tuyến của bức tường đá 55
Hình 3.5 Ảnh bức tường đá của kỹ thuật chạm nổi 55
Hình 3.6 Hình kết quả thay đổi độ sâu bump và số lần lặp 56
Hình 3.7 Hình kết quả khi thay đổi độ sâu về 0.50 56
Hình 3.8 Kết quả thay đổi lần lặp về 0 57
Hình 3.9 Kết quả khi thay đổi hướng ánh sáng 57
Hình 3.10 Ảnh màu - ảnh chiều cao - ảnh pháp tuyến của đoạn văn bản 58
Hình 3.11 Ảnh chữ của kỹ thuật chạm nổi 58
Hình 3.12 Kết quả giảm độ sâu về 0.30 của ảnh text 59
Trang 11PHẦN MỞ ĐẦU
Ngày nay với sự phát triển như vũ bão của ngành công nghệ thông tin cũng như ứng dụng rộng khắp của nó vào trong đời sống kinh tế xã hội của con người Đi liền với sự phát triển của ngành công nghệ thông tin là lĩnh vực đồ họa máy tính, lĩnh vực này được rất nhiều nhà khoa học quan tâm nghiên cứu từ thế kỷ trước để ứng dụng vào thực tế
Nghiên cứu các đối tượng ảnh 3D là một trong những cách mô phỏng thực tế nhất các đối tượng trong thế giới thực Các kỹ thuật xử lý ảnh 3D sẽ giúp cho việc hiển thị, mô phỏng một cách tốt nhất thế giới bên ngoài trên máy tính Một trong các kỹ thuật xử lý ảnh 3D là kỹ thuật chạm nổi, kỹ thuật này cho phép làm nổi bật các thành phần của hình ảnh giống như thật Cùng với việc ứng dụng rộng khắp của
đồ họa 3D đã thôi thúc tác giả tìm hiểu về các kỹ thuật đồ họa 3D Do đó luận văn tốt nghiệp nghiên cứu về “Một số kỹ thuật chạm nổi 3D và ứng dụng” Luận văn gồm các phần như sau: phần mở đầu, phần kết luận, phần nội dung Phần nội dung
có 3 chương cụ thể như sau:
Chương 1: Khái quát thực tại ảo và kỹ thuật chạm nổi 3D
Phần này đề cập đến khái niệm thực tại ảo, so sánh thực tại ảo với một số lĩnh vực khác, ứng dụng của thực tại ảo, kỹ thuật chạm nổi: Khái niệm và một số vấn đề về kỹ thuật chạm nổi
Chương 2: Các kỹ thuật chạm nổi
Tổng hợp một số các kỹ thuật chạm nổi: kỹ thuật tạo bề mặt sần, kỹ thuật ánh xạ thay thế, kỹ thuật ánh xạ pháp tuyến, kỹ thuật ánh xạ song song
Chương 3: Chương trình thử nghiệm
Giới thiệu bài toán kỹ thuật chạm nổi sử dụng phương pháp ánh xạ thay thế dựa trên hàm khoảng cách, một số hình ảnh kết quả của chương trình
Trang 12Chương 1 KHÁI QUÁT THỰC TẠI ẢO VÀ CHẠM NỔI 3D 1.1 Khái quát thực tại ảo
Thực tại ảo mô phỏng môi trường không gian ba chiều trên máy tính, trong môi trường mô phỏng đó con người có thể quan sát và thực hiện những thao tác mà mình mong muốn Với tất cả những gì có trong môi trường mô phỏng thông qua thiết bị đầu vào với kết quả trả lại là những thay đổi của môi trường đó mà con người có thể quan sát hay cảm nhận được thông qua các thiết bị đầu ra
Theo như định nghĩa trên có thể nhận ra các thành phần của thực tại ảo là: môi trường không gian ba chiều, mô hình tạo trên máy tính, sự tương tác, các thiết
bị vào, ra Thực tại ảo là một thế giới thực song lại ảo, vì một phần của thế giới thực
sẽ được tái tạo trên máy tính, thông qua các thiết bị đầu vào con người có thể chìm đắm trong môi trường không gian ba chiều và cho phép con người có khả năng quan sát, tương tác với môi trường ảo đó Những tương tác đó đều được chương trình xử lý và thông qua thiết bị đầu ra sẽ đem lại cho con người cảm nhận về thay đổi của môi trường ấy như trong thực tế và tất cả mọi thứ diễn ra trong không gian
Trong thế giới Multimedia mọi thứ chỉ là 2D còn trong thế giới Thực tại ảo mọi thứ có thể mô phỏng 3D Trong multimedia thì vấn đề đã được xếp đặt và lên chương trình trước, thông tin được đóng gói với một kịch bản xác định và tương tác của người sử dụng với các đối tượng chỉ là những tương tác có sẵn, người sử dụng không thể thay đổi được bất cứ cái gì và không thể thêm cái gì vào đó được Thực tại ảo thì khác, tương tác trở lên tốt hơn và dễ dàng hơn, thậm chí một số hệ thống còn cho phép thêm vào và kết hợp với các tương tác, với âm thanh, hình ảnh, phần
Trang 13mềm và phần cứng trợ giúp làm cho con người có thể đắm mình trong thế giới thực tại Khi nói đến truyền thanh hay truyền hình ai trong chúng ta cũng nghĩ tới những chương trình được tổ chức một cách công phu nhằm hấp dẫn những người theo dõi chương trình và cố gắng làm cho người theo dõi chương trình cảm thấy chương trình càng hấp dẫn, càng thu hút càng tốt
Như vậy chương trình truyền thanh hay truyền hình chỉ nhằm hướng người ta theo dõi chương trình chứ không hướng người ta tham gia vào các chương trình Còn trong thực tại ảo thì hoàn toàn khác, không những chỉ hướng người sử dụng theo dõi chương trình mà còn làm cho người xem tham gia vào hệ thống một cách
tự nhiên, thoải mái, thám hiểm hấp dẫn trong cái thế giới ảo đó Trong thực tại ảo có thể thực hiện tương tác như trong thế giới thực và cũng cảm nhận sự tương tác ngược trở lại như trong thế giới thực Thỉnh thoảng chúng ta có xem một số film khoa học viễn tưởng, chúng ta thấy được những viễn cảnh hoàn toàn không có thực trên thế giới này Đó là sản phẩm với trí tưởng tượng phong phú của con người và chúng được mô hình hoá trên máy vi tính và được đưa vào phim Như vậy chúng ta
có thể thấy được rằng sự khác biệt ở đây sẽ càng khó phân biệt hơn khi chúng ta ứng dụng thực tại ảo vào Television Thực tại ảo bao gồm Game3D vì nguyên nhân đầu tiên mà thực tại ảo ra đời là nhằm phục vụ giải trí đặc biệt là Game 3D và Game 3D chỉ nằm trong lĩnh vực giải trí còn thực tại ảo thì có thể bao trùm mọi lĩnh vực của đời sống xã hội
1.2 Ứng dụng cơ bản của thực tại ảo
Tại hội trợ triển lãm thương mại năm 1989 hai công ty VPL và Autodesk đã giới thiệu các thiết bị cho việc giao tiếp với thế giới ảo Đây là bước đi đầu tiên cho việc khám phá rộng rãi các lĩnh vực ứng dụng mới của thực tại ảo và kỹ thuật chạm nổi Những lĩnh vực đang ứng dụng thực tại ảo và chạm nổi một cách mạnh mẽ hiện nay là: Giáo dục và khoa học, Y học, Công nghệ thông tin, Hàng không, Xây dựng, Giải trí, Quân sự, Điện ảnh
Trang 141.2.1 Giáo dục và khoa học
Giáo dục con người là vấn đề hàng đầu của mỗi quốc gia Tìm hiểu, nghiên cứu nhằm đưa ra phương pháp giáo dục hiệu quả đã khó, song còn có những vấn đề còn khó khăn hơn đó là làm sao kích thích được niềm say mê học tập, nghiên cứu của con người và tính tự giác, khả năng tư duy và tưởng tượng của mỗi con người
và làm sao để cung cấp môi trường học tập nghiên cứu tốt nhất nhằm phát huy hết những khả năng của con người
Theo như cách giáo dục truyền thống nhiều khi chúng ta không thể cung cấp được môi trường nghiên cứu học tập tốt, không khơi dậy được niềm đam mê, hứng thú hay không thể phát huy hết được khả năng tưởng tượng và tư duy của con người làm cho hiệu quả giáo dục không cao Những chương trình nhằm rèn luyện tư duy, những chương trình rèn luyện khả năng tưởng tượng, những chương trình cung cấp
mô hình thực nghiệm, những chương trình kích thích trí tò mò là chưa nhiều hay có thể là chưa nhiều chương trình hiệu quả Nguyên nhân là các chương trình được xây dựng chưa có khả năng phát huy hết được sự cảm nhận của con người, chưa gây được ấn tượng sâu sắc về vấn đề cần truyền đạt cho đối tượng cần truyền đạt, môi trường truyền đạt không gây được trí tò mò Hiện nay có một xu hướng mới trong việc ứng dụng Công nghệ thông tin trong giáo dục mà rất được quan tâm nghiên cứu và phát triển đó là xây dựng mô hình thực tại ảo trên máy vi tính nhằm cung cấp các môi trường học tập và nghiên cứu Những mô hình được xây dựng ở đây phải xây dựng làm sao để chuyển tải được thực tế vào môi trường mô phỏng đó, cung cấp khả năng tương tác của con người với môi trường mô phỏng đó, có khả năng kích thích cao với người tham gia Qua những lần thực nghiệm này thì chúng
ta sẽ ngày càng đạt được hiệu quả cao hơn trong giảng dạy
1.2.2 Y học
Khi xã hội càng phát triển thì vấn đề sức khoẻ con người càng được quan tâm hơn Càng ngày người ta càng cố gắng tìm ra các phương pháp, các cách thức chữa trị bệnh cho con người ngày một tốt hơn Hiện nay Công nghệ thông tin đang phát triển và những ứng dụng của nó vào thực tế trở nên phổ biến, đồng thời những
Trang 15thành quả to lớn của nó đem lại thì không ai có thể phủ nhận được, một trong các lĩnh vực mà ứng dụng Công nghệ thông tin một cách hiệu quả hiện nay là y học, cụ thể là đã có một số phần mềm hỗ trợ cho việc khám chữa bệnh: Phần mềm quản lý bệnh nhân, phần mềm nội soi, phần mềm mô phỏng các bộ phận cơ thể con người giúp cho việc điều trị bệnh Ví dụ như dự án nghiên cứu của Châu Âu vào tháng 11 năm 1993, dự án này cho phép xây dựng lại mô hình cánh tay của con người trong không gian 3D từ những dữ liệu hình ảnh trong y học và mô phỏng tất cả sự thay đổi có thể có của các bộ phận như sự co giãn cơ Dự án nghiên cứu nhằm đưa thực tại ảo vào việc chữa trị bệnh cho con người Bằng cách xây dựng một chương trình
mà cho phép các bác sĩ trên khắp thế giới có thể cùng tham gia quan sát, thảo luận
để đưa ra phương pháp chữa trị hiệu quả nhất Trong y học con người còn gặp rất nhiều những vấn đề mà nếu không có thực tại ảo thì không dễ tìm ra phương pháp giải quyết Ví dụ như việc cung cấp môi trường thực hành cho việc nghiên cứu và học tập, đây cũng là vấn đề bức xúc và gặp nhiều khó khăn hiện nay, chúng ta thiếu các mẫu để thực tập phẫu thuật hay môi trường thực để quan sát Đôi khi vì khả năng con người ví dụ như tầm quan sát của mắt chúng ta không thể quan sát được mạch máu của chúng ta như thế nào hay cấu trúc lược đồ gen của chúng ta ra sao hay trong phẫu thuật nhiều khi không thể thực hiện được do đối tượng thực hiện không có điều kiện sức khoẻ để thực hiện ca phẫu thuật lớn Dưới đây là một số hình ảnh minh hoạ về việc nghiên cứu và ứng dụng thực tại ảo trong y học:
Hình 1.1 Hình ảnh của dự án nghiên cứu về tay của con người Đây là dự án nghiên cứu của Châu Âu vào tháng 11 năm 1993, dự án này cho phép xây dựng lại mô hình cánh tay của con người trong không gian 3D từ
Trang 16những dữ liệu hình ảnh trong y học và mô phỏng tất cả sự thay đổi có thể có của các
bộ phận như sự co giãn cơ (theo địa chỉ: http://www.ligww.epfl.ch)
Hình 1.2 Bên trái- Quả tim người, Bên phải- Mắt con người Những vấn đề trên được giải quyết một cách hiệu quả khi có ứng dụng thực tại ảo Chỉ bằng cách xây dựng các mô hình thực tại ảo cần thiết cho các đối tượng
là chúng ta đã có ngay môi trường quan sát, nghiên cứu thực tập tốt thậm chí có thể nói là tốt hơn thực tế
1.2.3 Thiết kế xây dựng
Những chương trình đồ họa mạnh nhất hiện nay chủ yếu được phục vụ vào các lĩnh vực thiết kế và xây dựng như AUCAD, AUTODEST, 3DMAX, SHAPRE,… Những chương trình này đã giúp cho những nhà thiết kế xây dựng giảm được rất nhiều chi phí về thời gian và công sức thiết kế Song hầu hết các chương trình này mới chỉ dừng lại ở mức các bản vẽ chứ chưa thực sự tạo ra cho người ta cảm giác hay một cái nhìn về những công trình mà họ thiết kế trên thực tế
nó sẽ như thế nào Thực tại ảo tạo ra cho người ta cảm giác chìm đắm trong một không gian như trên thực tế mà đã được xây dựng trên máy vi tính và sẽ giúp cho chúng ta có thể có một cái nhìn chi tiết về công trình đã được thiết kế
Trang 17Hình 1.3 Hình ảnh ứng dụng của thực tại ảo trong xây dựng
1.2.5 Hàng không
Thời gian, nguồn đầu tư là vấn đề sống còn của tất cả các công ty tham gia hoạt động sản xuất kinh doanh đặc biệt là những ngành đòi hỏi phải có nguồn vốn lớn mà thời gian thu hồi vốn lâu và sức cạnh tranh cao như ngành hàng không vũ trụ Chúng ta không thể đầu tư một chiếc tàu vũ trụ để phóng thử nghiệm vào không gian, chúng ta không thể giao một chiếc máy bay cho một viên phi công lần đầu tiên bước lên máy bay mà chưa qua huấn luyện vì chi phí cho chiếc máy bay không phải
là nhỏ và quan trọng hơn nữa là vấn đề an toàn tính mạng con người Trên thực tế người ta làm thế nào để giải quyết vấn đề đó, thực tế khi mà chưa có ứng dụng của Công nghệ thông tin thì người ta buộc tất cả những học viên phải trau dồi lý thuyết thật nhuần nhuyễn trước khi bước lên máy bay nhằm giảm thiểu những thiệt hại hay nguy hiểm Tuy nhiên cách giải quyết này có nhược điểm là đòi hỏi quá nhiều thời gian và kinh phí đào tạo Một vài năm khi Công nghệ thông tin phát triển và các ứng dụng của nó vào lĩnh vực này càng trở nên mạnh mẽ đặc biệt là trong vấn đề trợ giúp đào tạo phi công, người ta xây dựng rất nhiều chương trình mô phỏng cho phi
Trang 18công tập luyện kết hợp với các thiết bị phần cứng để tạo ra một môi trường làm cho con người tưởng như ở trên một chiếc máy bay thật và mọi thứ diễn ra giống như thực tế Một chương trình máy tính tạo ra không gian 3D kết hợp với thiết bị phần cứng cho phép người phi công thực hiện những chuyến bay đến các sân bay đã được xây dựng sẵn với các tình huống khác nhau nhằm nâng cao kỹ năng xử lý tình huống như trong thực tế cho phi công với cách này người ta đã giảm thiểu được thời gian đào tạo, chi phí đào tạo và nâng cao tính toán an toàn của mỗi chuyến bay
1.2.4 Quân sự
Vấn đề môi trường thực tế, điều kiện kinh tế, kỹ thuật, vấn đề an toàn tính mạng con người là những vấn đề khó khăn hàng đầu của các quốc gia về quân sự Một trong lý do đầu tiên mà thực tại ảo ra đời là nhằm phục vụ cho quân sự Chắc hẳn ai cũng biết rằng không phải là lúc nào cũng có chiến tranh, song khi có chiến tranh không phải là lúc chúng ta chuẩn bị lực lượng, vậy thì lấy đâu ra môi trường thực tế để rèn luyện, chuẩn bị lực lượng hay trên thực tế có thể tạo ra môi trường tập luyện thực sự Do điều kiện kinh tế kỹ thuật không cho phép hơn nữa việc tập luyện ấy quá nguy hiểm tới tính mạng cho con người
Như vậy vấn đề ở đây là làm sao tạo ra được môi trường tập luyện như trên thực tế mà lại không quá tốn kém hay không nguy hiểm đến tính mạng con người trong khi đó hiệu quả tập luyện lại tốt như thực tế Người ta đã giải quyết vấn đề trên một cách thực sự hiệu quả khi ứng dụng thực tại ảo Điều này có thể thấy rõ như ở một số nước có quân sự mạnh như Mỹ, Nga, Trung Quốc,…Người ta đã xây dựng các hệ thống mô phỏng phục vụ cho việc tập luyện của bộ binh hay những hệ thống mô phỏng an ninh, mô phỏng trận địa phục vụ cho việc nghiên cứu, tập luyện nhằm tìm ra các biện pháp phòng thủ hay chiến đấu một cách hiệu quả và nâng cao chất lượng của quân sự Khi ứng dụng thực tại ảo vào trong quân sự thì hiệu quả kinh tế mà nó mang lại là thực sự to lớn, người ta sẽ giảm được một lượng lớn kinh phí phục vụ cho việc tập luyện hay thực hiện được những vấn đề mà trên thực tế khó có thể thực hiện được hay những vấn đề trên thực tế phải áp dụng những quy tắc an toàn nghiêm ngặt song vẫn có mối nguy hiểm lớn đến tính mạng và tài sản
Trang 19của con người Hình ảnh sau là ảnh minh họa của chương trình huấn luyện quân đội mới của hãng Cubic cho phép người lính có thể tự do di chuyển trong một môi trường thực tế ảo 360o Thông qua một chiếc kính đeo trước mắt, họ có thể nhìn và tương tác với cảnh vật xung quanh trong môi trường ảo đó để di chuyển và tập luyện chứ không bị bó buộc phải đứng một chỗ như các hệ thống huấn luyện ảo như trước đây, thường phải thông qua các máy chiếu hoặc tập luyện trên các màn hình kích thước lớn
Hình 1.4 Ứng dụng của thực tại ảo trong huấn luyện quân sự
1.2.6 Nghệ thuật
Một dự án đang thiết kế và xây dựng Viện bảo tàng nghệ thuật ảo (The Networked Virtual Art Museum), dự án này hiện tại đang kết hợp thực tại ảo với viễn thông Qua dự án này, người ta cũng đang đầu tư nhiều lĩnh vực hoặc đầu tư thêm vào lĩnh vực khác nhau như là phần mềm xây dựng thế giới, nghệ thuật ảo và kiến trúc ảo, viễn thông, lập trình máy tính, trí tuệ nhân tạo, giao thức truyền thông Việc xây dựng bảo tàng ảo này cần đến nhiều sự cộng tác của các chuyên gia khác nhau như là nhà nghệ thuật, nhà kiến trúc, chuyên gia xây dựng công cụ trợ giúp máy tính, lập trình viên, nhà soạn nhạc, chuyên viên viễn thông để cùng phối hợp với đội thiết kế nhằm giải quyết vấn đề kết nối trong môi trường nhúng Sự cài đặt ban đầu cho viện ảo này là toà nhà Fun House Hay ở Việt Nam để kỷ niệm 1000 năm Thăng Long Hà Nội, đã có dự án phục dựng lại toàn bộ kinh thành Thăng Long bằng môi trường 3D,
Trang 201.2.7 Điện ảnh
Như chúng ta đã biết hiện nay điện ảnh là một lĩnh vực đang lên ngôi, chắc hẳn ai trong chúng ta cũng đã từng xem phim và cũng đã từng thưởng thức những cảnh thú vị trong phim do các diễn viên, nhân vật trong phim thể hiện Và chúng ta chỉ có thể nghĩ rằng những điều đó chỉ có thể có trong phim chứ không có trên thực
tế Đúng vậy những phim được coi là hay nhất, được ưa chuộng nhất hiện nay là những phim có những cảnh ngoạn mục, hoành tráng Một vài những năm gần đây những phim đó đó ứng dụng thực tại ảo và những phương pháp xử lý đồ họa mạnh tạo ra những hiệu ứng, những cảnh mà trên thực tế không thể thực hiện được
1.2.8 Game và giải trí
Lý do đầu tiên mà thực tại ảo ra đời là phục vụ cho giải trí, như chúng ta đã thấy lịch sử ra đời của thực tại ảo là nhằm phục vụ cho giải trí, thực hiện việc mô phỏng các mô hình 3D, cung cấp các dịch vụ phục vụ tương tác của con người trong môi trường ảo với hình ảnh tuyệt vời kết hợp với âm thanh nổi, các thiết bị vào ra làm cho con người ở trong môi trường ảo mà như là ở trong môi trường thật Thậm chí còn hấp dẫn hơn nhiều bởi trong môi trường đó con người có thể thực hiện những điều mà trên thực tế họ không thể thực hiện được Với khả năng kết hợp với các thiết bị vào ra, các hiệu ứng đồ họa chỉ có thể thấy được trên máy tính đã làm cho thực tại ảo nhanh chóng trở thành một ứng dụng không thể thiếu trong Game và trong giải trí với những trò Game giải trí 3D làm say đắm con người
1.2.9 Hội thảo từ xa
Các công việc được trao đổi giữa những người ở các nơi khác nhau bằng cách chia sẻ thông tin thông qua mạng Hội thảo từ xa là một ứng dụng của mục đích này Sự cảm nhận không gian và sử dụng không gian cho việc gặp gỡ và trao đổi với nhau trong môi trường ba chiều có đặc điểm: Kích thích mạnh mẽ người tham gia trong hội thảo, Âm thanh vẫn giữ được tự nhiên, Có được các thao tác phối hợp như trong thế giới thực
Vì hội thảo ảo đóng một vai trò quan trọng trong viễn thông nên có nhiều nhà nghiên cứu tập trung vào các vấn đề trong công việc truyền thông và công việc
Trang 21có tính chất phối hợp với nhau Lấy một ví dụ minh hoạ cho vấn đề này: Các thành viên của nhóm Human Tele-Group trong khoa nghiên cứu về điều kiện và kết quả làm việc để cải tiến công việc hiệu quả hơn của trường đại học Twente, Hà Lan đã thiết kế và cài đặt một hệ thống hội thảo nhiều bên từ xa Thành phần của hệ thống này là phòng họp ảo ba chiều mà ở đó mọi người tham gia nhìn thấy nhau qua hình ảnh, hình ảnh này được đưa lên bề mặt ba chiều, bề mặt này quay theo hướng nhìn của người tham dự Các khe, đốm sáng trên bàn hoặc trên tài liệu ở trên bàn cho thấy những người khác đang làm việc Khi đó trong thực tế thì những người tham
dự là đang ở nhà riêng của họ ngồi bên cạnh máy tính cùng với một máy quay gọi là Eyegaze, thiết bị này gắn với hệ thống theo dõi mắt Hệ thống này được cài đặt dựa trên VRML 2.0 và thư viện Java
Như vậy thực tại ảo có ứng dụng trong hầu hết các lĩnh vực của đời sống Qua đó cũng nhận thấy được ý nghĩa to lớn của việc ứng dụng thực tại ảo, bởi những vấn đề khó khăn mà nếu không có thực tại ảo thì có thể nói là khó lòng giải quyết hay nếu có giải quyết được thì hiệu quả cũng không cao và chi phí sẽ rất tốn kém Còn khi ứng dụng thực tại ảo vào thì những vấn đề đó trở nên đơn giản hơn và hiệu quả mang lại thật sự to lớn kể cả vật chất lẫn tinh thần Thực tại ảo cung cấp một giao diện nhiều chiều giữa máy và con người, chính nhờ điều này và kết hợp với các thiết bị khác nhau cho nên thực tại ảo tạo ra những ứng dụng mà ở đó con người có một cách để xây dựng, thao tác dữ liệu phức tạp một cách tự nhiên và thực tại ảo được sử dụng để mô phỏng thế giới thực trong nhiều ứng dụng khác nhau Tuy nhiên để có được các mô hình thực tại ảo như trên thì cần phải có một ngôn ngữ xây dựng chúng, chương tiếp theo sẽ tìm hiểu ngôn ngữ VRML để xây dựng
mô hình thực tại ảo
1.3 Kỹ thuật chạm nổi 3D
Lịch sử phát triển của các kỹ thuật chạm nổi gắn liền với sự phát triển của các kỹ thuật đồ họa 3D Sự ra đời của kỹ thuật chạm nổi bắt đầu từ những năm 70 của thế kỷ trước Năm 1978 J.Blimn đã trình bày kỹ thuật chạm nổi đầu tiên, sau đó rất nhiều các nhà khoa học trên thế giới đã phát minh cải tiến các kỹ thuật chạm nổi
Trang 22nhằm từng bước cho các ảnh tốt hơn để gắn các kỹ thuật này vào trong các chip đồ họa và đưa các kỹ thuật này ứng dụng phổ biến trên thực tế
Để thực hiện chạm nổi trên ảnh 3D quả là rất khó bởi vậy chúng ta phải sử dụng ảnh 2D để làm giả 3D Sự khác nhau giữa Displacement mapping (còn được gọi là bump mapping) và sự giả mạo (hay bump mapping 2D) là giả bump mapping chỉ xáo trộn các bề mặt chuẩn thay thế bởi hình học Sự khác nhau này có thể xem trong hình bóng hay các hình chiếu Trong bump mapping thực sự, các điểm nhấp nhô là được áp dụng cho hình học, làm ảnh hưởng tới một điểm nhấp nhô hình bóng Giả bump mapping là được tính toán một cách hiệu quả và có thể được thực hiện trong thời gian thực bởi card 3D, trong khi các bump mapping thật thường được nhận cho off-line (không phải thời gian thực) các ảnh được dõi quang tia (ray-traced images) Cho mục đích đạt được thời gian thực, bump mapping thường đề cập đến một pass (pass là một quá trình từ khi bắt đầu tới khi kết thúc để sinh ra một khung) hoặc là nhiều pass (multi-pass) và có thể được thực thi như là nhiều pass (thường là ba hoặc bốn) để giảm số lượng tính toán lượng giác được yêu cầu
Trang 23Chương 2 MỘT SỐ KỸ THUẬT CHẠM NỔI
2.1 Kỹ thuật Bump mapping
Hình 2.1 Bump mapping
Là một phương pháp tái tạo hiệu ứng nhấp nhô, lổn nhổn của các bề mặt trên phạm vi nhỏ Kỹ thuật chạm nổi là một kỹ thuật đồ họa máy tính, nơi mỗi một điểm ảnh, sự xáo trộn lên bề mặt pháp tuyến của đối tượng được lấy lại tìm trong ánh xạ kết cấu (texture map) và được áp dụng trước khi việc tính toán sự chiếu sáng được thực hiện Kết quả là rất tốt, được chi tiết trong việc biểu diễn bề mặt hoàn toàn giống với chi tiết vốn có trong thế giới tự nhiên Ánh xạ pháp tuyến và ánh xạ song song (Normal và parallax mapping) là những kỹ thuật thường được sử dụng để tạo các nhấp nhô nhỏ (bumps), sử dụng các kỹ thuật mới để tạo bump mapping, việc sử dụng tỷ lệ mức xám đã lỗi thời Sự khác nhau giữa displacemen mapping và bump mapping là hiển nhiên trong các ảnh ví dụ; trong bump mapping một thành phần bình thường được xáo trộn, không ảnh hưởng đến chính hình học của nó Các phần đầu này tạo ra các vật bên trong hình bóng của đối tượng (một khối cầu vẫn có vòng tròn bao quanh bóng)
Bump mapping là một kỹ thuật đồ họa máy tính để tái tạo bề mặt nhìn hiện thực hơn bởi mô hình tương tác của một bề mặt kết cấu nhấp nhô cùng với ánh sáng trong môi trường Bump mapping thực hiện điều này bằng cách thay đổi độ sáng của các điểm ảnh trên bề mặt tương ứng với độ cao của bản đồ (height map) điều
Trang 24này là đặc biệt cho mỗi bề măt Khi nhận lại một cảnh 3D, độ sáng và màu của các điểm ảnh được phụ thuộc vào sự tương tác của mô hình 3D cùng với ánh sáng trong cảnh Sau đó nó được phụ thuộc vào đối tượng hữu hình, lượng giác được sử dụng
để tính toán pháp tuyến bề mặt hình học (geometric’ suface normal) của đối tượng, được định nghĩa như là một vector tại mỗi vị trí của điểm ảnh trên đối tượng Bề mặt hình học thường được định nghĩa đối tượng nào tương tác mạnh mẽ cùng với ánh sáng tới từ việc sử dụng phương pháp Phong shading hoặc thuật toán ánh sáng tương tự Ánh sáng đi vuông góc tương tác lên bề mặt một cách mạnh mẽ hơn là ánh sáng song song tác động lên bề mặt Sau khi sự tính toán hình học ban đầu được thực hiện, một kết cấu được tô màu thường áp dụng cho mô hình để tạo ra đối tượng xuất hiện một cách hiện thực hơn Sau đó một sự tính toán được thực hiện cho mỗi điểm ảnh trên bề mặt của đối tượng:
- Tìm các vị trí trên bản đồ chiều cao tương ứng với vị trí trên bề mặt
- Tính toán pháp tuyến bề mặt của bản đồ chiều cao (heightmap)
- Thêm vào pháp tuyến bề mặt từ bước 2 với pháp tuyến bề mặt hình học để pháp tuyến chỉ trong một hướng mới
- Tính toán sự tương tác của bề mặt nhấp nhô mới cùng với các ánh sáng trong cảnh đang sử dụng ví dụ Phong shading
- Kết quả là một bề mặt xuất hiện để có chiều sâu thực sự Thuật toán bảo đảm rằng bề mặt xuất hiện thay đổi như là các ánh sáng trong cảnh di chuyển vòng quanh Kỹ thuật ánh xạ pháp tuyến (Normal mapping) thường được sử dụng trong
kỹ thuật bump mapping nhưng kỹ thuật này có thể thay bằng các kỹ thuật khác như
là kỹ thuật ánh xạ song song (Parallax mapping)
Đây là một phương pháp mà tại đó các ảnh phẳng của ánh xạ kết cấu (texture map) sẽ được thay đổi để tạo ra một ấn tượng của việc không phẳng (non-smooth) nhưng không thay đổi hình dạng vật lý của bề mặt Bump mapping đang trở nên phổ biến trong các game 3D bởi nó có thể được sử dụng để thêm các chi tiết trong phạm vi nhỏ (small scale detail) như là các nếp nhăn, vết xước, mà không cần thêm nhiều đa giác Nó làm điều này bằng cách sử dụng ánh xạ kết cấu khác
Trang 25(texture map) để thay đổi độ sáng của điểm ảnh trong kết cấu chính trên bề mặt Bump mapping có thể được xem như là một phiên bản đơn giản nhất của displacement mapping Kỹ thuật này được thực hiện trong phần cứng của đồ họa thậm chí trước cả sự phổ biến của lập trình GPUs[PAC97, Kil00, BERW97] Nếu
bề mặt không đồng đều có các nhấp nhô nhỏ thì có thể được ước tính như là hoàn toàn phẳng Trong trường hợp bề mặt phẳng, điểm nhìn thấy được xấp xỉ bằng với điểm được xử lý Tuy nhiên, để hình dung các nhấp nhô nhỏ, nó là cần thiết để mô phỏng các hiệu ứng ánh sáng ảnh hưởng như thế nào lên chúng Cách đơn giản để tính toán các pháp tuyến được xáo trộn cho mỗi điểm ảnh và sử dụng các pháp tuyến này để thực hiện việc chiếu sáng [6]
2.1.1 Kỹ thuật Emboss bump mapping
Đây là kỹ thuật sử dụng Texture map để đưa ra hiệu ứng chạm nổi mà không yêu cầu sự nhận lại của người sử dụng Đây là thuật toán multi-pass là một sự mở rộng và chắt lọc của texture embossing Đây là tiến trình sao lại kết cấu ảnh đầu tiên, thay đổi toàn bộ nó để nhận được số lượng nhấp nhô, các điểm tới bên dưới, cắt ra để phù hợp với hình dáng từ kết cấu trên đầu và trộn lẫn hai kết cấu vào thành một Đây được gọi là 2 pass chạm nổi bóng bởi vì nó yêu cầu hai kết cấu Nó thực hiện một cách đơn giản và không có yêu cầu về phần cứng, và do đó được giới hạn bởi tốc độ của CPU Tuy nhiên, nó chỉ ảnh hưởng bởi ánh sáng khuếch tán và ảo ảnh được phá vỡ phụ thuộc vào góc của ánh sáng Bump mapping còn đươc gọi là height map, nó là một phiên bản greysacle đơn giản của kết cấu để được chạm nổi, nhờ đó các giá trị texel được sử dụng để thay thế màu của các điểm ảnh ban đầu Height map là được kết xuất 2 lần, cùng với lần thứ hai được di chuyển nhẹ Khi 2 bản đồ được kết hợp cùng nhau, thì kết quả của bump map mới chính là sự khác biệt giữa 2 bản đồ Điều này sau đó nhân với kết cấu cơ bản được yêu cầu
2.1.2 Kỹ thuật Dot Product 3
Bump map được gọi là normal map, kết cấu này chứa các giá trị thay thế các pháp tuyến bề mặt của các điểm ảnh ban đầu Một pháp tuyến bề mặt giống như một mũi tên chỉ theo hướng tới các bề mặt đối diện, như là các góc xa từ một nguồn
Trang 26ánh sáng, màu sắc của điểm ảnh trở nên tối hơn (và ngược lại) Phương pháp này thường cho kết quả tốt hơn so với emboss bump mapping nhưng phức tạp hơn Direct3D thường đề cập tới lộ trình tập hợp dot3 bum mapping nhưng một phương pháp tổng quát hơn tồn tại, normal mapping cơ bản sử dụng quá trình này nhưng nó được thực hiện thông qua một chương trình PS (Pixel Shader)
2.1.3 Kỹ thuật Environment mapping
Phương pháp này là phương pháp kết hợp các kỹ thuật bump mapping Một height map được tạo ra sau đó pha lẫn với kết cấu cơ bản ban đầu, đem kết quả này pha tiếp với environment map (nó có thể nhận được bất cứ điều gì từ một lightmap (là một ánh xạ kết cấu được sử dụng để tạo ra hiệu ứng ánh sáng trên đầu của các kết cấu cơ bản) tới một bản đồ khối phức tạp) để đưa ra bề mặt được bump cuối cùng Cần lưu ý rằng không bao giờ thay đổi vị trí bump mapping hoặc số lượng của các đỉnh trong bề mặt Các cạnh trên khung nhìn và các bóng (shadows) có thể làm hỏng (spoil) những ảo ảnh nhưng nhiều thuật toán bump mapping có thể giúp làm giảm vấn đề này Environment mapping miêu tả một đối tượng phản chiếu xung quanh nó Trong mẫu đơn giản nhất, environment mapping đưa ra các đối tượng được kiết xuất giống như màu vàng Environment mapping cho rằng điều kiện của đối tượng (mọi thứ xung quanh nó) là không gian vô cùng từ một đối tượng và do đó có thể mã hóa mọi hướng ảnh
2.1.3.1 Các kết cấu bản đồ hình khối
Một bản đồ hình khối bao gồm sáu hình ảnh phù hợp với kết cấu hình vuông với nhau như mặt của một khối lập phương Cùng với nhau sáu hình này là một hình đa hướng mà chúng ta sẽ sử dụng để mã hóa environment mapping Hình 2.1 đưa ra một ví dụ của một bản đồ hình khối để chụp một môi trường bao gồm bầu trời nhiều mây và địa hình vùng núi sương mù
Trang 27Hình 2.2 Các ảnh kết cấu cho bản đồ khối Một tọa độ kết cấu 2D thiết lập màu trong hình ảnh kết cấu đơn Ngược lại truy cập một kết cấu khối lập phương cùng với 3 thành phần tọa độ kết cấu được trình bày trong véc tơ 3D Suy nghĩ véc tơ này là một tia bắt nguồn từ trung tâm của hình khối Như là tia bắn ra ngoài, nó sẽ giao với một trong sáu mặt của bản đồ khối Kết quả của việc truy cập bản đồ hình khối kết cấu được lọc màu tại điểm giao nhau với một trong sáu ảnh kết cấu Bản đồ kết cấu hình khối là một ý tưởng của environment mapping Mỗi mặt của bản đồ hình khối mã hóa một phần sáu của môi trường xung quanh đối tượng Một bản đồ kết cấu cung cấp một cách nhanh chóng
để xác định những đối tượng trung tâm trong môi trường mà có thể nhìn thấy trong bất kỳ hướng cụ thể nào
Để tạo ra một bản đồ hình khối, thay thế các đối tượng mà chúng ta muốn đưa chúng vào trong một máy ảnh ở vị trí đối tượng và chụp những bức ảnh trong sáu hướng (dương x, âm x, y dương, âm y, z dương, và âm z) Mỗi ảnh chụp cần có góc 90o Khu vực quan sát và tỷ lệ vuông góc, để lập phương sáu mặt này không có khoảng trống hoặc chồng chéo lên nhau để tạo ra bức ảnh toàn cảnh đa hướng Sử dụng những ảnh này là sáu mặt của bản đồ hình khối Chúng ta có thể chụp một môi
Trang 28trường thực tế với một tập hợp các ảnh và sau đó tập hợp chúng lại với nhau để tạo
ra một bản đồ môi trường
Khi chúng ta nhìn vào một đối tượng phản chiếu cao như một hình cầu chrome, những gì chúng ta thấy không phải là đối tượng chính nhưng làm thế nào các đối tượng phản ảnh môi trường của nó Khi chúng ta nhìn tại một số điểm trên một bề mặt phản chiếu cao, bề mặt tại điểm đó phản ánh quan điểm tia – nghĩa là các tia đi từ mắt của chúng ta đến điểm trên bề mặt, vào môi trường
Các đặc điểm của tia phản xạ phụ thuộc vào các tia quan sát ban đầu và trên
bề mặt pháp tuyến tại điểm mà tia nhìn chạm đến bề mặt Những gì chúng ta thấy không phải là mặt của chính nó, nhưng những gì trông giống như môi trường theo hướng của tia được phản xạ Khi chúng ta sử dụng một bản đồ hình khối để mã hóa những gì trông giống như môi trường ở tất cả các hướng, Việc kết xuất một điểm trên bề mặt phản xạ là một vấn đề của việc tính toán theo hướng được phản chiếu cho điểm trên bề mặt Sau đó, chúng ta có thể truy cập vào bản đồ hình khối, dựa trên các hướng quan sát được phản xạ để xác định màu của môi trường cho điểm trên bề mặt
2.1.3.2 Việc tính toán các véc tơ phản chiếu
Trang 29tượng được đưa ra là một hình thang và môi trường được đưa ra là xung quanh hình vuông, hơn nữa là hình trụ thực sự
Véc tơ I- được gọi là tia tới: Đi từ mắt tới bề mặt của đối tượng Khi I chạm tới bề mặt, nó được phản chiếu theo hướng R dựa trên bề mặt pháp tuyến N Tia thứ hai là tia phản xạ Hình 2.3-b diễn tả tình huống này Góc của tia đến ( ) là bằng với góc của tia chiếu ( ) cho một sự phản chiếu chính xác như là gương Ta có thể tính toán véc tơ phản chiếu R trong thuật ngữ véc tơ I và N cùng với phương trình
Việc tính toán véc tơ phản chiếu là một thao tác chung trong đồ họa máy tính, Cg cung cấp một hàm thư viện chuẩn để tính toán tia phản chiếu
2.1.3.3 Sự giả định của environment mapping
Trên đây chúng ta đã nó rằng environment mapping môi trường là vô cùng
xa đối tượng Bây giờ chúng ta khám phá ý nghĩa của các giả định này Lý do cho giả định này là bản đồ môi trường được truy cập hoàn toàn dựa trên một hướng 3D Environment mapping không có trợ cấp cho các biến thể ở vị trí ảnh hưởng đến sự xuất hiện phản xạ của bề mặt Nếu tất cả mọi thứ trong môi trường đủ xa bề mặt, sau đó giả định này là gần đúng Trong thực tế, các hình ảnh là kết quả khi môi trường không đủ xa thường không được chú ý tới Những phản xạ, đặc biệt trên bề mặt cong, có đủ tinh tế rằng hầu hết mọi người không thông báo khi phản xạ không chính xác về vật thể Khi phản xạ phù hợp với màu thô của môi trường và thay đổi phù hợp với độ cong của bề mặt, lập bản đồ bề mặt kết xuất với môi trường xuất hiện tin cậy Lý tưởng nhất là mỗi đối tượng môi trường ánh xạ trong một cảnh phải
có bản đồ môi trường riêng của mình Trong thực tế, các đối tượng thường xuyên có thể chia sẻ bản đồ môi trường Về lý thuyết chúng ta nên tạo một bản đồ môi trường khi các đối tượng trong môi trường di chuyển hoặc khi đối tượng phản xạ bằng cách
sử dụng bản đồ di chuyển đáng kể môi trường liên quan đến môi trường Trong thực
tế, phản ánh thuyết phục là có thể với các bản đồ môi trường tĩnh Với một bản đồ môi trường, một đối tượng có thể chỉ phản ánh môi trường, nó không thể phản xạ
Trang 30chính nó Tương tự như vậy, chúng ta không mong đợi phản xạ nhiều, chẳng hạn như khi hai vật thể sáng bóng phản xạ lẫn nhau Bởi vì một đối tượng phản xạ môi trường có thể phản xạ duy nhất môi trường và không phải bản thân nó, lập bản đồ môi trường tốt nhất là trên hình lồi hoặc chủ yếu là các đối tượng lồi thay vì nhiều đối tượng lỏm Môi trường lập bản đồ chỉ phụ thuộc vào hướng mà không phụ thuộc vị trí, nó hoạt động trên bề mặt phẳng phản chiếu như gương, nơi mà các phản xạ phụ thuộc rất nhiều vào vị trí Ngược lại, lập bản đồ môi trường làm việc tốt nhất trên các bề mặt cong
2.2 Kỹ thuật Normal mapping
Normal mapping là một kỹ thuật được sử dụng để giả mạo ánh sáng của các chỗ lồi lõm Nó được sử dụng để thêm các chi tiết mà không phải sử dụng nhiều các
đa giác Normal mapping thường sử dụng trong ảnh RGB, nó tương ứng với toạ độ
x, y, z của một pháp tuyến bề mặt từ một phiên bản chi tiết của đối tượng Cách sử dụng chung của kỹ thuật này là tăng cường các chi tiết và làm xuất hiện nhiều mô hình đa giác thấp bằng cách tạo ra một ánh xạ pháp tuyến từ mô hình đa giác cao Trong đồ họa máy tính 3D, normal mapping là một ứng dụng kỹ thuật được biết đến như là bump mapping Normal mapping đôi khi được đề cập đến như là “Dot 3 bump mapping” Trong khi bump mapping xáo trộn các pháp tuyến (normal) hiện tại (hướng đối diện với bề mặt - the way the surface is facing) của mô hình, normal mapping thay thế hoàn toàn pháp tuyến Giống như bump mapping, nó được sử dụng để thêm các chi tiết cho việc tạo bóng mà không cần sử dụng nhiều đa giác Nhưng tại đó một bump map thường được tính toán dựa trên một kênh đơn (được giải thích là grayscale) ảnh, nguồn của các pháp tuyến trong ánh xạ pháp tuyến thường là một ảnh nhiều kênh (nó là các kênh cho màu “đỏ”, “xanh lá cây”, “xanh
da trời” là tương phản với một màu đơn) nhận được từ một tập hợp các phiên bản chi tiết hơn của các đối tượng
Normal mapping thường được tìm thấy trong 2 dạng: normal mapping không gian đối tượng và Normal mapping không gian tiếp tuyến Chúng khác nhau ở các
hệ tọa độ, trong các pháp tuyến đã được lưu trữ và đo lường Một trong những điều
Trang 31thú vị nhất khi sử dụng kỹ thuật này là làm gia tăng sự xuất hiện của các mô hình đa giác thấp để khai thác một ánh xạ pháp tuyến đến từ mô hình có độ phân giải cao Trong khi ý tưởng của việc mang chi tiết hình học từ mô hình độ phân giải cao đã được giới thiệu trong “Fitting Smooth Surfaces to Dense Polygon Meshes” bởi Krishnmurthy and Levo, Proc SIGGRARH 1996, nơi mà phương pháp này đã được
sử dụng để tạo ánh xạ thay thế trên nurb, ứng dụng của nó là các hình lưới tam giác phổ biến về sau này Trong năm 1998 hai bài báo đã được giới thiệu cùng với ý tưởng của việc chuyển đổi chi tiết như là ánh xạ pháp tuyến từ hình lưới thấp tới hình lưới cao: "Appearance Preserving Simplification", by Cohen et al SIGGRAPH
1998, và "Một phương pháp chung cho việc khôi phục các giá trị thuộc tính trên mắt lưới đơn giản hóa" của al Cignoni et IEEE Visualization '98 Trước đây trình bày cho một thuật toán đơn giản hóa cụ thể là quá trình theo dõi làm thế nào để các chi tiết bị mất được đơn giản hóa trên ánh xạ lưới Sau này trình bày một cách tiếp cận đơn giản rằng các hình tam giác cao và các lưới đa giác thấp cho phép tạo lại các chi tiết bị mất theo một phương pháp mà không phụ thuộc vào các mô hình thấp
đã được tạo ra như thế nào Cách tiếp cận thứ hai (cùng với một số các thay đổi nhỏ) vẫn là một trong những phương pháp được sử dụng bởi hầu hết các công cụ hiện đang có
Việc kết xuất normal mapping tương tác ban đầu chỉ có thể trên PixelFlow, một máy sinh ảnh song song xây dựng tại trường đại học của North Carolina tại Chappel Hill Sau này có thể thực hiện normal mapping trên các máy trạm high-end SGI sử dụng nhiều việc sinh multi-pass và các thao tác framebuffer hoặc trên phần cứng low-end PC cùng với một số thủ thuật sử dụng kết cấu paletted Tuy nhiên với
sự ra đời của các chương trình tạo bóng trong máy tính cá nhân và game, normal mapping trở nên được sử dụng rộng rãi trong các trò chơi video thương mại bắt đầu
từ năm 2003 Và tiếp theo là các game mã nguồn mở trong những năm sau Normal mapping phổ biến cho việc sinh ảnh thời gian thực là do chất lượng tốt hơn so với các phương pháp khác sử dụng hiệu ứng tương tự Phần lớn hiệu quả này được thực hiện bằng việc lấy tỷ lệ các chi tiết được chỉ số khoảng cách, kỹ thuật có chọn lọc
Trang 32làm giảm chi tiết của normal map một kết cấu đã được đưa ra, có nghĩa là nhiều hơn các bề mặt cần mô phỏng chiếu sáng xa phức tạp Normal mapping cơ bản có thể được thực hiện trong bất kỳ phần cứng nào nó hỗ trợ kết cấu bản màu (palletized) Game đầu tiên có phần cứng normal mapping là Sega Dreamcast Tuy nhiên, Xbox của Mircosoft là phần mềm đầu tiên sử dụng giao diện điều khiển rộng rãi hiệu quả trong các trò chơi Trong phiên bản thứ hai chỉ có Play Sation 2 được xây dựng để
hỗ trợ Normal mapping Trò chơi Xbox 360 và Play Station 3 chủ yếu dựa vào Normal mapping và đang bắt đầu thực hiện parallax mapping
Để tính toán độ khuếch tán (lambertian) ánh sáng của một bề mặt, một đơn vị véc tơ từ một điểm tạo bóng tới ánh sáng nguồn được nhân (dotted) với một đơn vị véc tơ pháp tuyến tới bề mặt và kết quả là cường độ ánh sáng trên bề mặt đó Nhiều
mô hình ánh sáng khác nhau cũng liên quan đến một số kết quả nhân với véc tơ pháp tuyến Hãy tưởng tượng một mô hình đa giác của một hình cầu thì chúng ta chỉ có thể tính gần đúng hình dạng của bề mặt nó Bằng cách sử dụng một ảnh bitmap RGB được kết cấu qua mô hình, chi tiết hơn thông tin véc tơ pháp tuyến có thể được giải mã Mỗi một kênh màu trong bitmap (đỏ, xanh và xanh da trời) tương ứng với đơn vị không gian (X, Y và Z) Các đơn vị không gian này liên quan đến cùng một hệ tọa độ không đổi cho không gian đối tượng các ánh xạ pháp tuyến, hoặc là để hệ tọa độ thay đổi nhỏ (dựa trên đạo hàm của vị trí đối với các hệ tọa độ kết cấu) trong trường hợp không gian tiếp tuyến các ánh xạ pháp tuyến Điều này cho biết thêm nhiều chi tiết tới bề mặt của một mô hình, đặc biệt phù hợp với kỹ thuật chiếu sáng nâng cao Trong việc thực hiện thông thường của các ánh xạ pháp tuyến, được sử dụng bởi bộ máy nguồn Valve và được thực hiện trong phần cứng bên trong card nVidia, kênh màu đỏ nên được thay đổi của vật liệu khi ánh sáng từ bên phải, kênh màu xanh lá cây nên được thay đổi của vật liệu khi ánh sáng từ bên dưới và kênh màu xanh da trời nên được thay đổi của vật liệu từ phía trước (trên thực tế đầy đủ trên các “dốc”) hoặc đưa nó bằng cách khác, tọa độ XYZ của bề mặt pháp tuyến được đặt trong các giá trị RGB của ánh xạ pháp tuyến Nếu vật liệu
Trang 33được sắp xếp như là được phản chiếu, suất phân chiếu thường được giải mã trong kênh alpha nếu một giá trị tồn tại
Để tìm sự xáo trộn (perturbation) trong không gian tiếp tuyến thì phải tính toán một cách chính xác Thường, pháp tuyến được xáo trộn trong một FS sau khi việc áp dụng mô hình và xem các ma trận Điển hình hình học cung cấp một pháp tuyến và tiếp tuyến Một tiếp tuyến là một phần của mặt phẳng tiếp tuyến và có thể được chuyển đổi đơn giản cùng với chiều dài của ma trận (có thể lên đến 3x3) Tuy nhiên, pháp tuyến cần phải được đảo ngược vị trí Phần lớn các ứng dụng sẽ cần một nửa tiếp tuyến (bigangent) để thực thi việc chuyển đổi hình (và được kết hợp với uv’s) Bởi vậy để thay thế khả năng của một bitangent tới pháp tuyến và tới tiếp tuyến, nó thường thích hợp hơn (preferable) để chuyển đổi bitangent tới tiếp tuyến
Để t là tiếp tuyến, n là pháp tuyến, b là bitangent, M3x3 là phần mô hình ma trận, và
V3x3 là phần của ma trận xem
t’ = t x M3x3 x V3x3
b’ = b x M3x3 xV3x3
2.3 Kỹ thuật Displayment mapping
Displacement mapping là một kỹ thuật thay thế trái ngược với bump mapping, normal mapping và parallax mapping Nó sử dụng một bản đồ chiều cao (heightmap) gây ra một hiệu ứng nơi mà vị trí hình học thực của các điểm trên một kết cấu bề mặt đã được đổi chỗ, pháp tuyến bề mặt theo các giá trị được lưu trữ trong kết cấu Nó mang đến một cảm giác tuyệt vời về chiều sâu và chi tiết của bề mặt, cho phép sự hấp thụ cụ thể, tự đổ bóng và bóng mặt khác, nó là tốn kém nhất của lớp này của các kỹ thuật do số lượng lớn các kênh hình học bổ sung Trong nhiều năm, displacement mapping là một đặc thù của các hệ thống kết xuất ảnh đứng cao cấp (hight – end rendering systems) như photorealistic RenderMan, trong khi lập trình ứng dụng giao diện thời gian thực như Opengl và DirecX thiếu khả năng này Một trong những lý do cho sự thiếu hụt này là việc thực hiện ban đầu của displacement mapping đã yêu cầu lát của bề mặt để có được siêu đa giác có kích
Trang 34thước bằng lần xuất hiện kích thước của một điểm ảnh trên màn hình Cùng với sự đưa ra phần cứng đồ họa mới nhất, displacement mapping có thể được dịch như là một loại của đỉnh ánh xạ kết cấu, nơi các giá trị của ánh xạ kết cấu không thay thế các điểm ảnh màu, nhưng thay vào đó thay thế vị trí của đỉnh Không giống như bump mapping và normal mapping, displacement có thể đưa ra một bề mặt ráp đúng đắn Nó chỉ được thực hiện trong một vài card đồ họa desktop, và nó phải sử dụng kết hợp với các kỹ thuật card tesselation (điều đó làm gia tăng số lượng của các đa giác được sinh theo thiết lập khung nhìn hiện tại) để đưa ra các lưới chi tiết cao và đưa ra một 3D, cảnh lớn của độ sâu và chi tiết tới các kết cấu để nó được áp dụng displacement mapping Displacement mapping bao gồm thuật ngữ mapping nó đã
đề cập đến một ánh xạ kết cấu (texture map) đã được sử dụng để điều khiển độ dài displacement Sự chỉ dẫn displacement thường là trên bề mặt pháp tuyến cục bộ Ngày nay, những sự sinh ảnh cho phép có thể lập trình việc tạo bóng, nó cỏ thể tạo sản phẩm kết cấu có chất lượng cao và các mẫu có tần số cao tùy ý Thuật ngữ displacement rộng hơn được sử dụng ngày nay để đề cập đến một siêu khái niệm cũng bao gồm sự thay thế (displacement) dựa trên một ánh xạ kết cấu (texture map) Kết xuất đồ họa bằng cách sử dụng thuật toán Reyes, hoặc các cách tiếp cận tương
tự dựa trên siêu đa giác, cho phép để làm displacement mapping ở tần số tùy ý, nó
có từ gần 20 năm trước đây Việc thiết lập ý nghĩa của thuật ngữ này trong vòng 20 năm qua vì sự thay thế (displacement) của tần số bất kỳ Chương trình sinh ảnh thương mại đầu tiên để thực hiện ánh xạ thay thế (displacement mapping) siêu đa giác thông qua REYES của Pixar PhotoRealistic RenderMan Sinh ảnh siêu đa giác thường lát hình chính nó tại một điểm phù hợp cho bức ảnh được sinh ra Đó là việc
mô hình ứng dụng cung cấp nguyên thủy để sinh ảnh Ví dụ như NURB hoặc phân chia bề mặt Sinh ảnh sau đó sẽ lát hình học này lên các siêu đa giác sử dụng khung nhìn cơ bản (view –bases) bắt nguồn từ các hình ảnh được sinh ra Những kỹ thuật sinh ảnh khác yêu cầu áp dụng mô hình hóa phân chia các phần được lát trước của đối tượng vào trong các đa giác hoặc thậm trí các hình tam giác đã được định nghĩa một thuật ngữ displacement mapping như là việc di chuyển các đỉnh của các đa giác
Trang 35này Thường sự chỉ dẫn displacement được giới hạn pháp tuyến bề mặt (surface normal) tại một góc Trong khi các khái niệm tương tự, các đa giác đó thường sử dụng một số lượng lớn các đa giác nhỏ Một chất lượng cấu trúc đạt được từ đây được giới hạn bởi sự dày đặc việc lát của các hình trước khi ảnh sinh ra truy cập được vào nó Điều này khác biệt giữa displacement mapping trong các đa giác nhỏ sinh ảnh Displacement mapping trong một renderers đa giác không lát (macro) thường có thể dẫn đến sự nhầm lẫn ở các cuộc hội thoại giữa những người có tiếp xúc ít với công nghệ hoặc khả năng thực hiện còn hạn chế Để phân biệt giữa qúa trình trước sự lát thô dựa trên các kết xuất đồ họa đã làm thuật ngữ thay thế các điểm ảnh nhỏ (sub-pixel displacement) đã được giới thiệu để mô tả tính năng này Sub-pixel displacement thường được đề cập đến re-tessellation của hình học điều này đã được lát trong các đa giác Re-tessellation này là kết quả trong các đa giác hoặc thường trong các tam giác nhỏ Các đỉnh này sau đó được di chuyển dọc theo các pháp tuyến của nó để tổ chức các ánh xạ thay thế (displacement mapping) Thiết
bị sinh siêu đa giác đúng (True micropolygon renderers) luôn luôn có được khả năng làm những gì sub-pixel-displacement chỉ đạt được gần đây, nhưng với chất lượng cao hơn và hướng thay thế (displacement) tuỳ ý Những sự phát triển gần đây dường như để cho thấy rằng một số renderers mà sử dụng di chuyển thay thế các điểm ảnh nhỏ (sub-pixel displacement) đến hỗ trợ hình học mức độ cao hơn Với phần cứng đồ họa hỗ trợ Shader Model 3.0, displacement mapping có thể được hiểu như là một loại "Vertext-texture mapping", nơi các giá trị của ánh xạ kết cấu không làm thay đổi màu sắc điểm ảnh (như là nhiều hơn mức thông thường), nhưng thay đổi vị trí của các đỉnh Không giống như bump, normal và parallax mapping, tất cả đều có thể được nói tới là "giả" hành động của displacement mapping, theo cách này thực sự bề mặt thô ráp có thể được đưa ra từ một kết cấu Nó phải được sử dụng kết hợp với các kỹ thuật lát thích hợp (làm gia tăng số lượng các đa giác đều kết xuất theo thiết lập hiện tại đang xem) để sản xuất mắt lưới có nhiều chi tiết
Trang 36Hình 2.4 Ý tưởng cơ bản của displacement mapping Thông thường nó thể hiện như một chức năng của kết cấu tọa độ u, v (hoặc các tham số bề mặt) Nó được lưu trữ như là một kết cấu 2D, hoặc thủ tục tính toán Đối tượng hình học thường được xác định trên 3 mức: mức cấu trúc vĩ mô, mức cấu trúc trung bình, mức cấu trúc vi mô Một mô hình hình học thường đề cập đến mức kiến trúc vĩ mô và điều này thường được xác định như là một tập hợp các đa giác hoặc các bề mặt cong Mức cấu trúc trung bình bao gồm chi tiết hình học của đối tượng nhỏ nhưng vẫn nhìn thấy ví dụ như các nhấp nhô nhỏ (bumps) trên bề mặt Mức kiến trúc vi mô bao gồm các khía cạnh bề mặt rất nhỏ nó không thể phân biệt được bởi cặp mắt của con người và nó được mô hình hóa bởi BRDFs và các kết cấu thường Displacement mapping cung cấp các chi tiết hình học bằng việc thêm thuộc tính kiến trúc trung bình tới mô hình kiến trúc vĩ mô Điều này được thực hiện bởi việc mô đun hóa bề mặt cấu trúc vĩ mô bằng một height map diễn tả sự khác nhau giữa mô hình cấu trúc vĩ mô và mô hình cấu trúc trung bình Các thuật toán Displacement mapping thực hiện lấy mẫu các điểm và thay thế chúng vuông góc lên các pháp tuyến bề mặt (surface normal) cùng với một khoảng cách đạt được từ bản
đồ chiều cao (heigh map) Các điểm lấy mẫu có thể là các đỉnh của các hình ban đầu hoặc lưới được lát (per-vertex displacement mapping) hoặc các điểm tương ứng với các trung tâm texel (per-pixel displacement mapping) Trong một số trường hợp, per-vertex displacement mapping được thay đổi hình học thông qua hệ thống sinh ảnh (rendering pipeline) Tuy nhiên trong per-pixel displacement mapping, các chi tiết bề mặt được thêm vào bên trong các bước cuối khi việc tạo kết cấu bề mặt được thực hiện Ý tưởng của việc kết hợp giữa displacement mapping với tìm kiếm kết cấu đã được đưa ra bởi Patterson, người ta gọi phương pháp của ông là inverse
Bề mặt cấu trúc trung bình Bề mặt cấu trúc vĩ mô Bản đồ chiều cao được lưu trữ
như là một kết cấu