SlideShare a Scribd company logo
1 of 76
1
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔ
HÀ THỊ CHUYÊN
MÔ PHỎNG SỰ TẠO BÓNG CỦA VẬT THỂ TỪ
MỘT NGUỒN SÁNG TRONG THỰC TẠI ẢO
TẢI MIỄN PHÍ KẾT BẠN ZALO:0917 193 864
DỊCH VỤ VIẾT LUẬN VĂN CHẤT LƯỢNG
WEBSITE: LUANVANTRUST.COM
ZALO/TELEGRAM: 0917 193 864
MAIL:
BAOCAOTHUCTAPNET@GMAIL.COM
Ngành: Khoa học máy tính
Mã số:8 48 01 01
LUẬN VĂN THẠC SĨ
KHOA HỌC MÁY TÍNH
2
MỤC LỤC
LỜI CẢM ƠN ............................................................................................................. 6
CHƯƠNG I TỔNG QUAN VỀ THỰC TẠI ẢO ........................................................ 8
1.1. Tổng quan về thực tại ảo ................................................................................... 8
1.1.1. Thực tại ảo là gì? ........................................................................................ 8
1.1.2 Ứng dụng của thực tại ảo ........................................................................... 11
1.1.3. Lịch sử phát triển của Thực tại ảo ............................................................ 16
1.2. Môi trường và ngôn ngữ lập trình cho đồ họa 3D ........................................... 18
1.2.1. Mô phỏng không gian 3D ......................................................................... 18
1.2.2. Mô hình hóa mô hình 3D .......................................................................... 19
1.2.3 . Bài toán mô phỏng thực tại ảo ................................................................. 24
1.3 Thế giới 3D ....................................................................................................... 25
1.4. Kết luận ........................................................................................................... 27
CHƯƠNG II CÁC KỸ THUẬT XÁC ĐỊNH VÀ BIỂU DIỄN BÓNG ................... 29
2.1 Ánh sáng ....................................................................................................... 29
2.2. Kỹ thuật hiển thị mô hình Occlusion culling............................................... 37
2.3. Kỹ thuật hiển thị mô hình Bump Mapping .................................................. 40
2.4. Kỹ thuật biểu diễn bóng đổ ......................................................................... 44
2.5. Một số thuật toán chiếu sáng toàn cục ............................................................... 50
CHƯƠNG III CHƯƠNG TRÌNH THỰC NGHIỆM ............................................... 57
3.1 Công cụ Unity engine ......................................................................................... 57
3.2. Yêu cầu thực nghiệm, ứng dụng...................................................................... 67
3.2.1. Yêu cầu với thực nghiệm ......................................................................... 68
3.2.2. Kiểm tra các mô hình đầu vào.................................................................. 68
3.3. Các chức năng của chương trình thực nghiệm ................................................ 71
KẾT LUẬN ............................................................................................................... 74
TÀI LIỆU THAM KHẢO ......................................................................................... 75
3
DANH MỤC HÌNH ẢNH
Hình 1.1 Thực tế ảo (VR) ............................................................................................ 8
Hình 1.2 Các thành phần của hệ thống VR ................................................................. 9
Hình 1.3 Hệ thống Distracted Driving Simulator ..................................................... 12
Hình 1.4: Hệ thống du lịch ảo mẫu 1 ........................................................................ 13
Hình 1.5: Mô hình 3D trong thiết kế nội thất ........................................................... 14
Hình 1.6: Mô hình VR mô phỏng cơ thể người ......................................................... 15
Hình 1.7: Ứng dụng VR của Panasonic Eco Solutions ............................................ 16
Hình 1.8: Thiết bị mô phỏng SENSORAMA ............................................................. 17
Hình 1.9 Jaron Lanier người đưa ra thuật ngữ VR .................................................. 18
Hình 1.10: World space và Local space. .................................................................. 26
Hình 2.1 Bước sóng sánh sáng (nm) ........................................................................ 30
Hình 2.2 Chiếu sáng chính diện (Front lighting) ...................................................... 31
Hình 2.3 Nguồn sáng bên (Side Lighting) ................................................................. 32
Hình 2.4Nguồn sáng phía sau (Back lighting) .......................................................... 33
Hình 2.5 Chiếu sáng từ phía trên (Top Lighting) ..................................................... 34
Hình 2.6 Chiếu sáng từ phía dưới (Below Lighting) ................................................ 35
Hình 2.7: Bóng cung cấp thông tin về vị trí tương đối của vật thể. .......................... 36
Hình 2.8: Bóng cung cấp thông tin về dạng hình học của mặt tiếp nhận. ............... 36
Hình 2.9 Đánh dấu đối tượng. .................................................................................. 38
Hình 2.10 Thẻ Object trong công cụ Occlusion ........................................................ 39
Hình 2.11Thẻ Bake trong công cụ Occlusion ........................................................... 39
Hình 2.12 Thẻ Visualization trong công cụ Occlusion ............................................. 39
Hình 2.13 Vùng và các ô áp dụng Occlsion Culling. ................................................ 40
Hình 2.14 Tạo normal map từ hight map .................................................................. 42
Hình 2.15 Bóng đổ mờ .............................................................................................. 47
Hình 2.16: Minh họa quá trình sinh và dò tia của ray tracing ................................. 51
Hình 2.17. Các bước xử lý trong giải thuật Ray tracing .......................................... 53
Hình 2.18: So sanh giữa Scan line và ray tracing .................................................... 53
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
4
Hình 2.19: Chiếu sáng bằng photon mapping .......................................................... 54
Hình 2.20 Các bước xử lý trong giải thuật Scan line. .............................................. 56
Hình 3.1 logo của Unity engine ................................................................................ 57
Hình 3.2 Giao diện của Unity. .................................................................................. 62
Hình 3.3 Các nút chức năng cho cửa sổ Scene. ........................................................ 63
Hình 3.4 Cửa sổ Hierarchy. ...................................................................................... 64
Hình 3.5 Cửa sổ Inspector. ....................................................................................... 65
Hình 3.6 Cửa sổ Project. ........................................................................................... 66
Hình 3.7 Trống “ Scồ sam phô ” ngang ................................................................... 69
Hình 3.8 Trống “ Scồ sam phô ” dọc ....................................................................... 69
Hình 3.9 Đàn Cồng ................................................................................................... 70
Hình 3.10 Đàn Thuyền – “Rô niếc IK và Rô niếc Thung” ....................................... 70
Hình 3.11: Toàn cảnh không gian trưng bày ............................................................ 71
Hình 3.12 Hiển thị riêng 1 đối tượng. ...................................................................... 73
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
5
LỜI CAM ĐOAN
Tên tôi là: Hà Thị Chuyên
Sinh ngày: 27/08/1987
Học viên lớp cao học CHK16A - Trường Đại học Công nghệ Thông
tin & Truyền thông - Đại học Thái Nguyên.
Hiện đang công tác tại: Viễn thông Bắc Kạn
Xin cam đoan: Đề tài “Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng
trong thực tại ảo” do TS. Vũ Đức Thái hướng dẫn là công trình nghiên cứu
của riêng tôi. Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng.
Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như
nội dung trong đề cương và yêu cầu của thầy giáo hướng dẫn. Nếu sai tôi
hoàn toàn chịu trách nhiệm trước hội đồng khoa học và trước pháp luật.
TháiNguyên, ngày10 tháng 05 năm 2019
Tác giả luận văn
Hà Thị Chuyên
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
6
LỜI CẢM ƠN
Trong quá trình học tập và rèn luyện tại khoa Công nghệ thông tin - Đại
học Thái Nguyên, đến nay em đã kết thúc khóa học 2 năm và hoàn thành luận
văn tốt nghiệp. Để hoàn thành chương trình cao học và viết luận văn, em đã
nhận được sự hướng dẫn, giúp đỡ góp ý nhiệt tình của quý thầy cô trường Đại
học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên.
Để có được kết quả này em xin chân thành cảm ơn Ban chủ nhiệm khoa
Công nghệ thông tin cùng các thầy, cô giáo đã giảng dạy, quan tâm và tạo
điều kiện thuận lợi để chúng em học tập và rèn luyện trong suốt thời gian theo
học tại trường.
Em xin bày tỏ lòng biết ơn sâu sắc tới TS Vũ Đức Thái đã tận tình
hướng dẫn và giúp đỡ em trong suốt quá trình làm luận văn.
TháiNguyên, ngày10 tháng 05 năm 2019
Tác giả luận văn
Hà Thị Chuyên
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
7
ĐẶT VẤN ĐỀ
Đồ họa máy tính là một lĩnh vực phát triển nhất trong tin học. Nó được
áp dụng rộng rãi trong nhiều lĩnh vực khác trong thực tiễn.
Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng,
bóng xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần, bóng
là một trong những yếu tố quan trọng nhất của tri giác con người về việc nhận
biết các vật thể trong thế giới 3 chiều.
Đề tài tập trung nghiên cứu các thuật toán, kỹ thuật thể hiện bóng của
vật thể tạo ra bởi một nguồn sáng đảm bảo phản ánh đúng với thực tế. Phạm
vi nghiên cứu tập trung vào vấn đề xác định và mô phỏng bóng của một vật
thể được chiếu từ một nguồn sáng, và sự thay đổi của bóng khi thay dổi
nguồn sáng.
Mục tiêu nghiên cứu của đề tài là: Lựa chọn công cụ phù hợp nhất cho
việc cài đặt, lựa chọn các vật thể và không gian thích hợp để phân tích các
hình ảnh thực tiễn làm cơ sở đối chứng cho kết quả cài đặt, vận dụng thuật
toán cài đặt chương trình mô phỏng thể hiện hiệu ứng tạo bóng của một số
vật thể dưới tác động của một nguồn sáng, cuối cùng là đánh giá rút kinh
nghiệm về thuật toán để có thể cải tiến việc mô phỏng tốt hơn.
Tôi đã lựa chọn đề tài:" Mô phỏng sự tạo bóng của vậtthể từ một
nguồn sáng trong thực tại ảo" để cài đặt mô phỏng cho một số hiện vật trong
Nhà bảo tàng văn hóa các dân tộc Việt Nam tại thành phố Thái Nguyên.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
8
CHƯƠNG I
TỔNG QUAN VỀ THỰC TẠI ẢO
1.1. Tổng quan về thực tại ảo
1.1.1. Thực tại ảo là gì?
Thực tế ảo hay còn gọi là thực tại ảo (tiếng Anh là virtual reality, viết
tắt là VR) là một hệ thống mô phỏng trong đó đồ họa máy tính được sử dụng
để tạo ra một thế giới "như thật". Hơn nữa, thế giới "nhân tạo" này không tĩnh
tại, mà lại phản ứng, thay đổi theo ý muốn (tín hiệu vào) của người sử dụng
(nhờ hành động, lời nói,..). Điều này xác định một đặc tính chính của VR, đó
là tương tác thời gian thực (real-time interactivity).
Hình 1.1 Thực tế ảo (VR)
Thời gian thực ở đây có nghĩa là máy tính có khả năng nhận biết được
tín hiệu vào của người sử dụng và thay đổi ngay lập tức thế giới ảo. Người sử
dụng nhìn thấy sự vật thay đổi trên màn hình ngay theo ý muốn của họ và bị
thu hút bởi sự mô phỏng này.
Trong thực tế, người dùng không những nhìn thấy đối tượng đồ họa 3D
nổi, điều khiển (xoay, di chuyển,..) được đối tượng trên màn hình mà còn sờ
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
9
và cảm thấy chúng như có thật. Ngoài khả năng nhìn (thị giác), nghe (thính
giác), sờ (xúc giác), các nhà nghiên cứu cũng đã nghiên cứu để tạo các cảm
giác khác như ngửi (khứu giác), nếm (vị giác).Tuy nhiên hiện nay trong VR
các cảm giác này cũng ít được sử dụng đến.
Các thành phần một hệ thống VR
Một hệ thống VR tổng quát bao gồm 5 thành phần: phần mềm (SW),
phần cứng (HW), mạng liên kết, người dùng và các ứng dụng. Trong đó 3
thành phần chính và quan trọng nhất là phần mềm (SW), phần cứng (HW) và
các ứng dụng.
Hình 1.2 Các thành phầncủa hệ thống VR
Phần mềm
Phần mềm luôn là linh hồn của VR cũng như đối với bất cứ một hệ
thống máy tính hiện đại nào. Về mặt nguyên tắc có thể dùng bất cứ ngôn ngữ
lập trình hay phần mềm đồ họa nào để mô hình hóa (modelling) và mô phỏng
(simulation) các đối tượng của VR. Ví dụ như các ngôn ngữ (có thể tìm miễn
phí) OpenGL, C++, Java3D, VRML, X3D,...hay các phần mềm thương mại
như WorldToolKit, PeopleShop,... Phần mềm của bất kỳ VR nào cũng phải
bảo đảm 2 công dụng chính: Tạo hình vào Mô phỏng. Các đối tượng của VR
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
10
được mô hình hóa nhờ chính phần mềm này hay chuyển sang từ các mô hình
3D (thiết kế nhờ các phần mềm CAD khác như AutoCAD, 3D Studio,..). Sau
đó phần mềm VR phải có khả năng mô phỏng động học, động lực học, và mô
phỏng ứng xử của đối tượng.
Phần cứng
Phần cứng của một hệ thống bao gồm: Máy tính (PC hay Workstation
với cấu hình đồ họa mạnh), các thiết bị đầu vào (Input devices) và các thiết bị
đầu ra (Output devices).
- Các thiết bị đầu vào (Input devices): Chúng bao gồm những thiết bị
đầu ra có khả năng kích thích các giác quan để tạo nên cảm giác về sự hiện
hữu trong thế giới ảo. Chẳng hạn như màn hình đội đầu HMD, chuột, các tai
nghe âm thanh nổi - và những thiết bị đầu vào có khả năng ghi nhận nơi người
sử dụng đang nhìn vào hoặc hướng đang chỉ tới, như thiết bị theo dõi gắn trên
đầu (head-trackers), găng tay hữu tuyến (wire-gloves).
- Các thiết bị đầu ra (Output devices): gồm hiển thị đồ họa (như màn
hình, HDM,..) để nhìn được đối tượng 3D. Thiết bị âm thanh (loa) để nghe
được âm thanh vòm (như Hi-Fi, Surround,..). Bộ phản hồi cảm giác (Haptic
feedback như găng tay,..) để tạo xúc giác khi sờ, nắm đối tượng. Bộ phản hồi
xung lực (Force Feedback) để tạo lực tác động như khi đạp xe, đi đường
xóc,...
Đặc tính cơ bản của một hệ thống VR
Một hệ thống thực tế ảo thì tính tương tác, các đồ họa ba chiều thời
gian thực và cảm giác đắm chìm được xem là các đặc tính then chốt.
Tương tác thời gian thực (real-time interactivity): có nghĩa là máy tính
có khả năng nhận biết được tín hiệu vào của người sử dụng và thay đổi ngay
lập tức thế giới ảo. Người sử dụng nhìn thấy sự vật thay đổi trên màn hình
ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
11
Cảm giác đắm chìm (immersion): là một hiệu ứng tạo khả năng tập
trung sự chú ý cao nhất một cách có chọn lọc vào chính những thông tin từ
người sử dụng hệ thống thực tế ảo. Người sử dụng cảm thấy mình là một phần
của thế giới ảo, hòa lẫn vào thế giới đó.VR còn đẩy cảm giác này “thật” hơn
nữa nhờ tác động lên các kênh cảm giác khác. Người dùng không những nhìn
thấy đối tượng đồ họa 3D, điều khiển (xoay, di chuyển..) được đối tượng mà
còn sờ và cảm thấy chúng như có thật. Các nhà nghiên cứu cũng đang tìm
cách tạo những cảm giác khác như ngửi, nếm trong thế giới ảo.
Tính tương tác: có hai khía cạnh của tính tương tác trong một thế giới
ảo: sự du hành bên trong thế giới và động lực học của môi trường. Sự du hành
là khả năng của người dùng để di chuyển khắp nơi một cách độc lập, cứ như
là đang ở bên trong một môi trường thật. Nhà phát triển phần mềm có thể
thiết lập những áp đặt đối với việc truy cập vào những khu vực ảo nhất định,
cho phép có được nhiều mức độ tự do khác nhau (Người sử dụng có thể bay,
xuyên tường, đi lại khắp nơi hoặc bơi lặn…). Một khía cạnh khác của sự du
hành là sự định vị điểm nhìn của người dùng. Sự kiểm soát điểm nhìn là việc
người sử dụng tự theo dõi chính họ từ một khoảng cách, việc quan sát cảnh
tượng thông qua đôi mắt của một con người khác, hoặc di chuyển khắp trong
thiết kế của một cao ốc mới như thể đang ngồi trong một chiếc ghế đẩy…
Động lực học của môi trường là những quy tắc về cách thức mà người, vật và
mọi thứ tương tác với nhau trong một trật tự để trao đổi năng lượng hoặc
thông tin.
1.1.2 Ứng dụng của thực tại ảo
Công nghệ thực tế ảo là xu hướng tất yếu của tương lai, giúp con người
có cơ hội trải nghiệm những sự việc trong thế giới ảo sống động và chân thực
như thế giới thực.Và đây là những ứng dụng phổ biến nhất của công nghệ
thực tế ảo trong cuộc sống.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
12
Tại các nước phát triển, chúng ta có thể nhận thấy VR được ứng dụng
trong mọi lĩnh vực: Khoa học kỹ thuật, kiến trúc, quân sự, giải trí, du lịch, địa
ốc... và đáp ứng mọi nhu cầu: Nghiên cứu- Giáo dục- Thương mại - dịch vụ.
Y học, du lịch là lĩnh vực ứng dụng truyền thống của VR. Bên cạnh đó VR
cũng được ứng dụng trong giáo dục, nghệ thuật, giải trí, du lịch ảo (Virtual
Tour), bất động sản... Trong lĩnh vực quân sự, VR cũng được ứng dụng rất
nhiều ở các nước phát triển.
Công nghiệp ôtô
VR được áp dụng trong giai đoạn thiết kế, thử nghiệm an toàn và bán
hàng trong ngành công nghiệp ô tô. Công nghệ này sẽ mô phỏng thiết kế xe
để các chuyên gia đựa vào đó đánh giá mà không cần phải sản xuất ra một
mẫu thử nghiệm tốn kém. Vì đặc điểm hữu ích này mà công nghệ VR được
các hãng ô tô lớn trên thế giới sử dụng.
Hình 1.3 Hệ thống Distracted Driving
SimulatorDu lịch
Các ứng dụng VR trong du lịch giúp hướng dẫn viên có thêm kiến thức
về những điểm đến trên toàn thế giới mà không cần tiền trạm.Đối với du
khách, họ có thể chọn và trải nghiệm ảo các địa điểm du lịch trước khi quyết
định mua tour.Thậm chí, một số nhà hàng, khách hàng còn dùng VR để giúp
khách hàng hiểu rõ hơn về dịch vụ cung cấp.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
13
Hình 1.4:Hệ thống du lịch ảo mẫu 1
Giải trí
Ở lĩnh vực điện ảnh, giải trí, game nhờ sử dụng công nghệ VR nên đã
có những bước tiến mạnh mẽ. Minh chứng cho thấy là người dùng có thể giải
trí với hằng trăm đầu trò chơi thực tế ảo. Thậm chí, các đạo diễn lừng danh
đang có kế hoạch triển khai các dự án phim VR khổng lồ.
Phim ảnh và truyền hình: Trong nhiều thập kỷ qua, nhiều nhà sản xuất
ngày càng mở rộng nội dung dựa trên công nghệ VR, tiêu biểu như hai bộ
phim bom tấn The Matrix (Ma trận) và Inception (Sự khởi đầu).
Công nghiệp âm nhạc: Âm thanh đa chiều và video 360 độ đang trở
thành một định dạng được lựa chọn hàng đầu cho nền công nghiệp thu âm và
mix nhạc của các nhà sản xuất.
Game: Những trò chơi hành động phiêu lưu sẽ mở đường cho bạn đến
với một thế giới mới hào hứng kỳ vĩ và khiến lượng adrenaline trong cơ thể
bạn sôi trào đến độ không thể rời khỏi thế giới đó. Âm thanh 3D được xây
dựng riêng cho mỗi vật thể khiến cảnh quan trong game biến hóa liên tục.
Kiến trúc
Khách hàng được mục sở thị không gian sống, nội thất, cảnh quan xung
quanh qua hình ảnh 3D 360 độ để có thể đánh giá thực tế ngôi nhà. Sự phát
triển nhanh chóng của công nghệ thực tế ảo (VR) cùng những trải
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
14
nghiệm tích hợp đa dạng mà nó mang lại đã giúp các nhà marketing có thêm
một kênh tiếp thị hình ảnh hiệu quả đến khách hàng.
Hình 1.5:Mô hình 3D trong thiết kế nội thất
Giáodục
Sử dụng VR giúp việc dạy và học từ xa sẽ dễ dàng và hiệu quả hơn.
Hiện nay, công nghệ VR được sử dụng nhiều nhất trong lĩnh vực này như:
Google Expeditions là công cụ giảng dạy trong thực tế ảo cho phép bạn
dẫn đầu hoặc tham gia các hành trình ảo lôi cuốn trên toàn thế giới, tiếp cận
với những địa danh lịch sử, lặn sâu dưới nước cùng những chú cá mập, thậm
chí dạo
chơi ngoài không gian.
Thực tế ứng dụng công nghệ VR trong đàotạo của ViệtNam
Ở Việt Nam, công nghệ VR cũng đã bắt đầu được một số cơ sở đào tạo
triển khai ứng dụng. Điển hình là Hệ thống mô phỏng huấn luyện bắn súng bộ
binh (Trường bắn ảo) do Viện Công nghệ Mô phỏng - Học viện Kỹ thuật
Quân sự nghiên cứu, thiết kế, chế tạo. Hệ thống được sử dụng để huấn luyện
bắn và bắn kiểm tra súng bộ binh dựa trên công nghệ mô phỏng nhằm tăng
cường kỹ năng ngắm bắn cho bộ đội trước khi thực hiện bắn đạn thật trên thao
trường. Hệ thống mô phỏng các đối tượng mục tiêu, thực địa trong môi trường
3D, mô phỏng âm thanh, hình ảnh quá trình tương tác
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
15
thực - ảo, mô phỏng hiện tượng giật của súng như khi bắn đạn thật.Bên cạnh
việc tránh được những rủi ro, hệ thống này giúp giảm thời gian và chi phí
huấn luyện trên vũ khí thật.
Trong lĩnh vực y học, Khoa Y - Trường Đại học Duy Tân, Đà Nẵng đã
áp dụng công nghệ VR để mô phỏng cơ thể ảo phục vụ công tác giảng dạy,
học tập, nghiên cứu cho Bộ môn Giải phẫu. Mô hình mô phỏng các bộ phận
chính của cơ thể con người như hệ xương, hệ cơ, hệ thần kinh, hệ tiêu hoá.
Thông qua mô hình và hệ thống phần cứng điều khiển, tương tác, sinh viên
làm quen với việc thực hành trên các thiết bị nội soi và thực hành giải phẫu
thay vì học trực tiếp trên xác, tiêu bản hoặc tranh. Mô hình này đã được triển
khai tuy sinh viên còn bỡ ngỡ vì đang quen với cách học truyền thống nhưng
các em rất hứng thú với công nghệ mới này.
Hình 1.6:Mô hình VR mô phỏng cơ thể người
Ứng dụng VR của PESVN dựng lên một không gian ba chiều, trong
không gian đó, tất cả những thiết bị điện của PESVN cũng được trang bị và
thể hiện theo kích thước, hình dạng và màu sắc thực tế. Khách hàng có thể
quan sát các thiết bị này ở mọi góc nhìn. Họ có thể sử dụng thử các loại công
tắc, ổ cắm… có thể trực quan nhìn được ánh sáng, màu sắc của các loại đèn
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
16
LED, đèn treo tường cũng như cảm nhận được hoạt động của các thiết bị phụ
trợ như quạt điện, quạt hút, máy lọc không khí…
Hình 1.7:Ứng dụng VR của PanasonicEco Solutions
Công cụ thực tại ảo này sẽ giúp ích rất nhiều cho khách hàng trong
việc suy tính và lựa chọn những sản phẩm cần thiết, phù hợp với sở thích và
môi trường của họ trước khi ra quyết định mua.Điều này là một tiến bộ vượt
trội mà trước đây chưa bao giờ có.
1.1.3. Lịch sử phát triển của Thực tại ảo
Vào giữa những năm 50 Morton Helig đã phát minh ra thiết bị mô
phỏng SENSORAMA. Đây là một thiết bị điều khiển gồm có: một màn hình
thực thể kính, quạt,máy tạo mùi, loa âm thanh và một chiếc ghế di chuyển
được. Ông cũng phát minh ra màn hình truyền hình được gắn vào thiết bị để
xem phim 3D.Đây được xem là tiền đề cho sự phát triển của VR sau này.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
17
Hình 1.8:Thiết bị mô phỏng SENSORAMA
Năm 1961 những kĩ sư của công ty Philco đã phát triển một chiếc mũ
đội hiển thị (Head mounted display – HMD). Nó bao gồm một màn ảnh và hệ
thống theo dõi video đã được những kĩ sư liên kết tới một hệ thống camera.
HMD được sử dụng trong những tình huống nguy hiểm của quân sự, hỗ trợ
cho các phi công trong môi trường thiếu ánh sáng.
Năm 1965, một nhà khoa học máy tính tên là Ivan Sutherland hình
dung ra một điều mà ông gọi là "Ultimate Display". Khi sử dụng hiển thị này,
một người có thể thấy một thế giới ảo hiện ra như thế giới vật lý thật.Điều này
đã định hướng toàn bộ tầm nhìn về VR. Khái niệm của Suntherland bao gồm:
 Một thế giới giới ảo mà ta có thể quan sát thông qua một HMD

 Một máy tính để duy trì các mô hình trong thời gian thực
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
18
 Các khả năng cho người sử dụng để thao tác những đối tượng thực
tế một cách trực quan nhất.
Hình 1.9 Jaron Lanier ngườiđưa ra thuậtngữ VR
1.2. Môi trường và ngôn ngữ lập trình cho đồ họa 3D
1.2.1. Mô phỏng không gian 3D
Với phát triển mạnh mẽ của công nghệ mô phỏng, người sử dụng hoàn
toàn có thể xây dựng lại môi trường làm việc gần tương đương với thực tế để
nhìn xem ứng xử của vật liệu hoặc sản phẩm mình thiết kế trong môi trường
tính toán ảo trên máy tính. Nền tảng của công nghệ này là phương pháp phần
tử hữu hạn và thể tích hữu hạn.
Có 3 bước cơ bản để xây dựng tính toán mô phỏng: Tiền xử lý(Pre Pro
cessing), Tính toán(Processing), xuấtkết quả (Post Processing)
Tiền xử lý (Pre Processing): Nhập vào máy tính các thông số của bài
toán: mô hình CAD 3D, vật liệu, môi trường vật lý, chia lưới..
Tính toán(Processing): Khi các thông số đầy đủ, các phần phềm CAD
– CAE sẽ thực hiện các giải thuật để quy bài toán mô hình về hệ phương trình
vi phân để giải và xuất kết quả.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
19
Xuất kết quả(Post Processing): Các kết quả thường được lưu trên máy
tính với các thông tin về: trường chuyển vị, trường ứng xuất, hình ảnh chuyển
động của mô hình,..
1.2.2. Mô hình hóa mô hình 3D
Khi thiết kế một sản phẩm thao tác dựng mô hình 3D là bước đầu tiên
và quan trọng nhất.Hiện nay có rất nhiều phần mềm thiết kế được sử dụng
rộng rãi, mỗi phần mềm đều có những điểm hay và thú vị riêng. Nhìn chung
lại hầu hết đều có chung một kỹ thuật vẽ khá giống nhau. Một vật thể bất kỳ
được xây dựng dựa trên: điểm, đường thẳng, mặt phẳng và cuối cùng là dùng
các phép dựng hình 3D để tạo nên vật thể. Sau khi có một mô hình 3D thì
công việc tiếp theo là tinh chỉnh sao cho sản phẩm đạt yêu cầu nhất.
Một vật thể 3D bất kỳ là sự tổ hợp của các phép dựng hình được xây
dựng sẵn trong các chương trình vẽ 3D. Mặc dù với tên gọi mỗi chức năng ở
mỗi phần mềm có thể khác nhau đôi chút nhưng đều có các chức năng cơ bản
như sau:
 Kỹ thuật dựng hình dựa trên hình phẳng cơ sở kết hợp với phép tịnh
tiến theo đường thẳng( Extruded): với một hình phẳng 2D được vẽ bất kỳ sau
khi tịnh tiến tạo một khối 3D.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
20
 Kỹ thuật tạo vật thể bằng cách quay mặt cơ sở theo một trục cố định
(Revolved): tạo mặt cơ sở với biên khép kính bất kỳ, sau đó vẽ trục làm tâm
quay để tạo vật thể
 Kỹ thuật dựng hình dựa trên hình phẳng cơ sở kết hợp với phép tịnh
tiến theo đường cong bất kỳ ( swept): với một hình phẳng 2D được vẽ bất kỳ
sau khi tịnh tiến cong tạo một khối 3D.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
21
 Kỹ thuật dựng hình dựa trên nhiều mặt phẳng cơ sở (lofted): tạo 2
hay nhiều mặt phẳng song song trên mỗi mặt tạo biên kính riêng, tạo mặt
phẳng xây dựng từ các mặt phẳng trên.
 Nếu như các kỹ thuật Extruded/ Revolved/ Swept.. tạo thể tích cho
vật thể thì các chức năng Extruded Cut / Revolved Cut / Swept Cut giúp
chúng ta làm rỗng phần thể tích được thao tác:
 Để tạo thẩm mỹ cho sản phẩm cũng như an toàn cho người dùng
hầu hết vật thể đều được gọt nhẵn ở các cạnh biên, có hai phương pháp vát
cạnh: vát theo góc nghiêng hoặc bo tròn.
Tạo nhanh một vật thể bằng cách lấy đối xứng qua mặt phẳng (Mirror):
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
22
 Như vậy, một mô hình 3D được dựng lên một cách dễ dàng bằng
các phép chiếu 3D. Do đó việc xây dựng các hình phẳng 2D chính là cơ sở
cho các phép chiếu. Nói cách khác để xây dựng vật thể 3D chúng ta phải dựng
những đường nét cơ bản từ 2D trước sau đó mới dựng mô hình 3D.
Đường nét cơ bản trong vẽ 2D gồm các chức năng vẽ: điểm, đường thẳng,
đường tròn, hình chữ nhật, đường cong (Spline), lục giác, …Ngoài ra còn có
các hình dạng đặc biệt khác thường dùng trong thiết kế: dạng then, chuỗi ký
tự…
 Sau khi phát thảo đường nét chính của vật thể, chúng ta dùng các
thước đo của phần mềm để tinh chỉnh chiều dài theo ý muốn.

 Để việc thiết kế được nhanh hơn, người ta còn xây dựng các chức
năng cắt tỉa đường nét 2D (TRIM), việc này được thực hiện một cách khá dễ
dàng với ý tưởng như hình:
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
23
Có ba cách phổ biến để thể hiện một mô hình:
 Mô hình hóa đa giác - Các điểm trong không gian 3D, được gọi
là các đỉnh, được kết nối bởi các đoạn đường để tạo thành một lưới đa giác.
Phần lớn các mô hình 3D ngày nay được xây dựng dưới dạng mô hình đa giác
có kết cấu, bởi vì chúng linh hoạt và vì máy tính có thể hiển thị chúng rất
nhanh. Tuy nhiên, đa giác là mặt phẳng và chỉ có thể xấp xỉ các bề mặt cong
bằng nhiều đa giác.
Mô hình đường cong - Bề mặt được xác định bởi các đường cong, bị
ảnh hưởng bởi các điểm kiểm soát có trọng số. Đường cong theo sau (nhưng
không nhất thiết phải nội suy) các điểm. Tăng trọng lượng cho một điểm sẽ
kéo đường cong lại gần điểm đó. Các loại đường cong bao gồm B-spline hợp
lý không đồng nhất (NURBS), spline, miếng vá và nguyên thủy hình học
 Điêu khắc kỹ thuật số - Vẫn là một phương pháp mô hình khá mới,
điêu khắc 3D đã trở nên rất phổ biến trong vài năm qua. Hiện tại có ba loại
điêu khắc kỹ thuật số: Dịch chuyển, được sử dụng rộng rãi nhất trong số các
ứng dụng tại thời điểm này, sử dụng mô hình dày đặc (thường được tạo bởi
các bề mặt phân chia của lưới điều khiển đa giác) và lưu trữ vị trí mới cho
đỉnh vị trí thông qua việc sử dụng bản đồ hình ảnh lưu trữ các vị trí được điều
chỉnh. Thể tích, dựa trên voxels lỏng lẻo, có khả năng tương tự như sự dịch
chuyển nhưng không bị kéo dài đa giác khi không có đủ đa giác trong một
vùng để đạt được biến dạng. Tính năng động tương tự như voxel nhưng phân
chia bề mặt bằng cách sử dụng tam giác để duy trì bề mặt mịn và cho phép

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
24
các chi tiết mịn hơn. Các phương pháp này cho phép khám phá rất nghệ thuật
vì mô hình sẽ có một cấu trúc liên kết mới được tạo ra trên nó một khi mô
hình hình thành và có thể các chi tiết đã được điêu khắc. Lưới mới thường sẽ
có thông tin lưới có độ phân giải cao ban đầu được truyền vào dữ liệu dịch
chuyển hoặc dữ liệu bản đồ thông thường nếu dành cho công cụ trò chơi.
1.2.3 . Bài toán mô phỏng thực tại ảo
Đồ họa máy tính là một lĩnh vực phát triển nhất trong tin học. Nó được
áp dụng rộng rãi trong nhiều lĩnh vực khác nhau như: điện ảnh, hoạt hình,
kiến trúc và các ứng dụng xây dựng các mô hình thực tại ảo…Hiện nay đồ
họa 3D đã được phát triển ứng dụng rộng rãi trong thực tiễn
Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng,
bóng xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần, bóng
là một trong những yếu tố quan trọng nhất của tri giác con người về việc nhận
biết các vật thể trong thế giới 3 chiều. Bóng giúp cho ta nhận biết được vị trí
tương đối của vật đổ bóng (occlude) với mặt nhận bóng (receiver), nhận biết
được kích thước và dạng hình học của cả vật đổ bóng và mặt nhận bóng.
Bóng là một thuộc tính quan trọng của vật thể trong tự nhiên, nhất là
khi tạo hình trong mô phỏng (video, phim hoạt hình…với các hình ảnh động),
nếu mô phỏng không đúng sẽ gây hiệu ứng sai hoặc giả tạo đối với thực tiễn
(độ dài bóng, hướng, sự di chuyển bóng của một vật di động).
Nhận biết được sự quan trọng của bóng, với mục đích mô phỏng được
sự ảnh hưởng của các nguồn sáng tạo ra bóng của đối tượng ba chiều trên cơ
sở đó mô phỏng một số hiện vật một cách trung thực trưng bày trong không
gian bảo tàng. Tôi đã lựa chọn đề tài:” Mô phỏng sự tạo bóng của vật thể từ
MỘT nguồn sáng trong thực tại ảo”. Đề tài nghiên cứu các thuật toán để cài
đặt mô phỏng cho một số hiện vật trong Nhà bảo tàng văn hóa các dân tộc
Việt Nam tại thành phố Thái Nguyên.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
25
Ứng dụng kết quả đã nghiên cứu vào xây dựng một phần mềm trưng
bày ảo cho một số hiện vật tại Bảo tàng Văn hóa các dân tộc Việt Nam tại TP
Thái Nguyên với các lý thuyết phân tích về tác động của môi trường lên hiện
vật.
1.3 Thế giới 3D
Hệ trục tọa độ (coordinates)
Trong một ứng dụng 3D, chúng ta sẽ thấy thông tin của một đối tượng nằm
trong định dạng X, Y, Z gọi là hệ trục Cartesian.
Không gian cụcbộ và không gian toàn cục (Local Spacevà World Space)
Trong mọi thế giới 3D đều có một điểm gốc, thường được gọi là Zero
(không), vì nó được đại diện bởi vị trí (0, 0, 0).Tất cả các vị trí của đối tượng
trong không gian 3D (toàn cục) đều có mối quan hệ với điểm gốc Zero. Tuy
nhiên, để đơn giản hơn, chúng ta cũng sử dụng không gian cục bộ (Local
Space – được biết như là không gian riêng của đối tượng) để xác định vị trí
của đối tượng có liên hệ với một đối tượng khác.
Không gian cục bộ giả định rằng mỗi đối tượng đều có điềm gốc Zero
riêng biệt.Điểm này thường là điểm trung tâm của đối tượng, và bằng cách tạo
ra mối quan hệ giữa các đối tượng, chúng ta có thể so sánh vị trí của chúng
trong mối quan hệ với một đối tượng khác.Chúng ta có thể tính toán khoảng
cách từ một đối tượng khác bằng cách sử dụng không gian cục bộ, với vị trí
của đối tượng cha trở thành điểm gốc cho tất cả các đối tượng con.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
26
Hình 1.10:World space và Local space.
Vec-tơ (Vectors)
Vector có thể di chuyển trong không gian 3D. Vector rất hữu ích trong
Game Engine, vì chúng cho phép chúng ta tính toán khoảng cách, góc giữa
các đối tượng và hướng của đối tượng.
Camera (Cameras)
Camera là một đối tượng rất cần thiết trong thế giới 3D, chức năng của
chúng hoạt động như một khung nhìn cho màn hình. Có một tầm nhìn theo
hình kim tự tháp, camera có thể được đặt ở bất kỳ điểm nào trong thế giới 3D,
được diễn hoạt, hoặc gắn vào nhân vật hay các đối tượng như là một phần của
kịch bản trò chơi. Với khả năng điều chỉnh tầm nhìn (Field fo Vision - FOV),
3D Camera là tầm nhìn của chúng ta trong không gian 3D.
Unity cho phép có nhiều Camera trong một cảnh duy nhất, điều này có
thể được viết mã điều khiển Camera tại bất kỳ điểm nào trong suốt thời gian
chạy. Nhiều camera có thể được sử dụng trong trò chơi để điều khiển việc kết
xuất những đơn vị hình ảnh 2D và 3D riêng biệt như là một phần của quá
trình tối ưu. Ví dụ, đối tượng có thể được gom nhóm trong trong một lớp, và
Camera được chỉ định để kết xuất hình ảnh của đối tượng trong một lớp riêng
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
27
biệt.Việc này cho phép chúng ta kiểm soát nhiều hơn đối với từng cá nhân của
một đốitượng nhất định.
Đa giác (Polygon), cạnh (Edges), đỉnh (Vertices) và mắt lưới
(Meshes)
Trong dựng hình 3D, tất cả các đối tượng cuối cùng đều được nối với
nhau bởi những hình ảnh 2D được biết với các tên “đa giác” (Polygons).Khi
nhập mô hình (Model) từ những ứng dụng dựng hình (Modelling
Application), Unity chuyển đổi tất cả các đa giác thành tam giác.Tam giác
(còn được gọi là mặt) được tạo nên từ 3 cạnh kết nối với nhau.Vị trí mà các
cạnh gặp nhau gọi là điểm hay đỉnh. Khi xác định được các vị trí này, Game
Engine có thể thực hiện tính toán sự va chạm (Collisions), … Số lượng đa
giác là tổng số lượng các đa giác tạo nên Model, càng nhiều đa giác thì càng
có nhiều công việc mà máy tính phải làm để kế xuất hình ảnh của đối tượng
lên màn hình.
Vật liệu (Materials), kếtcấu (Textures) và đổ bóng (Shaders)
Vật liệu là một khái niệm rất quen thuộc trong tất cả các ứng dụng 3D,
chúng cung cấp phương tiện để thiết lập sự xuất hiện (Visual Appearence) của
một mô hình 3D.Từ những màu sắc cơ bản đến các bề mặt phản chiếu hình
ảnh, vật liệu xử lí tất cả mọi thứ. Vật liệu có thể là một màu sắc cơ bản hay
bao gồm một hoặc nhiều hình ảnh được gọi là Textures (kết cấu). Shaders là
những mã kịch bản phụ trách phong cách kết xuất hình ảnh.
1.4. Kết luận
VR- Virtual Reality – Thực tại ảo (hay thực tế ảo): là một hệ thống
giao diện cấp cao giữa người dùng và máy tính. Hệ thống này mô phỏng các
sự vật hiện tượngtheo thời gian thực và tương tác với người sử dụng thông
qua các kênh cảm giác như thị giác, thính giác, xúc giác, khứu giác và vị giác.
Hay nói một cách khác là, người sử dụng có thể di chuyển, quan sát, tươngtác
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
28
với một thế giới nhân tạo được xây dựng mô phỏng bằng máy tính như đối
với thế giới thực. Người dùng có thể nhìn thấy các đối tượng đồ họa 3D nổi,
điều khiển được các đối tượng trong thế giới nhân tạo đó và có thể sờ, nắm,
cảm nhận các đối tượng đó giống như trong thế giới thực.
Cùng với sự phát triển của khoa học công nghệ phục vụ cuộc sống,
lĩnh vực thực tại ảo đã và đang phát triển phục vụ cho nhiều nhu cầu ứng
dụng. Các video mô phỏng các hiện tượng tự nhiên như trong thế giới vĩ mô,
vi mô (vũ trụ, tế bào, phân tử, nguyên tử….); các ứng dụng trong giải trí, bảo
tồn, bảo tàng. Để rèn luyện kỹ năng xây dựng và giải quyết một vấn đề ứng
dụng của thực tại ảo, chương 2 tiếp tục nghiên cứu các vấn đề lý thuyết và
thuật toán cơ bản phục vụ cho xây dựng sản phẩm ứng dụng của luận văn
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
29
CHƯƠNG II
CÁC KỸ THUẬT XÁC ĐỊNH VÀ BIỂU DIỄN BÓNG
2.1 Ánh sáng
2.1.1 Khái niệm ánhsáng
Ánh sáng một loại bức xạ, nó có thể được hiểu, giải thích theo hai tính
chất vật lý, thứ nhất là tính chất sóng điện từ trường (quang học sóng), thứ hai
là tính chất hạt (quang học hạt). Đi đôi với ánh sáng là bóng có ánh sáng thì
mới có bóng, và bóng là sự thể hiện của ánh sáng. Ánh sáng truyền đi trong
không gian khi đến một bề mặt nó tương tác với bề mặt, sự tương tác này
được thể hiện thông qua hai hiệu ứng chính là “bóng bề mặt”, và “bóng đổ”
có thể gọi chung chúng là bóng. Hiệu ứng “bóng bề mặt” xảy ra khi ánh sáng
đến bề mặt, và phản xạ lại môi trường một lượng ánh sáng nhất định theo các
hướng khác nhau, trong đó có một phần đến được mắt, tác động lên hệ thần
kinh thị giác, vì vậy chúng ta quan sát được đối tượng. Theo định luật truyền
thẳng ánh sáng khi đến một bề mặt không trong suốt thì bị cản lại, và không
thể tiếp tục được truyền đi theo hướng đến, vì vậy mọi điểm phía sau sẽ
không có sự chiếu sáng từ nguồn sáng hiện tượng như vậy được gọi là hiệu
ứng “bóng đổ”.
Trong quang học sóng, ánh sáng là một loại sóng điện từ trường do đó
nó cũng tuân theo các định luật của sóng như định luật truyền thẳng, định luật
phản xạ, khúc xạ, vvv. Trong trường hợp này năng lượng của ánh sáng được
thể hiện hiện bằng các dao động điện từ trường. Hướng dao động điện trường
và từ trường vuông góc với nhau tạo ra cách ánh sáng truyền đi trong không
gian. Loại ánh sáng có thành phần sóng điện trường (từ trường) giao động trên
một mặt phẳng cố định được gọi là ánh sáng “phân cực tuyến tính”, hoặc đơn
giản là “phân cực”. Dựa vào đặc tính phân cực của ánh sáng khi đi qua một
số loại vật liệu nhất định mà người ta đã xây dựng lên các hệ thống hiển
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
30
thị hình ảnh 3D, ví dụ như hệ thống máy chiếu 3D, ti vi 3D, kính 3D vv...Sự
xuất hiện của các thiết bị này là một trong những động lực quan trọng nhất tạo
nên sự phát triển của lĩnh vực VR hiện nay.
.Khả năng nhìn của con người với mỗi loại ánh sáng trong khoảng nhìn
được là không giống nhau. Hình dưới là đồ thị thể hiện khả năng quan sát của
con người với từng mức sóng cụ thể của ánh sáng.
Hình 2.1 Bước sóng sánh sáng (nm)
Khả năng quan sát của con người tương ứng với từng mức sóng
Trong đồ họa 3D tính chất sóng - hạt của ánh sáng được trừu tượng hóa
thông qua các quy luật, việc xây dựng các quy luật này phần lớn dựa vào các
quy luật hình học, và các quy luật quang học. Các phần nội dung dưới đây sẽ
trình bày một số quy luật quan trọng, nhưng trước tiên để hiểu được các quy
luật này chúng ta hãy xem xét một số đơn vị sử dụng trong việc đo lường ánh
sáng.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
31
Hướng sáng
Hướng đặt nguồn sáng tác động rất lớn đến cách cảm nhận của
chúng ta về nó, cũng như cách mà các chi tiết xuất hiện trong khung cảnh.
Việc chọn hướng nguồn sáng chính đến từ đâu là một trong những quyết định
quan trọng nhất mà bạn cần làm , vì nó ảnh hưởng rất nhiều đến cách xuất
hiện của khung cảnh, cũng như cảm xúc mà bức hình muốn thể hiện.
Hình 2.2 Chiếu sáng chính diện (Front lighting)
Nguồn sáng đặt ngay sau điểm nhìn của người xem, thường thấy
trong chụp ảnh với đèn flash và không thực sự hấp dẫn nếu nguồn sáng quá
mạnh– trừ một số trường hợp ngoại lệ, các nguồn sáng nhẹ đặt chính diện có
thể cho ra các bức ảnh rất thu hút.
Nguồn sáng chính diện không có nhiều tác dụng trong việc mô tả hình
dáng hình học hay kết cấu của vật thể vì lúc này bóng đổ hầu như bị che khuất
phía sau khung hình, kết quả là nó làm mọi thứ trông phẳng hơn. Tuy nhiên
một nguồn sáng khuếch tán nhẹ đặt chính diện giúp tôn lên vẻ đẹp của chủ thể
vì lý do – nó giúp che đi các nếp nhăn, khuyết điểm của chủ thể, vốn thường
được dùng trong chụp ảnh chân dung hoặc chụp hình sản phẩm.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
32
Hình 2.3 Nguồn sáng bên (Side Lighting)
Nguồn sáng bên rất hữu dụng trong việc miêu tả hình dáng và kết
cấu của chi tiết, đem đến cái nhìn chân thật hơn về chủ thể trong không gian
ba chiều. Kết quả cho ra bóng đổ rõ nét và độ tương phản cao. Nguồn sáng
bên có thể được dùng để tạo bóng đổ nổi bật lên các bề mặt như tường, sàn,
tạo không gian cho bức hình. Việc sử dụng nguồn ánh sáng bên thường tạo độ
thu hút và cho ra các hiệu ứng ấn tượng: đây là loại nguồn sáng có thể bắt gặp
vào buổi sáng sớm hoặc chiều tối, cũng như khá thường thấy trong nhiếp ảnh
và làm phim.
Hạn chế của việc sử dụng nguồn sáng bên là một phần của bức hình có
thể bị mất đi trong phần bóng đổ, và nó có khả năng bộc lộ các thiếu sót của
chủ thể như nếp nhăn hoặc nhược điểm. Trong chụp ảnh chân dung, nguồn
sáng bên thường được dùng chụp nam giới hơn là nữ giới vì bức hình sẽ trông
khá thô ráp, đặc biệt là khi có bóng đổ sắc cạnh, kém mềm mại.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
33
Hình 2.4Nguồn sáng phía sau (Backlighting)
Người xem hướng mắt về phía đặt nguồn sáng, các chủ thể có phần
cạnh bao bị khuất phía sau sẽ được thắp sáng và hiển thị dưới dạng bóng rọi
hoặc làm mờ bằng một nguồn sáng phụ. Độ tương phản cao, tạo cảm giác
rộng mở và kịch tính. Nếu nguồn sáng đặt xéo một góc nhỏ so với tia hướng
nhìn, chủ thể sẽ xuất hiện một vành sáng do một hoặc một số góc cạnh của
chủ thể đó tạo ra, nguồn sáng càng mạnh thì vành sáng này càng hiển thị rõ
rệt.
Các khung cảnh ngược sáng thường tạo ra nhiều bóng đổ phía trước
chủ thể, trừ khi nguồn sáng phía sau rất nhẹ. Trong hầu hết các trường hợp,
bức hình sẽ có màu tối chủ đạo, đi kèm với một vũng sáng nổi bật. Các vành
sáng xuất hiện trong trường hợp này sẽ rất hữu ích trong việc làm nổi bật các
đường nét của chủ thể. Một đặc điểm khác của loại nguồn sáng này là nó giúp
biểu lộ các chi tiết có tính trong suốt, tính mờ đục, các kết cấu hoặc chi tiết
trong vùng bóng rọi và vùng vành sáng. Loại nguồn sáng này cũng rất hữu ích
trong việc tạo thêm điểm nhấn thu hút cho bức hình.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
34
Nguồn sáng phía sau có thể biến các chi tiết tầm thường trở nên lôi
cuốn và hấp dẫn
Hình 2.5 Chiếu sáng từ phía trên (Top Lighting)
Nguồn sáng từ trên (Top lighting) là một trường hợp ít gặp hơn, mặc dù
nó vẫn khá phổ biến trong những ngày trời mây, ít nắng. Có thể quan sát hiện
tượng này lúc trời nắng giữa trưa, trong các công trình nội thất, ánh đèn sân
khấu…Với nguồn sáng nhẹ, đây là một cách khá hữu dụng trong việc miêu tả
hình dáng chi tiết. Dưới nguồn sáng mạnh, nó lại đem đến cảm giác huyền ảo
bằng cách tạo ra các bóng đổ kịch tính, che đi hầu hết hình dáng của chủ thể
bên dưới: ví dụ như người đứng ngay dưới nguồn sáng mạnh sẽ có hốc mắt
màu đen vì vùng mắt lúc này hoàn toàn nằm trong vùng bóng đổ và không có
ánh sáng truyền tới.
Theo tôi biết thì nguồn sáng từ trên hiếm khi được sử dụng, tuy nhiên
không có nghĩa là không nên dùng loại nguồn sáng này. Với những ngày
nhiều mây thì đây là dạng thiết lập nguồn sáng chân thật nhất, với cả bầu trời
lúc này đóng vai trò như một nguồn sáng khuếch tán rộng lớn.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
35
Hình 2.6 Chiếu sáng từ phía dưới (Below Lighting)
Dạng nguồn sáng từ dưới thậm chí còn hiếm gặp hơn nhiều so với
nguồn sáng từ trên. Trong thực tế, hiện tượng này có thể xảy ra khi một người
cầm đèn hay ngọn đuốc, khi đó sẽ có ánh sáng phản chiếu từ bên dưới như từ
mặt nước chẳng hạn. Lúc này cách xuất hiện của mọi vật trong khung cảnh sẽ
rất khác biệt, và bị đảo ngược (tương tự như khi một người dùng đèn pin soi
sáng khuôn mặt họ từ dưới lên vậy: bóng đổ sẽ xuất hiện lộn ngược lên trên).
Và một lần nữa, sự hiếm gặp của loại nguồn sáng này có thể được sử
dụng để cho ra các hiệu ứng vô cùng độc đáo và sáng tạo. Nó khiến chúng ta
bất chợt nhận thấy các sự vật dường như có gì không đúng hay trái với thực
tế, và đó chính là cách mà ta nên vận dụng yếu tố ánh sáng để truyền tải thông
điệp hoặc cảm xúc đến người xem.
2.1.2. Tạobóng
“Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng,
xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần”
Bóng là một trong những yếu tố quan trọng nhất của tri giác conngười
về
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
36
việc nhận biết các vật thể trong thế giới 3 chiều. Bóng giúp cho ta nhận biết
được vị trí tương đối của vật đổ bóng (occluder) với mặt nhận bóng (receiver),
nhận biết được kích thước và dạng hình học của cả vật đổ bóng và mặt nhận
bóng.
Hình 2.7:Bóng cung cấp thông tin về vị trí tương đối của vật thể.
Với ảnh ở bên trái ta không thể biết được vị trí của conrối. Nhưng
với ảnh bên phải ta thấy vị khoảng cách của chúng so với mặt đất xa dần.
Hình 2.8:Bóng cung cấp thông tin về dạng hình họccủa mặt tiếp nhận.
Hình bên trái ta không thể biết được dạng hình học của mặt tiếp nhận,
còn mặt bên phải thì dễ dàng thấy được.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
37
2.2. Kỹ thuật hiển thị mô hình Occlusionculling
Sơ lược về kỹ thuật Occlusion Culling
Unity cung cấp cho chúng ta một công cụ tối ưu rất hay sử dụng kỹ
thuật tối ưu được sử dụng bởi rất nhiều trò chơ hiện nay đó là Occlusion
Culling. Đây là kỹ thuật cho phép khả năng vô hiệu hóa kết xuất hình ảnh của
các đối tượng khi chúng không được nhìn thấy bởi camera do bị che khuất bởi
các đối tượng khác. Kỹ thuật này không tự động được thực hiện trong đồ họa
3D máy tính, mặc định những đối tượng ở xa camera hơn sẽ được vẽ ra trước
và sau đó các đối tượng ở gần hơn sẽ được vẽ đè lên (được gọi bằng thuật ngữ
“overdraw”). Ngoài kỹ thuật Occlusion Culling, còn có một số kỹ thuật tối ưu
khác như Frustum Culling, kỹ thuật này chỉ cho phép vô hiệu hóa các đối
tượng nằm ngoài vùng nhìn của camera. Trong khi đó Occlusion Culling
ngoài việc khắc phục vấn đề Overdraw mà còn tận dụng lại khả năng của kỹ
thuật Furstum Culling.
Tiến trình của Occlusion Culling được thực hiện bởi một camera ảo để
xây dựng một hệ thống gồm tập hợp các đối tượng có thể hiển thị. Dữ liệu này
được dùng trong quá trình runtime bởi camera để xác định rằng “cái gì được
xuất hiện và cái gì không được xuất hiện?”. Occlusion Culling giúp giảm số
lần gọi lại công việc dựng hình (Draw call), giúp tăng hiệu suất của ứng dụng.
Dữ liệu cho kỹ thuật Occlusion Culling bao gồm các ô (Cells), mỗi ô là một
nhánh của khối toàn bộ đối tượng trong Scene, cụ thế hơn thì các ô này tạo
thành một cây nhị phân. Occlusion Culling sử dụng hai cây, một giành cho
View Cells (Static Object – đối tượng tĩnh) và một giành cho Target Cells
(Moving Object – đối tượng động). View Cells là một bản đồ liệt kê các đối
tượng tĩnh có thể nhìn thấy nhằm giúp cho kết quả của việc chọn lọc các đối
tượng tĩnh được chính xác hơn. Điều quan trọng cần ghi nhớ là khi tạo đối
tượng, chúng ta cần đảm bảo sự cân bằng giữa kích thước đối tượng
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
38
và kích thước của mỗi ô. Chúng ta không nên có các đối tượng quá nhỏ so với
kích thước ô cũng như không nên có các đối tượng lớn bằng kích thước của
nhiều ô.
Thỉnh thoảng chúng ta có thể cải thiện bằng việc chia một đối tượng
lớn thành nhiều đối tượng nhỏ. Chúng ta có thể trộn (gộp) nhiều đối tượng
nhỏ lại thành một để giảm số Draw calls nhưng nếu việc chúng được đặt trong
cùng một ô sẽ làm cho Occlusion Culling sẽ không có hiệu quả. Tập hợp các
ô và thông tin quyết định chúng có được nhìn thấy từ một ô khác hay không
có tên gọi là PVS (Potentially Visible Set).
Công cụ Occlusion Cullingtrong Unity
Để sử dụng Occlusion Culling, chúng ta cần phải thực hiện một số thao
tác cài đặt. Đầu tiên, màn chơi của chúng ta cần phải được chia nhỏ thành
từng mảnh với kích thước hợp lý. Tiếp theo, đánh dấu (tag) các đối tượng mà
chúng ta muốn chúng trở thành một phần dữ liệu trong quá trình thực hiện kỹ
thuật Occlusion Culling.
Hình 2.9 Đánh dấu đốitượng.
Sau khi thực hiện các thao tác cài đặt cơ bản, chúng ta đã có thể sử
dụng công cụ Occlusion Culling với các thẻ chứ năng mà Unity cung cấp để
Unity tính toán và thu thập dữ liệu cho tối ưu hóa.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
39
Hình 2.10 ThẻObject trong công cụ Occlusion
Hình 2.11ThẻBaketrong công cụ Occlusion
Hình 2.12 ThẻVisualization trong công cụ Occlusion
Các thẻ Object, Bake, Visualization cung cấp chức năng cho phép
chúng ta xác định vùng, các đối tương sẽ áp dụng Occlusion; xác định Camera
cần dùng dữ liệu từ Occlusion Culling để xử lí, kết xuất hình ảnh.Cho
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
40
phép chúng ta tùy chọn về các giới hạn xa, gần, kích thước của các ô chứa đối
tượng Occlusion.
Hình 2.13 Vùng và các ô áp dụng Occlsion Culling.
2.3. Kỹ thuật hiển thị mô hình Bump Mapping
Đặt vấn đề
Hiện nay hiệu ứng chiếu sáng trên từng điểm ảnh được sử dụng khá
phổ biến trong các sản phẩm mô phỏng nhằm tăng cường chất lượng đồ họa
mô phỏng. Thay vì chiếu sáng theo từng đỉnh vertex, per-pixel lighting cho
chất lượng đồ họa cao hơn hẳn do có thể áp dụng nhiều thuật toán mới trong
đồ họa 3 chiều như bump bề mặt bằng normal map, phản chiếu bề mặt bằng
specular map… Ứng dụng khi tự thực hiện chiếu sáng trên điểm ảnh bằng
Shaders phải giải quyết các tất cả các vấn đề về chiếu sáng như diffuse
lighting, specular lighting… Diffuse lighting trong các thư viện chủ yếu sử
dụng bump bằng normal map và specular lighting chủ yếu sử dụng specular
map, 2 thuật toán chiếu sáng này sẽ được trình bày kỹ ở phần này.
Cơ sở lý thuyết
Qui trình chiếu sáng trên điểm ảnh chủ yếu phân ra làm 2 công đoạn
riêng biệt: thực hiện tính toán màu chính (diffuse color) và tính toán màu phản
chiếu (specular color). • Tính toán màu diffuse (có bump bề mặt bằng
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
41
normal map) Trước khi đi chi tiết vào thuật toán ta cần xem qua 1 số khái
niệm mới dùng trong phần này Không gian tiếp tuyến của vật thể (tangent
space). Tọa độ texture tại mỗi đỉnh (vertex) hình thành một hệ trục tọa độ 3
chiều với trục U (tiếp tuyến), trục W (pháp tuyến) và trục V (binormal = U x
W). Hệ trục tọa độ này gọi là không gian tiếp tuyến hay không gian texture
của vật thể tại các đỉnh (vertex).
Không gian tiếp tuyến
• Normal map, Normal map là một texture nhưng có đặc tính khá đặc
biệt, thay vì chứa thông tin về điểm màu như texture thông thường, normal
map lai chứa thông tin về không gian tiếp tuyến (tangent space) hay không
gian texture (texture space) của vật thể, hay nói cách khác nếu các điểm ảnh
của texture biểu diễn màu sắc của vật thể tại 1 điểm thì normal map sẽ biểu
diễn không gian tiếp tuyến của vật thể tại điểm đó. Mỗi điểm ảnh của normal
map có định dạng là RGBA trong đó 3 thành phần RGB có giá trị [0..1] được
ánh xạ từ 3 trục U, V, W có giá trị trong khoảng [-1, 1]. Normal map có thể
tạo ra bằng 2 cách, dùng height map (texture dạng graycale chứa thông tin độ
sâu về bề mặt của vật thể trong đó màu sáng hơn biểu thị độ cao lớn hơn).
Cách thứ 2 phức tạp hơn do phải tạo thêm 1 vật thể khác có độ chi tiết cao
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
42
hơn, sau đó ta so sánh sự khác nhau giữa 2 vật thể để tạo ra normal map (quá
trình này có thể được thực hiện bằng tool Melody của NVidia).
Hình 2.14 Tạonormal map từ hightmap
• Bump bề mặt sử dụng normal map, Bump bề mặt chủ yếu được thực
hiện trên Pixel Shader cho từng điểm ảnh. Thuật toán này sử dụng giá trị
normal trong normal map để xác định mức độ của ánh sáng tác động vào điểm
ảnh đó bằng cách nhân tích vô hướng giá trị normal trên với vector hướng ánh
sáng trong không gian tiếp tuyến. Sau đó giá trị này được nhân với màu sắc
của vertex và màu lấy mẫu từ texture để tính ra màu diffuse (màu của vertex
được tính trong Vertex Shader) Trong đó:
+ Normal. Vector pháp tuyến (normal vector) tại điểm đó, normal
vector có được do lấy mẫu từ normal map.
+ Light vector. Vector hướng ánh sáng trong không gian tiếp tuyến
(tangent space), vector này được tính trong Vertex Shader và được truyền vào
Pixel Shader để sử dụng. vertex color. Màu của vertex sau khi thực hiện chiếu
sáng trên vertex (pervertex lighting) trong Vertex Shader. texture color. Màu
của texture chính, có được do lấy mẫu texture.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
43
+ Tính toán màu specular (sử dụng specular map), specular map là
texture dạng grayscale, specular map có tác dụng cho biết vùng nào của vật
thể phản chiếu nhiều ánh sáng vùng nào phản chiếu ít ánh sáng (tương ứng
với màu trong specular map từ sáng tới tối).
+ Tính độ phản chiếu của ánh sánh, Độ phản chiếu (phản xạ) của ánh
sáng trên vật thể thì phụ thuộc vị trí của mắt (hay camera). Khi mắt nằm ngay
trên đường phản xạ của ánh sáng thì mắt sẽ nhìn thấy một vùng ánh sáng chói
do toàn bộ năng lượng của ánh sáng được truyền thẳng vào mắt. Muốn tính
màu specular của điểm ảnh ta phải xác định được mức độ ánh sáng phản
chiếu tại điểm đó. Công thức tính vector phản chiếu (phản xạ) như sau:
Sự phản xạ của tia sáng trên bề mặt
R = 2(L dot N)N - L
Trong đó:
L. Light vector R.
Reflection vector
N. Norma
l Mức độ phản chiếu của ánh sáng phụ thuộc rất nhiều vào chất liệu bề
mặt của vật thể, các bề mặt nhẵn bóng có độ phản chiếu lớn trong khi các bề
mặt gồ ghề lại có độ phản chiếu thấp. Để tránh công việc phải phân rã vật thể
ra thành nhiều thành phần để dựng hình với các mức phản chiếu khác nhau
người ta dùng specular map như một lookup table để xác định mức độ phản
chiếu của ánh sánh trên từng điểm ảnh.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
44
reflection vector = 2 * dotproduct(normal, light vector) * normal - light
vector specular factor = dotproduct(reflection vector, view vector)
specular color = (specular factor ^ specular constant) * specular
lookup Trong đó
• normal. Vector pháp tuyến (normal vector) tại điểm đó, normal vector
có được do lấy mẫu từ normal map.
• light vector. Vector hướng ánh sáng trong không gian tiếp tuyến
(tangent space), vector này được tính trong Vertex Shader và được truyền vào
Pixel Shader để sử dụng.
• view vector. Vector tính từ mắt đến điểm nhìn (tọa độ trong không
gian tiếp tuyến), vector này được tính trong Vertex Shader và truyền vào
Pixel Shader để sử dụng specular constant. Hằng phản chiếu, giá trị càng lớn
thì vùng phản chiếu càng nhỏ.
• specular lookup. Cho biết mức độ phản chiếu của điểm đó, giá trị này
có được do lấy mẫu từ specular map.
2.4. Kỹ thuật biểu diễn bóng đổ
Kỹ thuật ánh xạ bóng phụ thuộc vào thực tế là bóng đổ của mỗi pixel
chỉ thể hiện các đỉnh gần máy ảnh nhất. Do đó, chỉ những phần vật thể gần
nhất với "nguồn sáng" mới được vẽ vào vùng bóng và lưu vào bộ đệm khi thể
hiện bóng đổ của ảnh. Khi chúng ta đang vẽ các đối tượng của mình từ điểm
quan sát, chúng ta có thể xác định khoảng cách thực tế của mỗi đỉnh từ nguồn
sáng, sau đó chúng ta có thể so sánh với giá trị được lưu trữ trong bộ đệm sâu.
Nếu giá trị được lưu trong bộ đệm độ sâu nhỏ hơn khoảng cách thực tế của
đỉnh từ nguồn sáng, thì nó phải có một vật thể nằm giữa nó và máy ảnh và
điểm đó cần thể hiện bóng đổ
Khoảng cách từ
nguồn
Khoảng cách từ
nguồn
Khoảng cách từ nguồn sáng đến mặt phẳng >Khoảng cách
Số hóa bởi Trung tâm Học từliệunguồnvàCôngsángnghệđến vậtthôngthì tinmới– cóĐHTNbóng đổ
http://lrc.tnu.edu.vn
45
Để nhận được giá trị lưu trữ trong bộ nhớ cho các điểm đã vẽ, chúng ta
phải ánh xạ hình ảnh chính xác cho từng điểm, sau đó thêm vào bóng của
điểm bằng cách gọi thủ tục PPModel.fx effect nghĩa là copy hiệu ứng bóng
thêm vào các tham số tọa độ và độ dài của bóng
boolDoShadowMapping = true;
float4x4 ShadowView;
float4x4 ShadowProjection;
texture2D ShadowMap;
sampler2D shadowSampler = sampler_state
{
texture = <ShadowMap>;
minfilter = point;
magfilter = point;
mipfilter = point;
}
Thủ tục VertexShaderOutput struct sẽ thêm giá trị vị trí không gian của
đỉnh, của nguồn sáng
float4 ShadowScreenPosition : TEXCOORD2; Bóng đổ của
đỉnh cần tính toán các giá trị sau: output.ShadowScreenPosition
= mul(mul(input.Position, World),
mul(ShadowView, ShadowProjection));
Sau đó chúng ta cần lấy mẫu của bề mặt vật, để tạo biên của bóng cho
phù hợp với hình ảnh thực tế chúng ta quan sát bằng mắt thường. Vấn đề là
lấy đủ số mẫu cần thiết để bóng được trơn nhưng cũng không quá nhiều mẫu
làm giảm tốc độ xử lý
float sampleShadowMap(float2 UV)
{
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
46
if (UV.x < 0 || UV.x > 1 || UV.y < 0 || UV.y > 1)
return 1;
return tex2D(shadowSampler, UV).r;
}
Cuối cùng chúng ta dùng hàm để xác định kích thước từ độ sâu bề mặt
vật ứng với bóng đổ của điểm
float2 shadowTexCoord =
postProjToScreen(input.ShadowScreenPosition) + halfPixel();
float mapDepth = sampleShadowMap(shadowTexCoord);
Nếu chúng ta nhận giá trị trả về giá trị 1 nghiã là sẽ tạo bóng đổ cho
điểm xét trên bề mặt vật thể
return float4(mapDepth, mapDepth, mapDepth, 1);
Trước khi sử dụng hàm này để lấy giá trị trả về để sinh ra bóng đổ, ta
cần chắc chắn rằng ta đã thiết lập các tham số ngưỡng để xác định độ sâu bề
mặt vật
prepareMainPass() function of PrelightingRenderer:
if (part.Effect.Parameters["DoShadowMapping"] != null)
part.Effect.Parameters["DoShadowMapping"].SetValue(DoShadowMappi
ng);
if (!DoShadowMapping) continue;
if (part.Effect.Parameters["ShadowMap"] != null)
part.Effect.Parameters["ShadowMap"].SetValue(shadowDepthTarg); if
(part.Effect.Parameters["ShadowView"] != null)
part.Effect.Parameters["ShadowView"].SetValue(shadowView);
if (part.Effect.Parameters["ShadowProjection"] != null)
part.Effect.Parameters["ShadowProjection"].
SetValue(shadowProjection);
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
47
Bóng đổ mờ
Khi tạo bóng như thuật toán trên, bóng tạo ra rất chuẩn nhưng đôi khi
chưa phản ánh đúng thực tế của thể giới thực mà thực tế có sự giao thoa ánh
sáng, nhiễu nên bóng thường có độ nhòe thậm chí hai bóng riêng biệt khi có
hai nguồn sáng chói phân biệt. Tác dụng của xử lý mờ bóng (soft shadow),
khi biểu diễn các vật thể trên bề mặt có nền phức tạp đảm bảo biểu diễn chính
xác
Hình 2.15 Bóng đổ mờ
Như vậy, bề mặt vật có hai giá trị, giá trị bao phủ bề mặt bằng một vật
liệu nào đó, và giá trị bóng. Quá trình làm mờ là tính toán giá trị trung bình
các pixel và các điểm láng giếng. Hàm Gausian được sử dụng để tính toán
như sau:
// The texture to blur
texture ScreenTexture;
sampler2D tex = sampler_state {
texture = ; minfilter = point; magfilter = point; mipfilter =
point; };
// Precalculated weights and offsets
float weights[15] = { 0.1061154, 0.1028506, 0.1028506, 0.09364651,
0.09364651, 0.0801001, 0.0801001, 0.06436224, 0.06436224,
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
48
0.04858317, 0.04858317, 0.03445063, 0.03445063, 0.02294906,
0.02294906 };
float offsets[15] = { 0, 0.00125, -0.00125, 0.002916667, -0.002916667,
0.004583334, -0.004583334, 0.00625, -0.00625, 0.007916667, -
0.007916667, 0.009583334, -0.009583334, 0.01125, -0.01125 };
// Blurs the input image horizontally float4 BlurHorizontal(float4 Position
: POSITION0, float2 UV : TEXCOORD0) : COLOR0{
float4 output = float4(0, 0, 0, 1);
// Sample from the surrounding pixels using the precalculated
// pixel offsets and color weights for (int i = 0; i < 15; i++) output +=
tex2D(tex, UV + float2(offsets[i], 0)) * weights[i]; return output; } //
Blurs the input image vertically float4 BlurVertical(float4 Position :
POSITION0, float2 UV : TEXCOORD0) : COLOR0 { float4 output
= float4(0, 0, 0, 1); for (int i = 0; i < 15; i++) output += tex2D(tex,
UV + float2(0, offsets[i])) * weights[i]; return output; }
technique Technique1
{
pass Horizontal
{
PixelShader = compile ps_2_0BlurHorizontal();
}
pass Vertical
{
PixelShader = compile ps_2_0BlurVertical();
}
}
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
49
Ở đây, có hai kỹ thuật, làm mờ theo chiểu ngang và làm mờ theo chiều
dọc. Chúng ta làm mờ theo mỗi chiều độc lập với nhau (mỗi bóng đổ của
pixel thêm vào giá trị điều chỉnh căn cứ vào độ lệch của giá trị trung bình. Ví
dụ làm mờ theo chiều dọc thêm vào giá trị tính được từ 15 điểm láng giềng:
SpriteBatch spriteBatch;
RenderTarget2D shadowBlurTarg;
Effect shadowBlurEffect;
Những giá trị này có thể được tạo ra từ thủ tục:
spriteBatch = new SpriteBatch(GraphicsDevice); shadowBlurEffect =
Content.Load("GaussianBlur"); shadowBlurTarg = new
RenderTarget2D(GraphicsDevice, shadowMapSize, shadowMapSize,
false, SurfaceFormat.Color, DepthFormat.Depth24);
Từ đó thủ tụclàm mờ:
void blurShadow(RenderTarget2D to, RenderTarget2D from, int dir)
{
// Set the target render target graphicsDevice.SetRenderTarget(to);
graphicsDevice.Clear(Color.Black);
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.Opaque);
// Start the Gaussian blur effect
shadowBlurEffect.CurrentTechnique.Passes[dir].Apply();
// Draw the contents of the source render target so they can
// be blurred by the gaussian blur pixel shader spriteBatch.Draw(from,
Vector2.Zero, Color.White); spriteBatch.End();
// Clean up after the sprite batch graphicsDevice.BlendState =
BlendState.Opaque; graphicsDevice.DepthStencilState =
DepthStencilState.Default;
// Remove the render target graphicsDevice.SetRenderTarget(null); }
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
50
Việc điều chỉnh cuối cùng đối với lớp Prelightingrenderer, ta cần đảm
bảo làm mờ được hàm Draw(). Trước hết copy từ ảnh nền đến ảnh bóng mờ
theo chiều ngang sau đó theo chiều dọc:
public void Draw()
{
drawDepthNormalMap();
drawLightMap();
if (DoShadowMapping)
{
drawShadowDepthMap();
blurShadow(shadowBlurTarg, shadowDepthTarg, 0);
blurShadow(shadowDepthTarg, shadowBlurTarg, 1);
}
prepareMainPass(); }
2.5. Một số thuật toán chiếu sáng toàn cục
Như đã đề cập chiếu sáng toàn cục là chiếu sáng mà tại mỗi điểm giá trị
cường độ sáng được tính dựa trên sự ảnh hưởng tổng hợp của các nguồn sáng
trực tiếp và các nguồn sáng gián tiếp (ánh sáng phản xạ lại từ các điểm, đối
tượng xung điểm điểm đang xét). Với hướng tiếp cận này độ phức tạp tính
toán của các thuật toán thường là rất lớn do đó khó có khả năng ứng dụng trực
tiếp vào công đoạn kết xuất ảnh cho các ứng dụng trưng bày ảo. Tuy nhiên
chúng ta có thể sử dụng chúng để tính trước các bản đồ sáng. Các bản đồ sáng
thu được bằng các thuật toán này, sau đó có thể ứng dụng trực tiếp vào trong
quá trình tạo hình ảnh môi trường theo thời gian thực mà không phải tiến
hành chiếu sáng lại. Việc ứng dụng bản đồ chiếu sáng trong trưng bày ảo một
mặt làm tăng tốc độ kết xuất hình ảnh không gian trưng bày một mặt khác
chất lượng chiếu sáng cũng được cải thiện có được điều này là vì các tính toán
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
51
chiếu sáng phức tạp đã được thực hiện trước ở bước tính bản đồ chiếu sáng.
Ngoài ra bản đồ chiếu sáng có thể làm công cụ để đo lường cường độ sáng
của không gian tại mọi điểm qua đó có thể đánh giá được hiệu quả của chiếu
sáng toàn cục. Các kỹ thuật tạo hình dựa trên chiếu sáng toàn cục đã và đang
được sử dụng phổ biến hiện nay có thể kêt đến như kỹ thuật Ray tracing,
Radiosity, Photomapping v.v..
Ray tracing:
Ray tracing là một kỹ thuật tạo hình ảnh trong đồ họa 3D được đưa ra
khá sớm bởi tác giả Appel A[4] vào năm 1968 cho đến ngày này đã có nhiều
nghiên cứu nhằm cải tiến tốc độ cũng như chất lượng của của kỹ thuật này tuy
nhiên tư tưởng cốt lõi của kỹ thuật là hầu như không thay đổi.
Hình 2.16: Minh họa quá trình sinh và dò tia của ray tracing
Ý tưởng cơ bản của kỹ thuật này dựa trên việc dò tia ánh sáng đến được
với các điểm trên màn chiếu. Nó thực hiện thông qua các bước cơ bản như
sau: Từ điểm quan sát và mặt phẳng quan sát ta xây dựng một tập hợp các tia
xuất phát từ điểm quan sát đi qua mỗi điểm trên mặt phẳng quan sát. Với mỗi
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
52
tia sinh được ta thực hiện quá trình dò tia bằng cách tìm điểm trên đa giác
thuộc một đối tượng bất kỳ gần nhất trong không gian thế giới va chạm với tia
cần dò, khi tìm thấy một điểm và chạm với tia cần dò tại điểm va chạm đó ta
tiến hành việc tính toán ánh sáng tại điểm va chạm. Việc tính toán ánh sáng
tại điểm va chạm được thực hiện bằng cách xây dựng các tia với điểm gốc là
điểm va chạm và điểm ngọn là các điểm trên các nguồn sáng trong không gian
nếu trên đường đi của các tia này không va chạm với bất kỳ điểm đối tượng
nào khác trong không gian thì tiến hành tính toán ánh sáng cho điểm gốc theo
các hiệu ứng đã được trình bày trong phần 3.1. Nếu dừng ở đây thì thuật toán
này sẽ được gọi là thuật toán Ray casting là một thuật toán chiếu sáng cục bộ.
Giá trị chiếu sáng tại điểm đầu tiên này là giá trị chiếu sáng trực tiếp. Tiếp tục
trên điểm va chạm chúng ta tiến hành xây dựng các tia phản xạ và khúc xạ và
sau thực hiện đệ quy quá trình dò ánh sáng cho các tia phản xạ, khúc xạ thụ
được, giá trị chiếu sáng thu được trên các tia phản xạ và khúc xạ là giá trị
chiếu sáng gián tiếp. Việc thực hiện đệ quy được dừng lại khi số bước lặp đệ
quy vượt quá một ngưỡng hoặc hệ số ảnh hưởng của các giá trị sáng gián tiếp
lên giá trị sáng trực tiếp ban đầu nhỏ hơn một ngưỡng cho trước. Giá trị ánh
sáng tại một điểm sẽ được thông qua sự tổng hợp giá trị sáng trực tiếp và các
giá trị sáng gián tiếp.
Ngày nay thuật toán này đã được các hãng sản xuất phần cứng xây
dựng và tích hợp trong các thiết bị tăng tốc đồ họa của họ. Hình dưới đây là
sơ đồ hoạt động của thuật toán Ray tracing được tích hợp trong một số thiết bị
tăng tốc đồ họa của hãng Nvidia
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
53
Hình 2.17. Các bước xử lý trong giải thuật Ray tracing
Bằng việc cứng hóa các bước thực hiện của kỹ thuật ray tracing trong
các thiết bị tăng tốc đồ họa có sức mạnh tính toán hàng Gfs việc render thời
gian thực bằng ray tracing đang dần khả thi hơn. Hình dưới đây là so sánh kết
quả của cùng một cảnh với hai kỹ thuật chiếu sáng dựa trên scan line và chiếu
sáng bằng ray tracing
Scan line Ray tracing
Hình 2.18: So sanh giữa Scan line và ray tracing
Photomapping
Photon mapping là một thuật toán chiếu sáng toàn cục với các tiếp cận
dựa trên việc mô phỏng lại đặc tính hạt của ánh sáng. Trái ngược với kỹ thuật
ray tracing photon mapping sinh ra các tia đặc trưng cho các photon ánh sáng
xuất phát từ nguồn sáng, các photon này chuyển động trong không không gian
theo đường thẳng, khi gặp bề mặt đối tượng nó sẽ tương tác với bề mặt đối
tượng, phản xạ, kết hợp, khúc xạ hấp thụ v.v.. sau đó bức xạ ngược lại môi
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
54
trường một tập các tia mới mang đặc tính của tia ban đầu kết hợp với các đặc
tính của bề mặt. Ảnh cần dựng trong trường hợp này sẽ là một màn chắn ảo
trong không gian sử dụng để đón nhưng tia tới được bề mặt của ảnh. Khi đó
giá trị màu sắc của từng điểm trên màn chiếu là tổng hợp các giá trị của các
tia đến được màn chiếu sau một khoảng thời gian nhất định. Dưới đây là một
hình ảnh thử nghiệm của kỹ thuật photon mapping
Hình 2.19: Chiếu sáng bằng photon mapping
Do cách tiếp cận của photon mapping là dựa trên mô phỏng là photon
của ánh sáng nên nó có khả năng thể hiện được hầu hết các hiệu ứng của ánh
sáng như phản xạ, khúc xạ thậm chí cả hiệu ứng thấu kính, lăng kính photon
maping cũng có khả năng thể hiện được (đây là hai hiệu ứng mà ray tracing
không có khả năng thể hiện được một cách trực tiếp). Tuy nhiên do xuất phát
từ nguồn sáng có rất nhiều tia sáng không liên quan đến ảnh quan sát cũng
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
55
được tính toán vì vầy tốc độ thực hiện của thuật toán này là phức tạp hơn
nhiều so với ray tracing.
Các kỹ raytracing và photon mapping là các kỹ thuật chiếu sáng toàn
cục được ứng dụng phổ biến ngoài ra chúng còn nhiều kỹ thuật chiếu sáng
toàn cục khác cũng được ứng dụng trong đồ họa 3D ví dụ như radiocity[9],
hoặc các kỹ thuật dựa trên phương pháp tính toán Monte Carlo…
2.6. Kỹ thuật chiếu sáng cục bộ
Kỹ thuật chiếu sáng cục bộ là kỹ thuật chiếu sáng mà giá trị ánh sáng
tại mỗi điểm chỉ ảnh hưởng trực tiếp bởi các nguồn sáng trực tiếp mà không
chịu ảnh hưởng bởi các nguồn sáng gián tiếp. Các kỹ thuật chiếu sáng cục bộ
có thể kể đến là ray casting và scan line. Trong đó kỹ thuật scan line là kỹ
thuật được đưa ra và ứng dụng khá sớm, hiện nay đây là giải thuật được cứng
hóa trong hầu hết các thiết bị tăng tốc đồ họa ngày nay.
Trong thực tế người ta hay sử dụng khái niệm Graphics pipeline khi đề
cập đến trình thực hiện của kỹ thuật này. Các bước chính trong kỹ thuật được
thể hiện thông qua hình 10 dưới đây. Trong đó quá trình Vertex processing là
quá trình xử lý tại mỗi đỉnh trên từng đa giác đầu vào thông thường tại đây
các điểm sẽ được chuyển đổi từ không gian địa phương của đối tượng về
không gian địa phương của camera, cùng với đó các giá trị cường độ sáng,
pháp tuyến trên từng điểm cũng được ước lượng cách tính giá trị cường độ
sáng tại từng điểm cụ được thực hiện thông qua các mô hình chiếu sáng đã
được đề cập trong phần 3.1. Bước thứ hai của giải thuật này chính là
Rasterization tại bước này đầu vào là các điểm đã được chuyển đổi từ không
gian địa phương của camera xang không gian quan sát thông qua một phép
chiếu 3D v.v.. Tại đây các điểm trong đa giác sẽ được ánh xạ xang không gian
ảnh sau đó thuật toán scand line được sử dụng để xử lý từng điểm trên ảnh
dựa vào các tham số của từng đỉnh và vị trí tương đối của điểm đang xét so
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
56
với các đỉnhcủa đa giác đầu vào. Bước cuối cùng của quá trình này là kết hợp
giá trị màu sắc của điểm đang xét với giá trị cũ để tạo ra giá trị màu sắc cuối
cùng.
Hình 2.20 Các bước xử lý trong giải thuật Scan line.
Các mô hình thiết bị tăng tốc đồ họa hiện nay đều cho phép người lập
trình thay lập trình từng bước trong một luồng xử lý cho trước. Do đó người
tac có thể tùy biến các thành phần để tạo ra các hiệu đồ họa ứng mong muốn.
Các ngôn ngữ lập trình cho các thiết bị này có thể kể đến như GLSL, CL, hay
HLSL v.v..
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
57
CHƯƠNG III
CHƯƠNG TRÌNH THỰC NGHIỆM
3.1 Công cụ Unity engine
Hình 3.1 logo của Unity engine
- Nhà phát triển: Unity Technologies
- Được viết bởi ngôn ngữ: C++, C#
- Website: www.Unity3d.com
Unity là một công cụ thiết kế Game dành cho PC, Mac và nhiều hệ máy
di động khác. Unity được sự hỗ trợ của Just-In-Time Complilation (JIT), sử
dụng thư viện mã nguồn mở C++ mono. Bằng việc sử dụng JIT, những
Engine như Unity có thể tận dụng lợi thế của tốc độ biên dịchra Mono trước
khi nó được thực thi. Ngoài thư viện Mono, Unity cũng tận dụng chức năng
của những thư viện phần mềm khác vào chức năng của nó, như Engine mô
phỏng vật lý PhysicX của Nvidi, Open GL và DirectX cho kết quả xuất hình
ảnh 3D, Open AL cho âm thanh. Tất cả các thư viện này được xây dựng thành
những tính năng tự động hoặc công cụ trực quan vào Unity.
Unity có cộng đồng người dùng rất lớn luôn chia sẻ những Plugins,
công cụ của họ dưới hình thức gói phần mềm bổ sung. Có thể sản xuất các trò
chơi theo tiêu chuẩn chuyên nghiệp, xuất bản 3D cho cả Mac và PC cũng như
sở hữu riêng một Web Player của riêng mình, Unity là một trong những Game
Engine có tốc độ phát triển nhanh nhất.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
58
Các đặcđiểm và đặctính của Unity
Rendering (kết xuất hình ảnh): Unity hỗ trợ đầy đủ khả năng kết xuất
hình ảnh (Redering) cùng nhiều hỗ trợ cho phép áp dụng các công nghệ phổ
biến trong lĩnh vực đồ họa 3D nhằm cải thiện chất lượng hình ảnh. Các phiên
bản gần đây nhất của Unity được xây dựng lại thuật toán nhằm cải thiện hiệu
suất kết xuất hình ảnh đồng thời tăng cường chất lượng hình ảnh sau khi kết
xuất. Một số hỗ trợ: - Unity cung cấp sẵn 100 Shaders với đầy đủ các loại phổ
biến nhất. - Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer. -
Hỗ trợ LOD.
Lighting (ánh sáng): Ánh sáng là một điều thiết yếu giúp môi trường trở
nên đẹp và thực tế hơn. Unity cũng cung cấp nhiều giải pháp đa dạng cho
phép chúng ta áp dụng ánh sáng một cách tốt nhất vào môi trường trong trò
chơi với nhiều loại nguồn sáng như ánh sáng có hướng (Directional Light),
ánh sáng điểm (Point Light), ... Một số công nghệ và kỹ thuật về ánh sáng
được Unity hỗ trợ: Lingtmapping, Realtime Shadows, hiệu ứng Sunshafts và
Lens Flares.
Terrains (địa hình): Terrains còn gọi chung là địa hình bao gồm phần
đất nền của môi trường. Unity cung cấp một công cụ hỗ trợ rất tốt khả năng
này với tên gọi là Terrains Tools cho phép chúng ta thiết kế với các công cụ
vẽ dưới dạng Brush có nhiều thông số tùy chỉnh để tạo hình và lát Texture cho
địa hình. Cùng với Terrain Tools là Tree Creator, một công cụ mạnh mẽ cho
phép chúng ta tạo ra cây cối với hình dạng, kích thước và kiểu cách đa dạng.
Substances (Texture thông minh): Substances là một dạng tùy biến
Textures nhằm làm đa dạng chúng trong nhiều điều kiện môi trường khác
nhau. Unity cung cấp khả năng này thông qua các API dựng sẵn trong thư
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
59
viện, hỗ trợ lập trình viên lập trình để tùy biến hình ảnh được kết xuất của
Texture.
Physics (vật lí): PhysX là một Engine mô phỏng và xử lí vật lý cực kỳ
mạnh mẽ được phát triển bởi nhà sản xuất card đồ họa hàng đầu thế giới
NVIDIA.Unity đã tích hợp Engine này vào để đảm nhận mọi vấn đề vật lý.
Một số vấn đề vật lý được hỗ trợ bởi Unity như: Soft Bodies, Rigitbodies,
Ragdolls, Joints, Cars, …
Pathfinding (tìm đường): Đây là một tính năng rất mới mẻ đến từ phiên
bản Unity 3.5.Với các phiên bản trước, để phát triển khả năng tìm đường cho
trí thông minh nhân tạo (AI), nhà phát triển phải hoàn toàn tự xây dựng cho
mình một hệ thống tìm đường riêng biệt.Tuy nhiên ở phiên bản 3.5, Unity hỗ
trợ cho chúng ta tính năng Pathfinding cho phép tạo ra khả năng tìm đường
cho AI nhờ vào khái niệm lưới định hướng (NavMesh).
Audio (âm thanh): Về âm thanh, Unity tích hợp FMOD – công cụ âm
thanh thuộc hàng mạnh nhất hiện nay. Qua đó Unity hỗ trợ chúng ta nhập và
sử dụng nhiều định dạng tập tin âm thanh khác nhau.
Programming (lập trình): Lập trình là một trong những yếu tố quan
trọng nhất trong phát triển Game.Lập trình cho phép nhà phát triển tạo nên
khả năng tương tác, trí thông minh và yếu tố Gameplay cho trò chơi. Unity
cho phép chúng ta lập trình bằng nhiều ngôn ngữ mạnh mẽ và phổ biến với
các lập trình viên như: C#, Java Scrip và Boo.
Networking: Cho phép chúng ta tạo ra các ứng dụng trực tuyến
(online) .Tính năng này sẽ hỗ trợ đầy đủ để chúng ta tạo nên các khía cạnh
phổ biến trong Game online như hệ thống điểm kinh nghiệm , chat và tương
tác thời gian thực, … Một số tính tăng cung cấp bởi Networking như: State
Synchronization, Realtime Networking, Remote Procedure Calls, Backend
Connectivity, Web Browser Integration, Web Connectivity.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
60
Các thành phần trong Unity
Assets Assets: Là những tài nguyên xây dựng nên một dự án Unity. Từ
những tập tin hình ảnh, mô hình 3D đến các tập tin âm thanh. Unity gọi các
tập tin mà chúng ta dùng để tạo nên trò chơi là tài sản (Assets). Điều này lí
giải tại sao tất cả các tập tin, thư mục của các dự án Unity đều được lưu trữ
trong một thư mục có tên là “Assets”.
Scenes: Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn)
bằng cách tạo nên nhiều Scenes cho trò chơi, chúng ta có thể phân phối thời
gian tải hoặc kiểm tra các phần khác nhau của trò chơi một cách riêng lẽ.
Game Object: Khi Assets được sử dụng trong Scene, chúng trở thành
Game Object – một thuật ngữ được sử dụng trong Unity (đặc biệt là trong
mảng lập trình).Tất cả các Game Object đều chứa ít nhất một thành phần là
Transform. Transform là thông tin về vị trí, góc xoay và tỉ lệ của đối tượng,
tất cả được mô tả bởi bộ 3 số X, Y, Z trong hệ trục tọa độ. Thành phần này có
thể được tùy biến lại trong quá trình lập trình nhằm thay đổi vị trí, góc quay
và tỉ lệ của đối tượng qua các đoạn mã. Từ các thành phần cơ bản này, chúng
ta sẽ tạo ra Game Object với các thành phần khác, bổ sung chức năng cần
thiết để xây dựng nên bất kỳ một thành phần nào trong kịch bản Game mà
chúng ta đã tưởng tượng.
Components: có nhiều hình thức khác nhau. Chúng có thể xác định
hành vi, cách xuất hiện,… hay ảnh hưởng đến các khía cạnh khác trong chức
năng của Game Object trong trò chơi. Bằng cách “gắn” chúng vào trong
Game Object, chúng ta ngay lập tức có thể áp dụng tác động của chúng lên
đối tượng.Những Components phổ biến trong quá trình phát triển trò chơi đều
được Unity hỗ trợ sẵn. Ví dụ như thành phần Rigidbody đã được đề cập hay
các yếu tố đơn giản khác như ánh sáng, Camera và nhiều thành phần khác. Để
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM
Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM

More Related Content

Similar to Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM

Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdfNghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdfMan_Ebook
 
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...Man_Ebook
 
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...Man_Ebook
 
Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...
Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...
Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...nguyenthanhhuy9c
 
Cá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdf
Cá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdfCá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdf
Cá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdfHanaTiti
 
LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...
LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...
LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...ssuserc1c2711
 
Phan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinPhan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinxxxabcyyy
 
2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tinTruong Tuyen
 
Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa
Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóaGiải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa
Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóasunflower_micro
 

Similar to Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM (20)

Kỹ thuật giấu tin dựa trên sự tương quan của miền không gian ảnh
Kỹ thuật giấu tin dựa trên sự tương quan của miền không gian ảnhKỹ thuật giấu tin dựa trên sự tương quan của miền không gian ảnh
Kỹ thuật giấu tin dựa trên sự tương quan của miền không gian ảnh
 
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdfNghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
 
Nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối t...
Nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối t...Nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối t...
Nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối t...
 
Đồ án Tìm hiểu về điện toán đám mây và triển khai dịch vụ trên điện toán đám ...
Đồ án Tìm hiểu về điện toán đám mây và triển khai dịch vụ trên điện toán đám ...Đồ án Tìm hiểu về điện toán đám mây và triển khai dịch vụ trên điện toán đám ...
Đồ án Tìm hiểu về điện toán đám mây và triển khai dịch vụ trên điện toán đám ...
 
Thiết Kế Bộ Điều Khiển Mờ Theo Đại Số Gia Tử Cho Robot 2 Bậc Tự Do.doc
Thiết Kế Bộ Điều Khiển Mờ Theo Đại Số Gia Tử Cho Robot 2 Bậc Tự Do.docThiết Kế Bộ Điều Khiển Mờ Theo Đại Số Gia Tử Cho Robot 2 Bậc Tự Do.doc
Thiết Kế Bộ Điều Khiển Mờ Theo Đại Số Gia Tử Cho Robot 2 Bậc Tự Do.doc
 
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
 
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
Ứng dụng xử lý ảnh nhằm phát hiện và ngăn chặn sự cố chất lượng trong công ng...
 
Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...
Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...
Đồ án tốt nghiệp Điện tử công nghiệp_ Phát triển hệ thống IoT cho nông nghiệp...
 
Nâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuật
Nâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuậtNâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuật
Nâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuật
 
Cá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdf
Cá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdfCá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdf
Cá nhân hóa ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng.pdf
 
Ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng, HAY
Ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng, HAYỨng dụng và dịch vụ di động hướng ngữ cảnh người dùng, HAY
Ứng dụng và dịch vụ di động hướng ngữ cảnh người dùng, HAY
 
Luận án: Nghiên cứu phát hiện mẫu chất liệu trong ảnh, HAY
Luận án: Nghiên cứu phát hiện mẫu chất liệu trong ảnh, HAYLuận án: Nghiên cứu phát hiện mẫu chất liệu trong ảnh, HAY
Luận án: Nghiên cứu phát hiện mẫu chất liệu trong ảnh, HAY
 
LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...
LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...
LUẬN VĂN THẠC SĨ: PHÂN LẬP VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA PROMOTER CHUYÊN BIỆT HẠT...
 
Đồ án tốt nghiệp khoa Điện – Điện Tử - Học Viện Công Nghệ Bưu Chính Viên Thôn...
Đồ án tốt nghiệp khoa Điện – Điện Tử - Học Viện Công Nghệ Bưu Chính Viên Thôn...Đồ án tốt nghiệp khoa Điện – Điện Tử - Học Viện Công Nghệ Bưu Chính Viên Thôn...
Đồ án tốt nghiệp khoa Điện – Điện Tử - Học Viện Công Nghệ Bưu Chính Viên Thôn...
 
Phan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinPhan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tin
 
2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin
 
Pttkhttt
PttkhtttPttkhttt
Pttkhttt
 
Luận văn: Quản lý ứng dụng công nghệ thông tin ở trường trung học phổ thông v...
Luận văn: Quản lý ứng dụng công nghệ thông tin ở trường trung học phổ thông v...Luận văn: Quản lý ứng dụng công nghệ thông tin ở trường trung học phổ thông v...
Luận văn: Quản lý ứng dụng công nghệ thông tin ở trường trung học phổ thông v...
 
Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa
Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóaGiải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa
Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa
 
Luận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAY
Luận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAYLuận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAY
Luận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAY
 

More from Viết Thuê Khóa Luận _ ZALO 0917.193.864 default

More from Viết Thuê Khóa Luận _ ZALO 0917.193.864 default (20)

Khóa luận ngành tài chính ngân hàng chính sách xã hội, HAY
Khóa luận ngành tài chính ngân hàng chính sách xã hội, HAYKhóa luận ngành tài chính ngân hàng chính sách xã hội, HAY
Khóa luận ngành tài chính ngân hàng chính sách xã hội, HAY
 
Bài mẫu báo cáo thực tập tại ngân hàng chính sách xã hội, HAY
Bài mẫu báo cáo thực tập tại ngân hàng chính sách xã hội, HAYBài mẫu báo cáo thực tập tại ngân hàng chính sách xã hội, HAY
Bài mẫu báo cáo thực tập tại ngân hàng chính sách xã hội, HAY
 
Bài mẫu báo cáo tại ngân hàng đầu tư và phát triển BIDV
Bài mẫu báo cáo tại ngân hàng đầu tư và phát triển BIDVBài mẫu báo cáo tại ngân hàng đầu tư và phát triển BIDV
Bài mẫu báo cáo tại ngân hàng đầu tư và phát triển BIDV
 
Báo cáo Thực trạng hoạt động cho vay cá nhân Tại Vietcombank, HAY
Báo cáo Thực trạng hoạt động cho vay cá nhân Tại Vietcombank, HAYBáo cáo Thực trạng hoạt động cho vay cá nhân Tại Vietcombank, HAY
Báo cáo Thực trạng hoạt động cho vay cá nhân Tại Vietcombank, HAY
 
Khóa luận tại ngân hàng Ngoại thương Việt Nam, HAY
Khóa luận tại ngân hàng Ngoại thương Việt Nam, HAYKhóa luận tại ngân hàng Ngoại thương Việt Nam, HAY
Khóa luận tại ngân hàng Ngoại thương Việt Nam, HAY
 
Bài mẫu tiểu luận về An ninh mạng, HAY
Bài mẫu tiểu luận về An ninh mạng, HAYBài mẫu tiểu luận về An ninh mạng, HAY
Bài mẫu tiểu luận về An ninh mạng, HAY
 
Bài mẫu Tiểu luận về an toàn giao thông đường bộ, HAY
Bài mẫu Tiểu luận về an toàn giao thông đường bộ, HAYBài mẫu Tiểu luận về an toàn giao thông đường bộ, HAY
Bài mẫu Tiểu luận về an toàn giao thông đường bộ, HAY
 
Tiểu luận Chiến lược cạnh tranh của công ty Amazon, HAY
Tiểu luận Chiến lược cạnh tranh của công ty Amazon, HAYTiểu luận Chiến lược cạnh tranh của công ty Amazon, HAY
Tiểu luận Chiến lược cạnh tranh của công ty Amazon, HAY
 
Bài mẫu tiểu luận môn về Apple, HAY
Bài mẫu tiểu luận môn về Apple, HAYBài mẫu tiểu luận môn về Apple, HAY
Bài mẫu tiểu luận môn về Apple, HAY
 
Bài mẫu Tiểu luận về FPT, HAY
Bài mẫu Tiểu luận về FPT, HAYBài mẫu Tiểu luận về FPT, HAY
Bài mẫu Tiểu luận về FPT, HAY
 
Bài mẫu Tiểu luận về chính quyền địa phương, HAY
Bài mẫu Tiểu luận về chính quyền địa phương, HAYBài mẫu Tiểu luận về chính quyền địa phương, HAY
Bài mẫu Tiểu luận về chính quyền địa phương, HAY
 
Bài mẫu tiểu luận về công ty Vissan, HAY
Bài mẫu tiểu luận về công ty Vissan, HAYBài mẫu tiểu luận về công ty Vissan, HAY
Bài mẫu tiểu luận về công ty Vissan, HAY
 
Tiểu luận Chiến lược marketing của kinh đô, HAY
Tiểu luận Chiến lược marketing của kinh đô, HAYTiểu luận Chiến lược marketing của kinh đô, HAY
Tiểu luận Chiến lược marketing của kinh đô, HAY
 
Bài mẫu Tiểu luận về cà phê Trung Nguyên, HAY
Bài mẫu Tiểu luận về cà phê Trung Nguyên, HAYBài mẫu Tiểu luận về cà phê Trung Nguyên, HAY
Bài mẫu Tiểu luận về cà phê Trung Nguyên, HAY
 
Bài mẫu tiểu luận về bình đẳng giới, 9 ĐIỂM
Bài mẫu tiểu luận về bình đẳng giới, 9 ĐIỂMBài mẫu tiểu luận về bình đẳng giới, 9 ĐIỂM
Bài mẫu tiểu luận về bình đẳng giới, 9 ĐIỂM
 
Bài mẫu tiểu luận về bánh ngọt, HAY
Bài mẫu tiểu luận về bánh ngọt, HAYBài mẫu tiểu luận về bánh ngọt, HAY
Bài mẫu tiểu luận về bánh ngọt, HAY
 
Bài mẫu tiểu luận về báo in, HAY
Bài mẫu tiểu luận về báo in, HAYBài mẫu tiểu luận về báo in, HAY
Bài mẫu tiểu luận về báo in, HAY
 
Bài mẫu Tiểu luận bảo vệ môi trường, HAY
Bài mẫu Tiểu luận bảo vệ môi trường, HAYBài mẫu Tiểu luận bảo vệ môi trường, HAY
Bài mẫu Tiểu luận bảo vệ môi trường, HAY
 
Tiểu luận thực trạng bạo lực gia đình Việt Nam hiện nay
Tiểu luận thực trạng bạo lực gia đình Việt Nam hiện nayTiểu luận thực trạng bạo lực gia đình Việt Nam hiện nay
Tiểu luận thực trạng bạo lực gia đình Việt Nam hiện nay
 
Tiểu luận Nguyên lý marketing với đề tài về BITIS, HAY
Tiểu luận Nguyên lý marketing với đề tài về BITIS, HAYTiểu luận Nguyên lý marketing với đề tài về BITIS, HAY
Tiểu luận Nguyên lý marketing với đề tài về BITIS, HAY
 

Recently uploaded

Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 

Recently uploaded (19)

Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 

Luận văn: Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng, 9 ĐIỂM

  • 1. 1 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔ HÀ THỊ CHUYÊN MÔ PHỎNG SỰ TẠO BÓNG CỦA VẬT THỂ TỪ MỘT NGUỒN SÁNG TRONG THỰC TẠI ẢO TẢI MIỄN PHÍ KẾT BẠN ZALO:0917 193 864 DỊCH VỤ VIẾT LUẬN VĂN CHẤT LƯỢNG WEBSITE: LUANVANTRUST.COM ZALO/TELEGRAM: 0917 193 864 MAIL: BAOCAOTHUCTAPNET@GMAIL.COM Ngành: Khoa học máy tính Mã số:8 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
  • 2. 2 MỤC LỤC LỜI CẢM ƠN ............................................................................................................. 6 CHƯƠNG I TỔNG QUAN VỀ THỰC TẠI ẢO ........................................................ 8 1.1. Tổng quan về thực tại ảo ................................................................................... 8 1.1.1. Thực tại ảo là gì? ........................................................................................ 8 1.1.2 Ứng dụng của thực tại ảo ........................................................................... 11 1.1.3. Lịch sử phát triển của Thực tại ảo ............................................................ 16 1.2. Môi trường và ngôn ngữ lập trình cho đồ họa 3D ........................................... 18 1.2.1. Mô phỏng không gian 3D ......................................................................... 18 1.2.2. Mô hình hóa mô hình 3D .......................................................................... 19 1.2.3 . Bài toán mô phỏng thực tại ảo ................................................................. 24 1.3 Thế giới 3D ....................................................................................................... 25 1.4. Kết luận ........................................................................................................... 27 CHƯƠNG II CÁC KỸ THUẬT XÁC ĐỊNH VÀ BIỂU DIỄN BÓNG ................... 29 2.1 Ánh sáng ....................................................................................................... 29 2.2. Kỹ thuật hiển thị mô hình Occlusion culling............................................... 37 2.3. Kỹ thuật hiển thị mô hình Bump Mapping .................................................. 40 2.4. Kỹ thuật biểu diễn bóng đổ ......................................................................... 44 2.5. Một số thuật toán chiếu sáng toàn cục ............................................................... 50 CHƯƠNG III CHƯƠNG TRÌNH THỰC NGHIỆM ............................................... 57 3.1 Công cụ Unity engine ......................................................................................... 57 3.2. Yêu cầu thực nghiệm, ứng dụng...................................................................... 67 3.2.1. Yêu cầu với thực nghiệm ......................................................................... 68 3.2.2. Kiểm tra các mô hình đầu vào.................................................................. 68 3.3. Các chức năng của chương trình thực nghiệm ................................................ 71 KẾT LUẬN ............................................................................................................... 74 TÀI LIỆU THAM KHẢO ......................................................................................... 75
  • 3. 3 DANH MỤC HÌNH ẢNH Hình 1.1 Thực tế ảo (VR) ............................................................................................ 8 Hình 1.2 Các thành phần của hệ thống VR ................................................................. 9 Hình 1.3 Hệ thống Distracted Driving Simulator ..................................................... 12 Hình 1.4: Hệ thống du lịch ảo mẫu 1 ........................................................................ 13 Hình 1.5: Mô hình 3D trong thiết kế nội thất ........................................................... 14 Hình 1.6: Mô hình VR mô phỏng cơ thể người ......................................................... 15 Hình 1.7: Ứng dụng VR của Panasonic Eco Solutions ............................................ 16 Hình 1.8: Thiết bị mô phỏng SENSORAMA ............................................................. 17 Hình 1.9 Jaron Lanier người đưa ra thuật ngữ VR .................................................. 18 Hình 1.10: World space và Local space. .................................................................. 26 Hình 2.1 Bước sóng sánh sáng (nm) ........................................................................ 30 Hình 2.2 Chiếu sáng chính diện (Front lighting) ...................................................... 31 Hình 2.3 Nguồn sáng bên (Side Lighting) ................................................................. 32 Hình 2.4Nguồn sáng phía sau (Back lighting) .......................................................... 33 Hình 2.5 Chiếu sáng từ phía trên (Top Lighting) ..................................................... 34 Hình 2.6 Chiếu sáng từ phía dưới (Below Lighting) ................................................ 35 Hình 2.7: Bóng cung cấp thông tin về vị trí tương đối của vật thể. .......................... 36 Hình 2.8: Bóng cung cấp thông tin về dạng hình học của mặt tiếp nhận. ............... 36 Hình 2.9 Đánh dấu đối tượng. .................................................................................. 38 Hình 2.10 Thẻ Object trong công cụ Occlusion ........................................................ 39 Hình 2.11Thẻ Bake trong công cụ Occlusion ........................................................... 39 Hình 2.12 Thẻ Visualization trong công cụ Occlusion ............................................. 39 Hình 2.13 Vùng và các ô áp dụng Occlsion Culling. ................................................ 40 Hình 2.14 Tạo normal map từ hight map .................................................................. 42 Hình 2.15 Bóng đổ mờ .............................................................................................. 47 Hình 2.16: Minh họa quá trình sinh và dò tia của ray tracing ................................. 51 Hình 2.17. Các bước xử lý trong giải thuật Ray tracing .......................................... 53 Hình 2.18: So sanh giữa Scan line và ray tracing .................................................... 53 Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 4. 4 Hình 2.19: Chiếu sáng bằng photon mapping .......................................................... 54 Hình 2.20 Các bước xử lý trong giải thuật Scan line. .............................................. 56 Hình 3.1 logo của Unity engine ................................................................................ 57 Hình 3.2 Giao diện của Unity. .................................................................................. 62 Hình 3.3 Các nút chức năng cho cửa sổ Scene. ........................................................ 63 Hình 3.4 Cửa sổ Hierarchy. ...................................................................................... 64 Hình 3.5 Cửa sổ Inspector. ....................................................................................... 65 Hình 3.6 Cửa sổ Project. ........................................................................................... 66 Hình 3.7 Trống “ Scồ sam phô ” ngang ................................................................... 69 Hình 3.8 Trống “ Scồ sam phô ” dọc ....................................................................... 69 Hình 3.9 Đàn Cồng ................................................................................................... 70 Hình 3.10 Đàn Thuyền – “Rô niếc IK và Rô niếc Thung” ....................................... 70 Hình 3.11: Toàn cảnh không gian trưng bày ............................................................ 71 Hình 3.12 Hiển thị riêng 1 đối tượng. ...................................................................... 73 Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 5. 5 LỜI CAM ĐOAN Tên tôi là: Hà Thị Chuyên Sinh ngày: 27/08/1987 Học viên lớp cao học CHK16A - Trường Đại học Công nghệ Thông tin & Truyền thông - Đại học Thái Nguyên. Hiện đang công tác tại: Viễn thông Bắc Kạn Xin cam đoan: Đề tài “Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng trong thực tại ảo” do TS. Vũ Đức Thái hướng dẫn là công trình nghiên cứu của riêng tôi. Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng. Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội dung trong đề cương và yêu cầu của thầy giáo hướng dẫn. Nếu sai tôi hoàn toàn chịu trách nhiệm trước hội đồng khoa học và trước pháp luật. TháiNguyên, ngày10 tháng 05 năm 2019 Tác giả luận văn Hà Thị Chuyên Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 6. 6 LỜI CẢM ƠN Trong quá trình học tập và rèn luyện tại khoa Công nghệ thông tin - Đại học Thái Nguyên, đến nay em đã kết thúc khóa học 2 năm và hoàn thành luận văn tốt nghiệp. Để hoàn thành chương trình cao học và viết luận văn, em đã nhận được sự hướng dẫn, giúp đỡ góp ý nhiệt tình của quý thầy cô trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên. Để có được kết quả này em xin chân thành cảm ơn Ban chủ nhiệm khoa Công nghệ thông tin cùng các thầy, cô giáo đã giảng dạy, quan tâm và tạo điều kiện thuận lợi để chúng em học tập và rèn luyện trong suốt thời gian theo học tại trường. Em xin bày tỏ lòng biết ơn sâu sắc tới TS Vũ Đức Thái đã tận tình hướng dẫn và giúp đỡ em trong suốt quá trình làm luận văn. TháiNguyên, ngày10 tháng 05 năm 2019 Tác giả luận văn Hà Thị Chuyên Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 7. 7 ĐẶT VẤN ĐỀ Đồ họa máy tính là một lĩnh vực phát triển nhất trong tin học. Nó được áp dụng rộng rãi trong nhiều lĩnh vực khác trong thực tiễn. Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng, bóng xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần, bóng là một trong những yếu tố quan trọng nhất của tri giác con người về việc nhận biết các vật thể trong thế giới 3 chiều. Đề tài tập trung nghiên cứu các thuật toán, kỹ thuật thể hiện bóng của vật thể tạo ra bởi một nguồn sáng đảm bảo phản ánh đúng với thực tế. Phạm vi nghiên cứu tập trung vào vấn đề xác định và mô phỏng bóng của một vật thể được chiếu từ một nguồn sáng, và sự thay đổi của bóng khi thay dổi nguồn sáng. Mục tiêu nghiên cứu của đề tài là: Lựa chọn công cụ phù hợp nhất cho việc cài đặt, lựa chọn các vật thể và không gian thích hợp để phân tích các hình ảnh thực tiễn làm cơ sở đối chứng cho kết quả cài đặt, vận dụng thuật toán cài đặt chương trình mô phỏng thể hiện hiệu ứng tạo bóng của một số vật thể dưới tác động của một nguồn sáng, cuối cùng là đánh giá rút kinh nghiệm về thuật toán để có thể cải tiến việc mô phỏng tốt hơn. Tôi đã lựa chọn đề tài:" Mô phỏng sự tạo bóng của vậtthể từ một nguồn sáng trong thực tại ảo" để cài đặt mô phỏng cho một số hiện vật trong Nhà bảo tàng văn hóa các dân tộc Việt Nam tại thành phố Thái Nguyên. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 8. 8 CHƯƠNG I TỔNG QUAN VỀ THỰC TẠI ẢO 1.1. Tổng quan về thực tại ảo 1.1.1. Thực tại ảo là gì? Thực tế ảo hay còn gọi là thực tại ảo (tiếng Anh là virtual reality, viết tắt là VR) là một hệ thống mô phỏng trong đó đồ họa máy tính được sử dụng để tạo ra một thế giới "như thật". Hơn nữa, thế giới "nhân tạo" này không tĩnh tại, mà lại phản ứng, thay đổi theo ý muốn (tín hiệu vào) của người sử dụng (nhờ hành động, lời nói,..). Điều này xác định một đặc tính chính của VR, đó là tương tác thời gian thực (real-time interactivity). Hình 1.1 Thực tế ảo (VR) Thời gian thực ở đây có nghĩa là máy tính có khả năng nhận biết được tín hiệu vào của người sử dụng và thay đổi ngay lập tức thế giới ảo. Người sử dụng nhìn thấy sự vật thay đổi trên màn hình ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này. Trong thực tế, người dùng không những nhìn thấy đối tượng đồ họa 3D nổi, điều khiển (xoay, di chuyển,..) được đối tượng trên màn hình mà còn sờ Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 9. 9 và cảm thấy chúng như có thật. Ngoài khả năng nhìn (thị giác), nghe (thính giác), sờ (xúc giác), các nhà nghiên cứu cũng đã nghiên cứu để tạo các cảm giác khác như ngửi (khứu giác), nếm (vị giác).Tuy nhiên hiện nay trong VR các cảm giác này cũng ít được sử dụng đến. Các thành phần một hệ thống VR Một hệ thống VR tổng quát bao gồm 5 thành phần: phần mềm (SW), phần cứng (HW), mạng liên kết, người dùng và các ứng dụng. Trong đó 3 thành phần chính và quan trọng nhất là phần mềm (SW), phần cứng (HW) và các ứng dụng. Hình 1.2 Các thành phầncủa hệ thống VR Phần mềm Phần mềm luôn là linh hồn của VR cũng như đối với bất cứ một hệ thống máy tính hiện đại nào. Về mặt nguyên tắc có thể dùng bất cứ ngôn ngữ lập trình hay phần mềm đồ họa nào để mô hình hóa (modelling) và mô phỏng (simulation) các đối tượng của VR. Ví dụ như các ngôn ngữ (có thể tìm miễn phí) OpenGL, C++, Java3D, VRML, X3D,...hay các phần mềm thương mại như WorldToolKit, PeopleShop,... Phần mềm của bất kỳ VR nào cũng phải bảo đảm 2 công dụng chính: Tạo hình vào Mô phỏng. Các đối tượng của VR Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 10. 10 được mô hình hóa nhờ chính phần mềm này hay chuyển sang từ các mô hình 3D (thiết kế nhờ các phần mềm CAD khác như AutoCAD, 3D Studio,..). Sau đó phần mềm VR phải có khả năng mô phỏng động học, động lực học, và mô phỏng ứng xử của đối tượng. Phần cứng Phần cứng của một hệ thống bao gồm: Máy tính (PC hay Workstation với cấu hình đồ họa mạnh), các thiết bị đầu vào (Input devices) và các thiết bị đầu ra (Output devices). - Các thiết bị đầu vào (Input devices): Chúng bao gồm những thiết bị đầu ra có khả năng kích thích các giác quan để tạo nên cảm giác về sự hiện hữu trong thế giới ảo. Chẳng hạn như màn hình đội đầu HMD, chuột, các tai nghe âm thanh nổi - và những thiết bị đầu vào có khả năng ghi nhận nơi người sử dụng đang nhìn vào hoặc hướng đang chỉ tới, như thiết bị theo dõi gắn trên đầu (head-trackers), găng tay hữu tuyến (wire-gloves). - Các thiết bị đầu ra (Output devices): gồm hiển thị đồ họa (như màn hình, HDM,..) để nhìn được đối tượng 3D. Thiết bị âm thanh (loa) để nghe được âm thanh vòm (như Hi-Fi, Surround,..). Bộ phản hồi cảm giác (Haptic feedback như găng tay,..) để tạo xúc giác khi sờ, nắm đối tượng. Bộ phản hồi xung lực (Force Feedback) để tạo lực tác động như khi đạp xe, đi đường xóc,... Đặc tính cơ bản của một hệ thống VR Một hệ thống thực tế ảo thì tính tương tác, các đồ họa ba chiều thời gian thực và cảm giác đắm chìm được xem là các đặc tính then chốt. Tương tác thời gian thực (real-time interactivity): có nghĩa là máy tính có khả năng nhận biết được tín hiệu vào của người sử dụng và thay đổi ngay lập tức thế giới ảo. Người sử dụng nhìn thấy sự vật thay đổi trên màn hình ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 11. 11 Cảm giác đắm chìm (immersion): là một hiệu ứng tạo khả năng tập trung sự chú ý cao nhất một cách có chọn lọc vào chính những thông tin từ người sử dụng hệ thống thực tế ảo. Người sử dụng cảm thấy mình là một phần của thế giới ảo, hòa lẫn vào thế giới đó.VR còn đẩy cảm giác này “thật” hơn nữa nhờ tác động lên các kênh cảm giác khác. Người dùng không những nhìn thấy đối tượng đồ họa 3D, điều khiển (xoay, di chuyển..) được đối tượng mà còn sờ và cảm thấy chúng như có thật. Các nhà nghiên cứu cũng đang tìm cách tạo những cảm giác khác như ngửi, nếm trong thế giới ảo. Tính tương tác: có hai khía cạnh của tính tương tác trong một thế giới ảo: sự du hành bên trong thế giới và động lực học của môi trường. Sự du hành là khả năng của người dùng để di chuyển khắp nơi một cách độc lập, cứ như là đang ở bên trong một môi trường thật. Nhà phát triển phần mềm có thể thiết lập những áp đặt đối với việc truy cập vào những khu vực ảo nhất định, cho phép có được nhiều mức độ tự do khác nhau (Người sử dụng có thể bay, xuyên tường, đi lại khắp nơi hoặc bơi lặn…). Một khía cạnh khác của sự du hành là sự định vị điểm nhìn của người dùng. Sự kiểm soát điểm nhìn là việc người sử dụng tự theo dõi chính họ từ một khoảng cách, việc quan sát cảnh tượng thông qua đôi mắt của một con người khác, hoặc di chuyển khắp trong thiết kế của một cao ốc mới như thể đang ngồi trong một chiếc ghế đẩy… Động lực học của môi trường là những quy tắc về cách thức mà người, vật và mọi thứ tương tác với nhau trong một trật tự để trao đổi năng lượng hoặc thông tin. 1.1.2 Ứng dụng của thực tại ảo Công nghệ thực tế ảo là xu hướng tất yếu của tương lai, giúp con người có cơ hội trải nghiệm những sự việc trong thế giới ảo sống động và chân thực như thế giới thực.Và đây là những ứng dụng phổ biến nhất của công nghệ thực tế ảo trong cuộc sống. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 12. 12 Tại các nước phát triển, chúng ta có thể nhận thấy VR được ứng dụng trong mọi lĩnh vực: Khoa học kỹ thuật, kiến trúc, quân sự, giải trí, du lịch, địa ốc... và đáp ứng mọi nhu cầu: Nghiên cứu- Giáo dục- Thương mại - dịch vụ. Y học, du lịch là lĩnh vực ứng dụng truyền thống của VR. Bên cạnh đó VR cũng được ứng dụng trong giáo dục, nghệ thuật, giải trí, du lịch ảo (Virtual Tour), bất động sản... Trong lĩnh vực quân sự, VR cũng được ứng dụng rất nhiều ở các nước phát triển. Công nghiệp ôtô VR được áp dụng trong giai đoạn thiết kế, thử nghiệm an toàn và bán hàng trong ngành công nghiệp ô tô. Công nghệ này sẽ mô phỏng thiết kế xe để các chuyên gia đựa vào đó đánh giá mà không cần phải sản xuất ra một mẫu thử nghiệm tốn kém. Vì đặc điểm hữu ích này mà công nghệ VR được các hãng ô tô lớn trên thế giới sử dụng. Hình 1.3 Hệ thống Distracted Driving SimulatorDu lịch Các ứng dụng VR trong du lịch giúp hướng dẫn viên có thêm kiến thức về những điểm đến trên toàn thế giới mà không cần tiền trạm.Đối với du khách, họ có thể chọn và trải nghiệm ảo các địa điểm du lịch trước khi quyết định mua tour.Thậm chí, một số nhà hàng, khách hàng còn dùng VR để giúp khách hàng hiểu rõ hơn về dịch vụ cung cấp. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 13. 13 Hình 1.4:Hệ thống du lịch ảo mẫu 1 Giải trí Ở lĩnh vực điện ảnh, giải trí, game nhờ sử dụng công nghệ VR nên đã có những bước tiến mạnh mẽ. Minh chứng cho thấy là người dùng có thể giải trí với hằng trăm đầu trò chơi thực tế ảo. Thậm chí, các đạo diễn lừng danh đang có kế hoạch triển khai các dự án phim VR khổng lồ. Phim ảnh và truyền hình: Trong nhiều thập kỷ qua, nhiều nhà sản xuất ngày càng mở rộng nội dung dựa trên công nghệ VR, tiêu biểu như hai bộ phim bom tấn The Matrix (Ma trận) và Inception (Sự khởi đầu). Công nghiệp âm nhạc: Âm thanh đa chiều và video 360 độ đang trở thành một định dạng được lựa chọn hàng đầu cho nền công nghiệp thu âm và mix nhạc của các nhà sản xuất. Game: Những trò chơi hành động phiêu lưu sẽ mở đường cho bạn đến với một thế giới mới hào hứng kỳ vĩ và khiến lượng adrenaline trong cơ thể bạn sôi trào đến độ không thể rời khỏi thế giới đó. Âm thanh 3D được xây dựng riêng cho mỗi vật thể khiến cảnh quan trong game biến hóa liên tục. Kiến trúc Khách hàng được mục sở thị không gian sống, nội thất, cảnh quan xung quanh qua hình ảnh 3D 360 độ để có thể đánh giá thực tế ngôi nhà. Sự phát triển nhanh chóng của công nghệ thực tế ảo (VR) cùng những trải Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 14. 14 nghiệm tích hợp đa dạng mà nó mang lại đã giúp các nhà marketing có thêm một kênh tiếp thị hình ảnh hiệu quả đến khách hàng. Hình 1.5:Mô hình 3D trong thiết kế nội thất Giáodục Sử dụng VR giúp việc dạy và học từ xa sẽ dễ dàng và hiệu quả hơn. Hiện nay, công nghệ VR được sử dụng nhiều nhất trong lĩnh vực này như: Google Expeditions là công cụ giảng dạy trong thực tế ảo cho phép bạn dẫn đầu hoặc tham gia các hành trình ảo lôi cuốn trên toàn thế giới, tiếp cận với những địa danh lịch sử, lặn sâu dưới nước cùng những chú cá mập, thậm chí dạo chơi ngoài không gian. Thực tế ứng dụng công nghệ VR trong đàotạo của ViệtNam Ở Việt Nam, công nghệ VR cũng đã bắt đầu được một số cơ sở đào tạo triển khai ứng dụng. Điển hình là Hệ thống mô phỏng huấn luyện bắn súng bộ binh (Trường bắn ảo) do Viện Công nghệ Mô phỏng - Học viện Kỹ thuật Quân sự nghiên cứu, thiết kế, chế tạo. Hệ thống được sử dụng để huấn luyện bắn và bắn kiểm tra súng bộ binh dựa trên công nghệ mô phỏng nhằm tăng cường kỹ năng ngắm bắn cho bộ đội trước khi thực hiện bắn đạn thật trên thao trường. Hệ thống mô phỏng các đối tượng mục tiêu, thực địa trong môi trường 3D, mô phỏng âm thanh, hình ảnh quá trình tương tác Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 15. 15 thực - ảo, mô phỏng hiện tượng giật của súng như khi bắn đạn thật.Bên cạnh việc tránh được những rủi ro, hệ thống này giúp giảm thời gian và chi phí huấn luyện trên vũ khí thật. Trong lĩnh vực y học, Khoa Y - Trường Đại học Duy Tân, Đà Nẵng đã áp dụng công nghệ VR để mô phỏng cơ thể ảo phục vụ công tác giảng dạy, học tập, nghiên cứu cho Bộ môn Giải phẫu. Mô hình mô phỏng các bộ phận chính của cơ thể con người như hệ xương, hệ cơ, hệ thần kinh, hệ tiêu hoá. Thông qua mô hình và hệ thống phần cứng điều khiển, tương tác, sinh viên làm quen với việc thực hành trên các thiết bị nội soi và thực hành giải phẫu thay vì học trực tiếp trên xác, tiêu bản hoặc tranh. Mô hình này đã được triển khai tuy sinh viên còn bỡ ngỡ vì đang quen với cách học truyền thống nhưng các em rất hứng thú với công nghệ mới này. Hình 1.6:Mô hình VR mô phỏng cơ thể người Ứng dụng VR của PESVN dựng lên một không gian ba chiều, trong không gian đó, tất cả những thiết bị điện của PESVN cũng được trang bị và thể hiện theo kích thước, hình dạng và màu sắc thực tế. Khách hàng có thể quan sát các thiết bị này ở mọi góc nhìn. Họ có thể sử dụng thử các loại công tắc, ổ cắm… có thể trực quan nhìn được ánh sáng, màu sắc của các loại đèn Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 16. 16 LED, đèn treo tường cũng như cảm nhận được hoạt động của các thiết bị phụ trợ như quạt điện, quạt hút, máy lọc không khí… Hình 1.7:Ứng dụng VR của PanasonicEco Solutions Công cụ thực tại ảo này sẽ giúp ích rất nhiều cho khách hàng trong việc suy tính và lựa chọn những sản phẩm cần thiết, phù hợp với sở thích và môi trường của họ trước khi ra quyết định mua.Điều này là một tiến bộ vượt trội mà trước đây chưa bao giờ có. 1.1.3. Lịch sử phát triển của Thực tại ảo Vào giữa những năm 50 Morton Helig đã phát minh ra thiết bị mô phỏng SENSORAMA. Đây là một thiết bị điều khiển gồm có: một màn hình thực thể kính, quạt,máy tạo mùi, loa âm thanh và một chiếc ghế di chuyển được. Ông cũng phát minh ra màn hình truyền hình được gắn vào thiết bị để xem phim 3D.Đây được xem là tiền đề cho sự phát triển của VR sau này. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 17. 17 Hình 1.8:Thiết bị mô phỏng SENSORAMA Năm 1961 những kĩ sư của công ty Philco đã phát triển một chiếc mũ đội hiển thị (Head mounted display – HMD). Nó bao gồm một màn ảnh và hệ thống theo dõi video đã được những kĩ sư liên kết tới một hệ thống camera. HMD được sử dụng trong những tình huống nguy hiểm của quân sự, hỗ trợ cho các phi công trong môi trường thiếu ánh sáng. Năm 1965, một nhà khoa học máy tính tên là Ivan Sutherland hình dung ra một điều mà ông gọi là "Ultimate Display". Khi sử dụng hiển thị này, một người có thể thấy một thế giới ảo hiện ra như thế giới vật lý thật.Điều này đã định hướng toàn bộ tầm nhìn về VR. Khái niệm của Suntherland bao gồm:  Một thế giới giới ảo mà ta có thể quan sát thông qua một HMD   Một máy tính để duy trì các mô hình trong thời gian thực Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 18. 18  Các khả năng cho người sử dụng để thao tác những đối tượng thực tế một cách trực quan nhất. Hình 1.9 Jaron Lanier ngườiđưa ra thuậtngữ VR 1.2. Môi trường và ngôn ngữ lập trình cho đồ họa 3D 1.2.1. Mô phỏng không gian 3D Với phát triển mạnh mẽ của công nghệ mô phỏng, người sử dụng hoàn toàn có thể xây dựng lại môi trường làm việc gần tương đương với thực tế để nhìn xem ứng xử của vật liệu hoặc sản phẩm mình thiết kế trong môi trường tính toán ảo trên máy tính. Nền tảng của công nghệ này là phương pháp phần tử hữu hạn và thể tích hữu hạn. Có 3 bước cơ bản để xây dựng tính toán mô phỏng: Tiền xử lý(Pre Pro cessing), Tính toán(Processing), xuấtkết quả (Post Processing) Tiền xử lý (Pre Processing): Nhập vào máy tính các thông số của bài toán: mô hình CAD 3D, vật liệu, môi trường vật lý, chia lưới.. Tính toán(Processing): Khi các thông số đầy đủ, các phần phềm CAD – CAE sẽ thực hiện các giải thuật để quy bài toán mô hình về hệ phương trình vi phân để giải và xuất kết quả. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 19. 19 Xuất kết quả(Post Processing): Các kết quả thường được lưu trên máy tính với các thông tin về: trường chuyển vị, trường ứng xuất, hình ảnh chuyển động của mô hình,.. 1.2.2. Mô hình hóa mô hình 3D Khi thiết kế một sản phẩm thao tác dựng mô hình 3D là bước đầu tiên và quan trọng nhất.Hiện nay có rất nhiều phần mềm thiết kế được sử dụng rộng rãi, mỗi phần mềm đều có những điểm hay và thú vị riêng. Nhìn chung lại hầu hết đều có chung một kỹ thuật vẽ khá giống nhau. Một vật thể bất kỳ được xây dựng dựa trên: điểm, đường thẳng, mặt phẳng và cuối cùng là dùng các phép dựng hình 3D để tạo nên vật thể. Sau khi có một mô hình 3D thì công việc tiếp theo là tinh chỉnh sao cho sản phẩm đạt yêu cầu nhất. Một vật thể 3D bất kỳ là sự tổ hợp của các phép dựng hình được xây dựng sẵn trong các chương trình vẽ 3D. Mặc dù với tên gọi mỗi chức năng ở mỗi phần mềm có thể khác nhau đôi chút nhưng đều có các chức năng cơ bản như sau:  Kỹ thuật dựng hình dựa trên hình phẳng cơ sở kết hợp với phép tịnh tiến theo đường thẳng( Extruded): với một hình phẳng 2D được vẽ bất kỳ sau khi tịnh tiến tạo một khối 3D. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 20. 20  Kỹ thuật tạo vật thể bằng cách quay mặt cơ sở theo một trục cố định (Revolved): tạo mặt cơ sở với biên khép kính bất kỳ, sau đó vẽ trục làm tâm quay để tạo vật thể  Kỹ thuật dựng hình dựa trên hình phẳng cơ sở kết hợp với phép tịnh tiến theo đường cong bất kỳ ( swept): với một hình phẳng 2D được vẽ bất kỳ sau khi tịnh tiến cong tạo một khối 3D. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 21. 21  Kỹ thuật dựng hình dựa trên nhiều mặt phẳng cơ sở (lofted): tạo 2 hay nhiều mặt phẳng song song trên mỗi mặt tạo biên kính riêng, tạo mặt phẳng xây dựng từ các mặt phẳng trên.  Nếu như các kỹ thuật Extruded/ Revolved/ Swept.. tạo thể tích cho vật thể thì các chức năng Extruded Cut / Revolved Cut / Swept Cut giúp chúng ta làm rỗng phần thể tích được thao tác:  Để tạo thẩm mỹ cho sản phẩm cũng như an toàn cho người dùng hầu hết vật thể đều được gọt nhẵn ở các cạnh biên, có hai phương pháp vát cạnh: vát theo góc nghiêng hoặc bo tròn. Tạo nhanh một vật thể bằng cách lấy đối xứng qua mặt phẳng (Mirror): Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 22. 22  Như vậy, một mô hình 3D được dựng lên một cách dễ dàng bằng các phép chiếu 3D. Do đó việc xây dựng các hình phẳng 2D chính là cơ sở cho các phép chiếu. Nói cách khác để xây dựng vật thể 3D chúng ta phải dựng những đường nét cơ bản từ 2D trước sau đó mới dựng mô hình 3D. Đường nét cơ bản trong vẽ 2D gồm các chức năng vẽ: điểm, đường thẳng, đường tròn, hình chữ nhật, đường cong (Spline), lục giác, …Ngoài ra còn có các hình dạng đặc biệt khác thường dùng trong thiết kế: dạng then, chuỗi ký tự…  Sau khi phát thảo đường nét chính của vật thể, chúng ta dùng các thước đo của phần mềm để tinh chỉnh chiều dài theo ý muốn.   Để việc thiết kế được nhanh hơn, người ta còn xây dựng các chức năng cắt tỉa đường nét 2D (TRIM), việc này được thực hiện một cách khá dễ dàng với ý tưởng như hình: Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 23. 23 Có ba cách phổ biến để thể hiện một mô hình:  Mô hình hóa đa giác - Các điểm trong không gian 3D, được gọi là các đỉnh, được kết nối bởi các đoạn đường để tạo thành một lưới đa giác. Phần lớn các mô hình 3D ngày nay được xây dựng dưới dạng mô hình đa giác có kết cấu, bởi vì chúng linh hoạt và vì máy tính có thể hiển thị chúng rất nhanh. Tuy nhiên, đa giác là mặt phẳng và chỉ có thể xấp xỉ các bề mặt cong bằng nhiều đa giác. Mô hình đường cong - Bề mặt được xác định bởi các đường cong, bị ảnh hưởng bởi các điểm kiểm soát có trọng số. Đường cong theo sau (nhưng không nhất thiết phải nội suy) các điểm. Tăng trọng lượng cho một điểm sẽ kéo đường cong lại gần điểm đó. Các loại đường cong bao gồm B-spline hợp lý không đồng nhất (NURBS), spline, miếng vá và nguyên thủy hình học  Điêu khắc kỹ thuật số - Vẫn là một phương pháp mô hình khá mới, điêu khắc 3D đã trở nên rất phổ biến trong vài năm qua. Hiện tại có ba loại điêu khắc kỹ thuật số: Dịch chuyển, được sử dụng rộng rãi nhất trong số các ứng dụng tại thời điểm này, sử dụng mô hình dày đặc (thường được tạo bởi các bề mặt phân chia của lưới điều khiển đa giác) và lưu trữ vị trí mới cho đỉnh vị trí thông qua việc sử dụng bản đồ hình ảnh lưu trữ các vị trí được điều chỉnh. Thể tích, dựa trên voxels lỏng lẻo, có khả năng tương tự như sự dịch chuyển nhưng không bị kéo dài đa giác khi không có đủ đa giác trong một vùng để đạt được biến dạng. Tính năng động tương tự như voxel nhưng phân chia bề mặt bằng cách sử dụng tam giác để duy trì bề mặt mịn và cho phép  Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 24. 24 các chi tiết mịn hơn. Các phương pháp này cho phép khám phá rất nghệ thuật vì mô hình sẽ có một cấu trúc liên kết mới được tạo ra trên nó một khi mô hình hình thành và có thể các chi tiết đã được điêu khắc. Lưới mới thường sẽ có thông tin lưới có độ phân giải cao ban đầu được truyền vào dữ liệu dịch chuyển hoặc dữ liệu bản đồ thông thường nếu dành cho công cụ trò chơi. 1.2.3 . Bài toán mô phỏng thực tại ảo Đồ họa máy tính là một lĩnh vực phát triển nhất trong tin học. Nó được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau như: điện ảnh, hoạt hình, kiến trúc và các ứng dụng xây dựng các mô hình thực tại ảo…Hiện nay đồ họa 3D đã được phát triển ứng dụng rộng rãi trong thực tiễn Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng, bóng xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần, bóng là một trong những yếu tố quan trọng nhất của tri giác con người về việc nhận biết các vật thể trong thế giới 3 chiều. Bóng giúp cho ta nhận biết được vị trí tương đối của vật đổ bóng (occlude) với mặt nhận bóng (receiver), nhận biết được kích thước và dạng hình học của cả vật đổ bóng và mặt nhận bóng. Bóng là một thuộc tính quan trọng của vật thể trong tự nhiên, nhất là khi tạo hình trong mô phỏng (video, phim hoạt hình…với các hình ảnh động), nếu mô phỏng không đúng sẽ gây hiệu ứng sai hoặc giả tạo đối với thực tiễn (độ dài bóng, hướng, sự di chuyển bóng của một vật di động). Nhận biết được sự quan trọng của bóng, với mục đích mô phỏng được sự ảnh hưởng của các nguồn sáng tạo ra bóng của đối tượng ba chiều trên cơ sở đó mô phỏng một số hiện vật một cách trung thực trưng bày trong không gian bảo tàng. Tôi đã lựa chọn đề tài:” Mô phỏng sự tạo bóng của vật thể từ MỘT nguồn sáng trong thực tại ảo”. Đề tài nghiên cứu các thuật toán để cài đặt mô phỏng cho một số hiện vật trong Nhà bảo tàng văn hóa các dân tộc Việt Nam tại thành phố Thái Nguyên. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 25. 25 Ứng dụng kết quả đã nghiên cứu vào xây dựng một phần mềm trưng bày ảo cho một số hiện vật tại Bảo tàng Văn hóa các dân tộc Việt Nam tại TP Thái Nguyên với các lý thuyết phân tích về tác động của môi trường lên hiện vật. 1.3 Thế giới 3D Hệ trục tọa độ (coordinates) Trong một ứng dụng 3D, chúng ta sẽ thấy thông tin của một đối tượng nằm trong định dạng X, Y, Z gọi là hệ trục Cartesian. Không gian cụcbộ và không gian toàn cục (Local Spacevà World Space) Trong mọi thế giới 3D đều có một điểm gốc, thường được gọi là Zero (không), vì nó được đại diện bởi vị trí (0, 0, 0).Tất cả các vị trí của đối tượng trong không gian 3D (toàn cục) đều có mối quan hệ với điểm gốc Zero. Tuy nhiên, để đơn giản hơn, chúng ta cũng sử dụng không gian cục bộ (Local Space – được biết như là không gian riêng của đối tượng) để xác định vị trí của đối tượng có liên hệ với một đối tượng khác. Không gian cục bộ giả định rằng mỗi đối tượng đều có điềm gốc Zero riêng biệt.Điểm này thường là điểm trung tâm của đối tượng, và bằng cách tạo ra mối quan hệ giữa các đối tượng, chúng ta có thể so sánh vị trí của chúng trong mối quan hệ với một đối tượng khác.Chúng ta có thể tính toán khoảng cách từ một đối tượng khác bằng cách sử dụng không gian cục bộ, với vị trí của đối tượng cha trở thành điểm gốc cho tất cả các đối tượng con. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 26. 26 Hình 1.10:World space và Local space. Vec-tơ (Vectors) Vector có thể di chuyển trong không gian 3D. Vector rất hữu ích trong Game Engine, vì chúng cho phép chúng ta tính toán khoảng cách, góc giữa các đối tượng và hướng của đối tượng. Camera (Cameras) Camera là một đối tượng rất cần thiết trong thế giới 3D, chức năng của chúng hoạt động như một khung nhìn cho màn hình. Có một tầm nhìn theo hình kim tự tháp, camera có thể được đặt ở bất kỳ điểm nào trong thế giới 3D, được diễn hoạt, hoặc gắn vào nhân vật hay các đối tượng như là một phần của kịch bản trò chơi. Với khả năng điều chỉnh tầm nhìn (Field fo Vision - FOV), 3D Camera là tầm nhìn của chúng ta trong không gian 3D. Unity cho phép có nhiều Camera trong một cảnh duy nhất, điều này có thể được viết mã điều khiển Camera tại bất kỳ điểm nào trong suốt thời gian chạy. Nhiều camera có thể được sử dụng trong trò chơi để điều khiển việc kết xuất những đơn vị hình ảnh 2D và 3D riêng biệt như là một phần của quá trình tối ưu. Ví dụ, đối tượng có thể được gom nhóm trong trong một lớp, và Camera được chỉ định để kết xuất hình ảnh của đối tượng trong một lớp riêng Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 27. 27 biệt.Việc này cho phép chúng ta kiểm soát nhiều hơn đối với từng cá nhân của một đốitượng nhất định. Đa giác (Polygon), cạnh (Edges), đỉnh (Vertices) và mắt lưới (Meshes) Trong dựng hình 3D, tất cả các đối tượng cuối cùng đều được nối với nhau bởi những hình ảnh 2D được biết với các tên “đa giác” (Polygons).Khi nhập mô hình (Model) từ những ứng dụng dựng hình (Modelling Application), Unity chuyển đổi tất cả các đa giác thành tam giác.Tam giác (còn được gọi là mặt) được tạo nên từ 3 cạnh kết nối với nhau.Vị trí mà các cạnh gặp nhau gọi là điểm hay đỉnh. Khi xác định được các vị trí này, Game Engine có thể thực hiện tính toán sự va chạm (Collisions), … Số lượng đa giác là tổng số lượng các đa giác tạo nên Model, càng nhiều đa giác thì càng có nhiều công việc mà máy tính phải làm để kế xuất hình ảnh của đối tượng lên màn hình. Vật liệu (Materials), kếtcấu (Textures) và đổ bóng (Shaders) Vật liệu là một khái niệm rất quen thuộc trong tất cả các ứng dụng 3D, chúng cung cấp phương tiện để thiết lập sự xuất hiện (Visual Appearence) của một mô hình 3D.Từ những màu sắc cơ bản đến các bề mặt phản chiếu hình ảnh, vật liệu xử lí tất cả mọi thứ. Vật liệu có thể là một màu sắc cơ bản hay bao gồm một hoặc nhiều hình ảnh được gọi là Textures (kết cấu). Shaders là những mã kịch bản phụ trách phong cách kết xuất hình ảnh. 1.4. Kết luận VR- Virtual Reality – Thực tại ảo (hay thực tế ảo): là một hệ thống giao diện cấp cao giữa người dùng và máy tính. Hệ thống này mô phỏng các sự vật hiện tượngtheo thời gian thực và tương tác với người sử dụng thông qua các kênh cảm giác như thị giác, thính giác, xúc giác, khứu giác và vị giác. Hay nói một cách khác là, người sử dụng có thể di chuyển, quan sát, tươngtác Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 28. 28 với một thế giới nhân tạo được xây dựng mô phỏng bằng máy tính như đối với thế giới thực. Người dùng có thể nhìn thấy các đối tượng đồ họa 3D nổi, điều khiển được các đối tượng trong thế giới nhân tạo đó và có thể sờ, nắm, cảm nhận các đối tượng đó giống như trong thế giới thực. Cùng với sự phát triển của khoa học công nghệ phục vụ cuộc sống, lĩnh vực thực tại ảo đã và đang phát triển phục vụ cho nhiều nhu cầu ứng dụng. Các video mô phỏng các hiện tượng tự nhiên như trong thế giới vĩ mô, vi mô (vũ trụ, tế bào, phân tử, nguyên tử….); các ứng dụng trong giải trí, bảo tồn, bảo tàng. Để rèn luyện kỹ năng xây dựng và giải quyết một vấn đề ứng dụng của thực tại ảo, chương 2 tiếp tục nghiên cứu các vấn đề lý thuyết và thuật toán cơ bản phục vụ cho xây dựng sản phẩm ứng dụng của luận văn Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 29. 29 CHƯƠNG II CÁC KỸ THUẬT XÁC ĐỊNH VÀ BIỂU DIỄN BÓNG 2.1 Ánh sáng 2.1.1 Khái niệm ánhsáng Ánh sáng một loại bức xạ, nó có thể được hiểu, giải thích theo hai tính chất vật lý, thứ nhất là tính chất sóng điện từ trường (quang học sóng), thứ hai là tính chất hạt (quang học hạt). Đi đôi với ánh sáng là bóng có ánh sáng thì mới có bóng, và bóng là sự thể hiện của ánh sáng. Ánh sáng truyền đi trong không gian khi đến một bề mặt nó tương tác với bề mặt, sự tương tác này được thể hiện thông qua hai hiệu ứng chính là “bóng bề mặt”, và “bóng đổ” có thể gọi chung chúng là bóng. Hiệu ứng “bóng bề mặt” xảy ra khi ánh sáng đến bề mặt, và phản xạ lại môi trường một lượng ánh sáng nhất định theo các hướng khác nhau, trong đó có một phần đến được mắt, tác động lên hệ thần kinh thị giác, vì vậy chúng ta quan sát được đối tượng. Theo định luật truyền thẳng ánh sáng khi đến một bề mặt không trong suốt thì bị cản lại, và không thể tiếp tục được truyền đi theo hướng đến, vì vậy mọi điểm phía sau sẽ không có sự chiếu sáng từ nguồn sáng hiện tượng như vậy được gọi là hiệu ứng “bóng đổ”. Trong quang học sóng, ánh sáng là một loại sóng điện từ trường do đó nó cũng tuân theo các định luật của sóng như định luật truyền thẳng, định luật phản xạ, khúc xạ, vvv. Trong trường hợp này năng lượng của ánh sáng được thể hiện hiện bằng các dao động điện từ trường. Hướng dao động điện trường và từ trường vuông góc với nhau tạo ra cách ánh sáng truyền đi trong không gian. Loại ánh sáng có thành phần sóng điện trường (từ trường) giao động trên một mặt phẳng cố định được gọi là ánh sáng “phân cực tuyến tính”, hoặc đơn giản là “phân cực”. Dựa vào đặc tính phân cực của ánh sáng khi đi qua một số loại vật liệu nhất định mà người ta đã xây dựng lên các hệ thống hiển Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 30. 30 thị hình ảnh 3D, ví dụ như hệ thống máy chiếu 3D, ti vi 3D, kính 3D vv...Sự xuất hiện của các thiết bị này là một trong những động lực quan trọng nhất tạo nên sự phát triển của lĩnh vực VR hiện nay. .Khả năng nhìn của con người với mỗi loại ánh sáng trong khoảng nhìn được là không giống nhau. Hình dưới là đồ thị thể hiện khả năng quan sát của con người với từng mức sóng cụ thể của ánh sáng. Hình 2.1 Bước sóng sánh sáng (nm) Khả năng quan sát của con người tương ứng với từng mức sóng Trong đồ họa 3D tính chất sóng - hạt của ánh sáng được trừu tượng hóa thông qua các quy luật, việc xây dựng các quy luật này phần lớn dựa vào các quy luật hình học, và các quy luật quang học. Các phần nội dung dưới đây sẽ trình bày một số quy luật quan trọng, nhưng trước tiên để hiểu được các quy luật này chúng ta hãy xem xét một số đơn vị sử dụng trong việc đo lường ánh sáng. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 31. 31 Hướng sáng Hướng đặt nguồn sáng tác động rất lớn đến cách cảm nhận của chúng ta về nó, cũng như cách mà các chi tiết xuất hiện trong khung cảnh. Việc chọn hướng nguồn sáng chính đến từ đâu là một trong những quyết định quan trọng nhất mà bạn cần làm , vì nó ảnh hưởng rất nhiều đến cách xuất hiện của khung cảnh, cũng như cảm xúc mà bức hình muốn thể hiện. Hình 2.2 Chiếu sáng chính diện (Front lighting) Nguồn sáng đặt ngay sau điểm nhìn của người xem, thường thấy trong chụp ảnh với đèn flash và không thực sự hấp dẫn nếu nguồn sáng quá mạnh– trừ một số trường hợp ngoại lệ, các nguồn sáng nhẹ đặt chính diện có thể cho ra các bức ảnh rất thu hút. Nguồn sáng chính diện không có nhiều tác dụng trong việc mô tả hình dáng hình học hay kết cấu của vật thể vì lúc này bóng đổ hầu như bị che khuất phía sau khung hình, kết quả là nó làm mọi thứ trông phẳng hơn. Tuy nhiên một nguồn sáng khuếch tán nhẹ đặt chính diện giúp tôn lên vẻ đẹp của chủ thể vì lý do – nó giúp che đi các nếp nhăn, khuyết điểm của chủ thể, vốn thường được dùng trong chụp ảnh chân dung hoặc chụp hình sản phẩm. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 32. 32 Hình 2.3 Nguồn sáng bên (Side Lighting) Nguồn sáng bên rất hữu dụng trong việc miêu tả hình dáng và kết cấu của chi tiết, đem đến cái nhìn chân thật hơn về chủ thể trong không gian ba chiều. Kết quả cho ra bóng đổ rõ nét và độ tương phản cao. Nguồn sáng bên có thể được dùng để tạo bóng đổ nổi bật lên các bề mặt như tường, sàn, tạo không gian cho bức hình. Việc sử dụng nguồn ánh sáng bên thường tạo độ thu hút và cho ra các hiệu ứng ấn tượng: đây là loại nguồn sáng có thể bắt gặp vào buổi sáng sớm hoặc chiều tối, cũng như khá thường thấy trong nhiếp ảnh và làm phim. Hạn chế của việc sử dụng nguồn sáng bên là một phần của bức hình có thể bị mất đi trong phần bóng đổ, và nó có khả năng bộc lộ các thiếu sót của chủ thể như nếp nhăn hoặc nhược điểm. Trong chụp ảnh chân dung, nguồn sáng bên thường được dùng chụp nam giới hơn là nữ giới vì bức hình sẽ trông khá thô ráp, đặc biệt là khi có bóng đổ sắc cạnh, kém mềm mại. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 33. 33 Hình 2.4Nguồn sáng phía sau (Backlighting) Người xem hướng mắt về phía đặt nguồn sáng, các chủ thể có phần cạnh bao bị khuất phía sau sẽ được thắp sáng và hiển thị dưới dạng bóng rọi hoặc làm mờ bằng một nguồn sáng phụ. Độ tương phản cao, tạo cảm giác rộng mở và kịch tính. Nếu nguồn sáng đặt xéo một góc nhỏ so với tia hướng nhìn, chủ thể sẽ xuất hiện một vành sáng do một hoặc một số góc cạnh của chủ thể đó tạo ra, nguồn sáng càng mạnh thì vành sáng này càng hiển thị rõ rệt. Các khung cảnh ngược sáng thường tạo ra nhiều bóng đổ phía trước chủ thể, trừ khi nguồn sáng phía sau rất nhẹ. Trong hầu hết các trường hợp, bức hình sẽ có màu tối chủ đạo, đi kèm với một vũng sáng nổi bật. Các vành sáng xuất hiện trong trường hợp này sẽ rất hữu ích trong việc làm nổi bật các đường nét của chủ thể. Một đặc điểm khác của loại nguồn sáng này là nó giúp biểu lộ các chi tiết có tính trong suốt, tính mờ đục, các kết cấu hoặc chi tiết trong vùng bóng rọi và vùng vành sáng. Loại nguồn sáng này cũng rất hữu ích trong việc tạo thêm điểm nhấn thu hút cho bức hình. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 34. 34 Nguồn sáng phía sau có thể biến các chi tiết tầm thường trở nên lôi cuốn và hấp dẫn Hình 2.5 Chiếu sáng từ phía trên (Top Lighting) Nguồn sáng từ trên (Top lighting) là một trường hợp ít gặp hơn, mặc dù nó vẫn khá phổ biến trong những ngày trời mây, ít nắng. Có thể quan sát hiện tượng này lúc trời nắng giữa trưa, trong các công trình nội thất, ánh đèn sân khấu…Với nguồn sáng nhẹ, đây là một cách khá hữu dụng trong việc miêu tả hình dáng chi tiết. Dưới nguồn sáng mạnh, nó lại đem đến cảm giác huyền ảo bằng cách tạo ra các bóng đổ kịch tính, che đi hầu hết hình dáng của chủ thể bên dưới: ví dụ như người đứng ngay dưới nguồn sáng mạnh sẽ có hốc mắt màu đen vì vùng mắt lúc này hoàn toàn nằm trong vùng bóng đổ và không có ánh sáng truyền tới. Theo tôi biết thì nguồn sáng từ trên hiếm khi được sử dụng, tuy nhiên không có nghĩa là không nên dùng loại nguồn sáng này. Với những ngày nhiều mây thì đây là dạng thiết lập nguồn sáng chân thật nhất, với cả bầu trời lúc này đóng vai trò như một nguồn sáng khuếch tán rộng lớn. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 35. 35 Hình 2.6 Chiếu sáng từ phía dưới (Below Lighting) Dạng nguồn sáng từ dưới thậm chí còn hiếm gặp hơn nhiều so với nguồn sáng từ trên. Trong thực tế, hiện tượng này có thể xảy ra khi một người cầm đèn hay ngọn đuốc, khi đó sẽ có ánh sáng phản chiếu từ bên dưới như từ mặt nước chẳng hạn. Lúc này cách xuất hiện của mọi vật trong khung cảnh sẽ rất khác biệt, và bị đảo ngược (tương tự như khi một người dùng đèn pin soi sáng khuôn mặt họ từ dưới lên vậy: bóng đổ sẽ xuất hiện lộn ngược lên trên). Và một lần nữa, sự hiếm gặp của loại nguồn sáng này có thể được sử dụng để cho ra các hiệu ứng vô cùng độc đáo và sáng tạo. Nó khiến chúng ta bất chợt nhận thấy các sự vật dường như có gì không đúng hay trái với thực tế, và đó chính là cách mà ta nên vận dụng yếu tố ánh sáng để truyền tải thông điệp hoặc cảm xúc đến người xem. 2.1.2. Tạobóng “Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng, xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần” Bóng là một trong những yếu tố quan trọng nhất của tri giác conngười về Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 36. 36 việc nhận biết các vật thể trong thế giới 3 chiều. Bóng giúp cho ta nhận biết được vị trí tương đối của vật đổ bóng (occluder) với mặt nhận bóng (receiver), nhận biết được kích thước và dạng hình học của cả vật đổ bóng và mặt nhận bóng. Hình 2.7:Bóng cung cấp thông tin về vị trí tương đối của vật thể. Với ảnh ở bên trái ta không thể biết được vị trí của conrối. Nhưng với ảnh bên phải ta thấy vị khoảng cách của chúng so với mặt đất xa dần. Hình 2.8:Bóng cung cấp thông tin về dạng hình họccủa mặt tiếp nhận. Hình bên trái ta không thể biết được dạng hình học của mặt tiếp nhận, còn mặt bên phải thì dễ dàng thấy được. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 37. 37 2.2. Kỹ thuật hiển thị mô hình Occlusionculling Sơ lược về kỹ thuật Occlusion Culling Unity cung cấp cho chúng ta một công cụ tối ưu rất hay sử dụng kỹ thuật tối ưu được sử dụng bởi rất nhiều trò chơ hiện nay đó là Occlusion Culling. Đây là kỹ thuật cho phép khả năng vô hiệu hóa kết xuất hình ảnh của các đối tượng khi chúng không được nhìn thấy bởi camera do bị che khuất bởi các đối tượng khác. Kỹ thuật này không tự động được thực hiện trong đồ họa 3D máy tính, mặc định những đối tượng ở xa camera hơn sẽ được vẽ ra trước và sau đó các đối tượng ở gần hơn sẽ được vẽ đè lên (được gọi bằng thuật ngữ “overdraw”). Ngoài kỹ thuật Occlusion Culling, còn có một số kỹ thuật tối ưu khác như Frustum Culling, kỹ thuật này chỉ cho phép vô hiệu hóa các đối tượng nằm ngoài vùng nhìn của camera. Trong khi đó Occlusion Culling ngoài việc khắc phục vấn đề Overdraw mà còn tận dụng lại khả năng của kỹ thuật Furstum Culling. Tiến trình của Occlusion Culling được thực hiện bởi một camera ảo để xây dựng một hệ thống gồm tập hợp các đối tượng có thể hiển thị. Dữ liệu này được dùng trong quá trình runtime bởi camera để xác định rằng “cái gì được xuất hiện và cái gì không được xuất hiện?”. Occlusion Culling giúp giảm số lần gọi lại công việc dựng hình (Draw call), giúp tăng hiệu suất của ứng dụng. Dữ liệu cho kỹ thuật Occlusion Culling bao gồm các ô (Cells), mỗi ô là một nhánh của khối toàn bộ đối tượng trong Scene, cụ thế hơn thì các ô này tạo thành một cây nhị phân. Occlusion Culling sử dụng hai cây, một giành cho View Cells (Static Object – đối tượng tĩnh) và một giành cho Target Cells (Moving Object – đối tượng động). View Cells là một bản đồ liệt kê các đối tượng tĩnh có thể nhìn thấy nhằm giúp cho kết quả của việc chọn lọc các đối tượng tĩnh được chính xác hơn. Điều quan trọng cần ghi nhớ là khi tạo đối tượng, chúng ta cần đảm bảo sự cân bằng giữa kích thước đối tượng Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 38. 38 và kích thước của mỗi ô. Chúng ta không nên có các đối tượng quá nhỏ so với kích thước ô cũng như không nên có các đối tượng lớn bằng kích thước của nhiều ô. Thỉnh thoảng chúng ta có thể cải thiện bằng việc chia một đối tượng lớn thành nhiều đối tượng nhỏ. Chúng ta có thể trộn (gộp) nhiều đối tượng nhỏ lại thành một để giảm số Draw calls nhưng nếu việc chúng được đặt trong cùng một ô sẽ làm cho Occlusion Culling sẽ không có hiệu quả. Tập hợp các ô và thông tin quyết định chúng có được nhìn thấy từ một ô khác hay không có tên gọi là PVS (Potentially Visible Set). Công cụ Occlusion Cullingtrong Unity Để sử dụng Occlusion Culling, chúng ta cần phải thực hiện một số thao tác cài đặt. Đầu tiên, màn chơi của chúng ta cần phải được chia nhỏ thành từng mảnh với kích thước hợp lý. Tiếp theo, đánh dấu (tag) các đối tượng mà chúng ta muốn chúng trở thành một phần dữ liệu trong quá trình thực hiện kỹ thuật Occlusion Culling. Hình 2.9 Đánh dấu đốitượng. Sau khi thực hiện các thao tác cài đặt cơ bản, chúng ta đã có thể sử dụng công cụ Occlusion Culling với các thẻ chứ năng mà Unity cung cấp để Unity tính toán và thu thập dữ liệu cho tối ưu hóa. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 39. 39 Hình 2.10 ThẻObject trong công cụ Occlusion Hình 2.11ThẻBaketrong công cụ Occlusion Hình 2.12 ThẻVisualization trong công cụ Occlusion Các thẻ Object, Bake, Visualization cung cấp chức năng cho phép chúng ta xác định vùng, các đối tương sẽ áp dụng Occlusion; xác định Camera cần dùng dữ liệu từ Occlusion Culling để xử lí, kết xuất hình ảnh.Cho Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 40. 40 phép chúng ta tùy chọn về các giới hạn xa, gần, kích thước của các ô chứa đối tượng Occlusion. Hình 2.13 Vùng và các ô áp dụng Occlsion Culling. 2.3. Kỹ thuật hiển thị mô hình Bump Mapping Đặt vấn đề Hiện nay hiệu ứng chiếu sáng trên từng điểm ảnh được sử dụng khá phổ biến trong các sản phẩm mô phỏng nhằm tăng cường chất lượng đồ họa mô phỏng. Thay vì chiếu sáng theo từng đỉnh vertex, per-pixel lighting cho chất lượng đồ họa cao hơn hẳn do có thể áp dụng nhiều thuật toán mới trong đồ họa 3 chiều như bump bề mặt bằng normal map, phản chiếu bề mặt bằng specular map… Ứng dụng khi tự thực hiện chiếu sáng trên điểm ảnh bằng Shaders phải giải quyết các tất cả các vấn đề về chiếu sáng như diffuse lighting, specular lighting… Diffuse lighting trong các thư viện chủ yếu sử dụng bump bằng normal map và specular lighting chủ yếu sử dụng specular map, 2 thuật toán chiếu sáng này sẽ được trình bày kỹ ở phần này. Cơ sở lý thuyết Qui trình chiếu sáng trên điểm ảnh chủ yếu phân ra làm 2 công đoạn riêng biệt: thực hiện tính toán màu chính (diffuse color) và tính toán màu phản chiếu (specular color). • Tính toán màu diffuse (có bump bề mặt bằng Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 41. 41 normal map) Trước khi đi chi tiết vào thuật toán ta cần xem qua 1 số khái niệm mới dùng trong phần này Không gian tiếp tuyến của vật thể (tangent space). Tọa độ texture tại mỗi đỉnh (vertex) hình thành một hệ trục tọa độ 3 chiều với trục U (tiếp tuyến), trục W (pháp tuyến) và trục V (binormal = U x W). Hệ trục tọa độ này gọi là không gian tiếp tuyến hay không gian texture của vật thể tại các đỉnh (vertex). Không gian tiếp tuyến • Normal map, Normal map là một texture nhưng có đặc tính khá đặc biệt, thay vì chứa thông tin về điểm màu như texture thông thường, normal map lai chứa thông tin về không gian tiếp tuyến (tangent space) hay không gian texture (texture space) của vật thể, hay nói cách khác nếu các điểm ảnh của texture biểu diễn màu sắc của vật thể tại 1 điểm thì normal map sẽ biểu diễn không gian tiếp tuyến của vật thể tại điểm đó. Mỗi điểm ảnh của normal map có định dạng là RGBA trong đó 3 thành phần RGB có giá trị [0..1] được ánh xạ từ 3 trục U, V, W có giá trị trong khoảng [-1, 1]. Normal map có thể tạo ra bằng 2 cách, dùng height map (texture dạng graycale chứa thông tin độ sâu về bề mặt của vật thể trong đó màu sáng hơn biểu thị độ cao lớn hơn). Cách thứ 2 phức tạp hơn do phải tạo thêm 1 vật thể khác có độ chi tiết cao Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 42. 42 hơn, sau đó ta so sánh sự khác nhau giữa 2 vật thể để tạo ra normal map (quá trình này có thể được thực hiện bằng tool Melody của NVidia). Hình 2.14 Tạonormal map từ hightmap • Bump bề mặt sử dụng normal map, Bump bề mặt chủ yếu được thực hiện trên Pixel Shader cho từng điểm ảnh. Thuật toán này sử dụng giá trị normal trong normal map để xác định mức độ của ánh sáng tác động vào điểm ảnh đó bằng cách nhân tích vô hướng giá trị normal trên với vector hướng ánh sáng trong không gian tiếp tuyến. Sau đó giá trị này được nhân với màu sắc của vertex và màu lấy mẫu từ texture để tính ra màu diffuse (màu của vertex được tính trong Vertex Shader) Trong đó: + Normal. Vector pháp tuyến (normal vector) tại điểm đó, normal vector có được do lấy mẫu từ normal map. + Light vector. Vector hướng ánh sáng trong không gian tiếp tuyến (tangent space), vector này được tính trong Vertex Shader và được truyền vào Pixel Shader để sử dụng. vertex color. Màu của vertex sau khi thực hiện chiếu sáng trên vertex (pervertex lighting) trong Vertex Shader. texture color. Màu của texture chính, có được do lấy mẫu texture. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 43. 43 + Tính toán màu specular (sử dụng specular map), specular map là texture dạng grayscale, specular map có tác dụng cho biết vùng nào của vật thể phản chiếu nhiều ánh sáng vùng nào phản chiếu ít ánh sáng (tương ứng với màu trong specular map từ sáng tới tối). + Tính độ phản chiếu của ánh sánh, Độ phản chiếu (phản xạ) của ánh sáng trên vật thể thì phụ thuộc vị trí của mắt (hay camera). Khi mắt nằm ngay trên đường phản xạ của ánh sáng thì mắt sẽ nhìn thấy một vùng ánh sáng chói do toàn bộ năng lượng của ánh sáng được truyền thẳng vào mắt. Muốn tính màu specular của điểm ảnh ta phải xác định được mức độ ánh sáng phản chiếu tại điểm đó. Công thức tính vector phản chiếu (phản xạ) như sau: Sự phản xạ của tia sáng trên bề mặt R = 2(L dot N)N - L Trong đó: L. Light vector R. Reflection vector N. Norma l Mức độ phản chiếu của ánh sáng phụ thuộc rất nhiều vào chất liệu bề mặt của vật thể, các bề mặt nhẵn bóng có độ phản chiếu lớn trong khi các bề mặt gồ ghề lại có độ phản chiếu thấp. Để tránh công việc phải phân rã vật thể ra thành nhiều thành phần để dựng hình với các mức phản chiếu khác nhau người ta dùng specular map như một lookup table để xác định mức độ phản chiếu của ánh sánh trên từng điểm ảnh. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 44. 44 reflection vector = 2 * dotproduct(normal, light vector) * normal - light vector specular factor = dotproduct(reflection vector, view vector) specular color = (specular factor ^ specular constant) * specular lookup Trong đó • normal. Vector pháp tuyến (normal vector) tại điểm đó, normal vector có được do lấy mẫu từ normal map. • light vector. Vector hướng ánh sáng trong không gian tiếp tuyến (tangent space), vector này được tính trong Vertex Shader và được truyền vào Pixel Shader để sử dụng. • view vector. Vector tính từ mắt đến điểm nhìn (tọa độ trong không gian tiếp tuyến), vector này được tính trong Vertex Shader và truyền vào Pixel Shader để sử dụng specular constant. Hằng phản chiếu, giá trị càng lớn thì vùng phản chiếu càng nhỏ. • specular lookup. Cho biết mức độ phản chiếu của điểm đó, giá trị này có được do lấy mẫu từ specular map. 2.4. Kỹ thuật biểu diễn bóng đổ Kỹ thuật ánh xạ bóng phụ thuộc vào thực tế là bóng đổ của mỗi pixel chỉ thể hiện các đỉnh gần máy ảnh nhất. Do đó, chỉ những phần vật thể gần nhất với "nguồn sáng" mới được vẽ vào vùng bóng và lưu vào bộ đệm khi thể hiện bóng đổ của ảnh. Khi chúng ta đang vẽ các đối tượng của mình từ điểm quan sát, chúng ta có thể xác định khoảng cách thực tế của mỗi đỉnh từ nguồn sáng, sau đó chúng ta có thể so sánh với giá trị được lưu trữ trong bộ đệm sâu. Nếu giá trị được lưu trong bộ đệm độ sâu nhỏ hơn khoảng cách thực tế của đỉnh từ nguồn sáng, thì nó phải có một vật thể nằm giữa nó và máy ảnh và điểm đó cần thể hiện bóng đổ Khoảng cách từ nguồn Khoảng cách từ nguồn Khoảng cách từ nguồn sáng đến mặt phẳng >Khoảng cách Số hóa bởi Trung tâm Học từliệunguồnvàCôngsángnghệđến vậtthôngthì tinmới– cóĐHTNbóng đổ http://lrc.tnu.edu.vn
  • 45. 45 Để nhận được giá trị lưu trữ trong bộ nhớ cho các điểm đã vẽ, chúng ta phải ánh xạ hình ảnh chính xác cho từng điểm, sau đó thêm vào bóng của điểm bằng cách gọi thủ tục PPModel.fx effect nghĩa là copy hiệu ứng bóng thêm vào các tham số tọa độ và độ dài của bóng boolDoShadowMapping = true; float4x4 ShadowView; float4x4 ShadowProjection; texture2D ShadowMap; sampler2D shadowSampler = sampler_state { texture = <ShadowMap>; minfilter = point; magfilter = point; mipfilter = point; } Thủ tục VertexShaderOutput struct sẽ thêm giá trị vị trí không gian của đỉnh, của nguồn sáng float4 ShadowScreenPosition : TEXCOORD2; Bóng đổ của đỉnh cần tính toán các giá trị sau: output.ShadowScreenPosition = mul(mul(input.Position, World), mul(ShadowView, ShadowProjection)); Sau đó chúng ta cần lấy mẫu của bề mặt vật, để tạo biên của bóng cho phù hợp với hình ảnh thực tế chúng ta quan sát bằng mắt thường. Vấn đề là lấy đủ số mẫu cần thiết để bóng được trơn nhưng cũng không quá nhiều mẫu làm giảm tốc độ xử lý float sampleShadowMap(float2 UV) { Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 46. 46 if (UV.x < 0 || UV.x > 1 || UV.y < 0 || UV.y > 1) return 1; return tex2D(shadowSampler, UV).r; } Cuối cùng chúng ta dùng hàm để xác định kích thước từ độ sâu bề mặt vật ứng với bóng đổ của điểm float2 shadowTexCoord = postProjToScreen(input.ShadowScreenPosition) + halfPixel(); float mapDepth = sampleShadowMap(shadowTexCoord); Nếu chúng ta nhận giá trị trả về giá trị 1 nghiã là sẽ tạo bóng đổ cho điểm xét trên bề mặt vật thể return float4(mapDepth, mapDepth, mapDepth, 1); Trước khi sử dụng hàm này để lấy giá trị trả về để sinh ra bóng đổ, ta cần chắc chắn rằng ta đã thiết lập các tham số ngưỡng để xác định độ sâu bề mặt vật prepareMainPass() function of PrelightingRenderer: if (part.Effect.Parameters["DoShadowMapping"] != null) part.Effect.Parameters["DoShadowMapping"].SetValue(DoShadowMappi ng); if (!DoShadowMapping) continue; if (part.Effect.Parameters["ShadowMap"] != null) part.Effect.Parameters["ShadowMap"].SetValue(shadowDepthTarg); if (part.Effect.Parameters["ShadowView"] != null) part.Effect.Parameters["ShadowView"].SetValue(shadowView); if (part.Effect.Parameters["ShadowProjection"] != null) part.Effect.Parameters["ShadowProjection"]. SetValue(shadowProjection); Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 47. 47 Bóng đổ mờ Khi tạo bóng như thuật toán trên, bóng tạo ra rất chuẩn nhưng đôi khi chưa phản ánh đúng thực tế của thể giới thực mà thực tế có sự giao thoa ánh sáng, nhiễu nên bóng thường có độ nhòe thậm chí hai bóng riêng biệt khi có hai nguồn sáng chói phân biệt. Tác dụng của xử lý mờ bóng (soft shadow), khi biểu diễn các vật thể trên bề mặt có nền phức tạp đảm bảo biểu diễn chính xác Hình 2.15 Bóng đổ mờ Như vậy, bề mặt vật có hai giá trị, giá trị bao phủ bề mặt bằng một vật liệu nào đó, và giá trị bóng. Quá trình làm mờ là tính toán giá trị trung bình các pixel và các điểm láng giếng. Hàm Gausian được sử dụng để tính toán như sau: // The texture to blur texture ScreenTexture; sampler2D tex = sampler_state { texture = ; minfilter = point; magfilter = point; mipfilter = point; }; // Precalculated weights and offsets float weights[15] = { 0.1061154, 0.1028506, 0.1028506, 0.09364651, 0.09364651, 0.0801001, 0.0801001, 0.06436224, 0.06436224, Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 48. 48 0.04858317, 0.04858317, 0.03445063, 0.03445063, 0.02294906, 0.02294906 }; float offsets[15] = { 0, 0.00125, -0.00125, 0.002916667, -0.002916667, 0.004583334, -0.004583334, 0.00625, -0.00625, 0.007916667, - 0.007916667, 0.009583334, -0.009583334, 0.01125, -0.01125 }; // Blurs the input image horizontally float4 BlurHorizontal(float4 Position : POSITION0, float2 UV : TEXCOORD0) : COLOR0{ float4 output = float4(0, 0, 0, 1); // Sample from the surrounding pixels using the precalculated // pixel offsets and color weights for (int i = 0; i < 15; i++) output += tex2D(tex, UV + float2(offsets[i], 0)) * weights[i]; return output; } // Blurs the input image vertically float4 BlurVertical(float4 Position : POSITION0, float2 UV : TEXCOORD0) : COLOR0 { float4 output = float4(0, 0, 0, 1); for (int i = 0; i < 15; i++) output += tex2D(tex, UV + float2(0, offsets[i])) * weights[i]; return output; } technique Technique1 { pass Horizontal { PixelShader = compile ps_2_0BlurHorizontal(); } pass Vertical { PixelShader = compile ps_2_0BlurVertical(); } } Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 49. 49 Ở đây, có hai kỹ thuật, làm mờ theo chiểu ngang và làm mờ theo chiều dọc. Chúng ta làm mờ theo mỗi chiều độc lập với nhau (mỗi bóng đổ của pixel thêm vào giá trị điều chỉnh căn cứ vào độ lệch của giá trị trung bình. Ví dụ làm mờ theo chiều dọc thêm vào giá trị tính được từ 15 điểm láng giềng: SpriteBatch spriteBatch; RenderTarget2D shadowBlurTarg; Effect shadowBlurEffect; Những giá trị này có thể được tạo ra từ thủ tục: spriteBatch = new SpriteBatch(GraphicsDevice); shadowBlurEffect = Content.Load("GaussianBlur"); shadowBlurTarg = new RenderTarget2D(GraphicsDevice, shadowMapSize, shadowMapSize, false, SurfaceFormat.Color, DepthFormat.Depth24); Từ đó thủ tụclàm mờ: void blurShadow(RenderTarget2D to, RenderTarget2D from, int dir) { // Set the target render target graphicsDevice.SetRenderTarget(to); graphicsDevice.Clear(Color.Black); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.Opaque); // Start the Gaussian blur effect shadowBlurEffect.CurrentTechnique.Passes[dir].Apply(); // Draw the contents of the source render target so they can // be blurred by the gaussian blur pixel shader spriteBatch.Draw(from, Vector2.Zero, Color.White); spriteBatch.End(); // Clean up after the sprite batch graphicsDevice.BlendState = BlendState.Opaque; graphicsDevice.DepthStencilState = DepthStencilState.Default; // Remove the render target graphicsDevice.SetRenderTarget(null); } Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 50. 50 Việc điều chỉnh cuối cùng đối với lớp Prelightingrenderer, ta cần đảm bảo làm mờ được hàm Draw(). Trước hết copy từ ảnh nền đến ảnh bóng mờ theo chiều ngang sau đó theo chiều dọc: public void Draw() { drawDepthNormalMap(); drawLightMap(); if (DoShadowMapping) { drawShadowDepthMap(); blurShadow(shadowBlurTarg, shadowDepthTarg, 0); blurShadow(shadowDepthTarg, shadowBlurTarg, 1); } prepareMainPass(); } 2.5. Một số thuật toán chiếu sáng toàn cục Như đã đề cập chiếu sáng toàn cục là chiếu sáng mà tại mỗi điểm giá trị cường độ sáng được tính dựa trên sự ảnh hưởng tổng hợp của các nguồn sáng trực tiếp và các nguồn sáng gián tiếp (ánh sáng phản xạ lại từ các điểm, đối tượng xung điểm điểm đang xét). Với hướng tiếp cận này độ phức tạp tính toán của các thuật toán thường là rất lớn do đó khó có khả năng ứng dụng trực tiếp vào công đoạn kết xuất ảnh cho các ứng dụng trưng bày ảo. Tuy nhiên chúng ta có thể sử dụng chúng để tính trước các bản đồ sáng. Các bản đồ sáng thu được bằng các thuật toán này, sau đó có thể ứng dụng trực tiếp vào trong quá trình tạo hình ảnh môi trường theo thời gian thực mà không phải tiến hành chiếu sáng lại. Việc ứng dụng bản đồ chiếu sáng trong trưng bày ảo một mặt làm tăng tốc độ kết xuất hình ảnh không gian trưng bày một mặt khác chất lượng chiếu sáng cũng được cải thiện có được điều này là vì các tính toán Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 51. 51 chiếu sáng phức tạp đã được thực hiện trước ở bước tính bản đồ chiếu sáng. Ngoài ra bản đồ chiếu sáng có thể làm công cụ để đo lường cường độ sáng của không gian tại mọi điểm qua đó có thể đánh giá được hiệu quả của chiếu sáng toàn cục. Các kỹ thuật tạo hình dựa trên chiếu sáng toàn cục đã và đang được sử dụng phổ biến hiện nay có thể kêt đến như kỹ thuật Ray tracing, Radiosity, Photomapping v.v.. Ray tracing: Ray tracing là một kỹ thuật tạo hình ảnh trong đồ họa 3D được đưa ra khá sớm bởi tác giả Appel A[4] vào năm 1968 cho đến ngày này đã có nhiều nghiên cứu nhằm cải tiến tốc độ cũng như chất lượng của của kỹ thuật này tuy nhiên tư tưởng cốt lõi của kỹ thuật là hầu như không thay đổi. Hình 2.16: Minh họa quá trình sinh và dò tia của ray tracing Ý tưởng cơ bản của kỹ thuật này dựa trên việc dò tia ánh sáng đến được với các điểm trên màn chiếu. Nó thực hiện thông qua các bước cơ bản như sau: Từ điểm quan sát và mặt phẳng quan sát ta xây dựng một tập hợp các tia xuất phát từ điểm quan sát đi qua mỗi điểm trên mặt phẳng quan sát. Với mỗi Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 52. 52 tia sinh được ta thực hiện quá trình dò tia bằng cách tìm điểm trên đa giác thuộc một đối tượng bất kỳ gần nhất trong không gian thế giới va chạm với tia cần dò, khi tìm thấy một điểm và chạm với tia cần dò tại điểm va chạm đó ta tiến hành việc tính toán ánh sáng tại điểm va chạm. Việc tính toán ánh sáng tại điểm va chạm được thực hiện bằng cách xây dựng các tia với điểm gốc là điểm va chạm và điểm ngọn là các điểm trên các nguồn sáng trong không gian nếu trên đường đi của các tia này không va chạm với bất kỳ điểm đối tượng nào khác trong không gian thì tiến hành tính toán ánh sáng cho điểm gốc theo các hiệu ứng đã được trình bày trong phần 3.1. Nếu dừng ở đây thì thuật toán này sẽ được gọi là thuật toán Ray casting là một thuật toán chiếu sáng cục bộ. Giá trị chiếu sáng tại điểm đầu tiên này là giá trị chiếu sáng trực tiếp. Tiếp tục trên điểm va chạm chúng ta tiến hành xây dựng các tia phản xạ và khúc xạ và sau thực hiện đệ quy quá trình dò ánh sáng cho các tia phản xạ, khúc xạ thụ được, giá trị chiếu sáng thu được trên các tia phản xạ và khúc xạ là giá trị chiếu sáng gián tiếp. Việc thực hiện đệ quy được dừng lại khi số bước lặp đệ quy vượt quá một ngưỡng hoặc hệ số ảnh hưởng của các giá trị sáng gián tiếp lên giá trị sáng trực tiếp ban đầu nhỏ hơn một ngưỡng cho trước. Giá trị ánh sáng tại một điểm sẽ được thông qua sự tổng hợp giá trị sáng trực tiếp và các giá trị sáng gián tiếp. Ngày nay thuật toán này đã được các hãng sản xuất phần cứng xây dựng và tích hợp trong các thiết bị tăng tốc đồ họa của họ. Hình dưới đây là sơ đồ hoạt động của thuật toán Ray tracing được tích hợp trong một số thiết bị tăng tốc đồ họa của hãng Nvidia Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 53. 53 Hình 2.17. Các bước xử lý trong giải thuật Ray tracing Bằng việc cứng hóa các bước thực hiện của kỹ thuật ray tracing trong các thiết bị tăng tốc đồ họa có sức mạnh tính toán hàng Gfs việc render thời gian thực bằng ray tracing đang dần khả thi hơn. Hình dưới đây là so sánh kết quả của cùng một cảnh với hai kỹ thuật chiếu sáng dựa trên scan line và chiếu sáng bằng ray tracing Scan line Ray tracing Hình 2.18: So sanh giữa Scan line và ray tracing Photomapping Photon mapping là một thuật toán chiếu sáng toàn cục với các tiếp cận dựa trên việc mô phỏng lại đặc tính hạt của ánh sáng. Trái ngược với kỹ thuật ray tracing photon mapping sinh ra các tia đặc trưng cho các photon ánh sáng xuất phát từ nguồn sáng, các photon này chuyển động trong không không gian theo đường thẳng, khi gặp bề mặt đối tượng nó sẽ tương tác với bề mặt đối tượng, phản xạ, kết hợp, khúc xạ hấp thụ v.v.. sau đó bức xạ ngược lại môi Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 54. 54 trường một tập các tia mới mang đặc tính của tia ban đầu kết hợp với các đặc tính của bề mặt. Ảnh cần dựng trong trường hợp này sẽ là một màn chắn ảo trong không gian sử dụng để đón nhưng tia tới được bề mặt của ảnh. Khi đó giá trị màu sắc của từng điểm trên màn chiếu là tổng hợp các giá trị của các tia đến được màn chiếu sau một khoảng thời gian nhất định. Dưới đây là một hình ảnh thử nghiệm của kỹ thuật photon mapping Hình 2.19: Chiếu sáng bằng photon mapping Do cách tiếp cận của photon mapping là dựa trên mô phỏng là photon của ánh sáng nên nó có khả năng thể hiện được hầu hết các hiệu ứng của ánh sáng như phản xạ, khúc xạ thậm chí cả hiệu ứng thấu kính, lăng kính photon maping cũng có khả năng thể hiện được (đây là hai hiệu ứng mà ray tracing không có khả năng thể hiện được một cách trực tiếp). Tuy nhiên do xuất phát từ nguồn sáng có rất nhiều tia sáng không liên quan đến ảnh quan sát cũng Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 55. 55 được tính toán vì vầy tốc độ thực hiện của thuật toán này là phức tạp hơn nhiều so với ray tracing. Các kỹ raytracing và photon mapping là các kỹ thuật chiếu sáng toàn cục được ứng dụng phổ biến ngoài ra chúng còn nhiều kỹ thuật chiếu sáng toàn cục khác cũng được ứng dụng trong đồ họa 3D ví dụ như radiocity[9], hoặc các kỹ thuật dựa trên phương pháp tính toán Monte Carlo… 2.6. Kỹ thuật chiếu sáng cục bộ Kỹ thuật chiếu sáng cục bộ là kỹ thuật chiếu sáng mà giá trị ánh sáng tại mỗi điểm chỉ ảnh hưởng trực tiếp bởi các nguồn sáng trực tiếp mà không chịu ảnh hưởng bởi các nguồn sáng gián tiếp. Các kỹ thuật chiếu sáng cục bộ có thể kể đến là ray casting và scan line. Trong đó kỹ thuật scan line là kỹ thuật được đưa ra và ứng dụng khá sớm, hiện nay đây là giải thuật được cứng hóa trong hầu hết các thiết bị tăng tốc đồ họa ngày nay. Trong thực tế người ta hay sử dụng khái niệm Graphics pipeline khi đề cập đến trình thực hiện của kỹ thuật này. Các bước chính trong kỹ thuật được thể hiện thông qua hình 10 dưới đây. Trong đó quá trình Vertex processing là quá trình xử lý tại mỗi đỉnh trên từng đa giác đầu vào thông thường tại đây các điểm sẽ được chuyển đổi từ không gian địa phương của đối tượng về không gian địa phương của camera, cùng với đó các giá trị cường độ sáng, pháp tuyến trên từng điểm cũng được ước lượng cách tính giá trị cường độ sáng tại từng điểm cụ được thực hiện thông qua các mô hình chiếu sáng đã được đề cập trong phần 3.1. Bước thứ hai của giải thuật này chính là Rasterization tại bước này đầu vào là các điểm đã được chuyển đổi từ không gian địa phương của camera xang không gian quan sát thông qua một phép chiếu 3D v.v.. Tại đây các điểm trong đa giác sẽ được ánh xạ xang không gian ảnh sau đó thuật toán scand line được sử dụng để xử lý từng điểm trên ảnh dựa vào các tham số của từng đỉnh và vị trí tương đối của điểm đang xét so Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 56. 56 với các đỉnhcủa đa giác đầu vào. Bước cuối cùng của quá trình này là kết hợp giá trị màu sắc của điểm đang xét với giá trị cũ để tạo ra giá trị màu sắc cuối cùng. Hình 2.20 Các bước xử lý trong giải thuật Scan line. Các mô hình thiết bị tăng tốc đồ họa hiện nay đều cho phép người lập trình thay lập trình từng bước trong một luồng xử lý cho trước. Do đó người tac có thể tùy biến các thành phần để tạo ra các hiệu đồ họa ứng mong muốn. Các ngôn ngữ lập trình cho các thiết bị này có thể kể đến như GLSL, CL, hay HLSL v.v.. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 57. 57 CHƯƠNG III CHƯƠNG TRÌNH THỰC NGHIỆM 3.1 Công cụ Unity engine Hình 3.1 logo của Unity engine - Nhà phát triển: Unity Technologies - Được viết bởi ngôn ngữ: C++, C# - Website: www.Unity3d.com Unity là một công cụ thiết kế Game dành cho PC, Mac và nhiều hệ máy di động khác. Unity được sự hỗ trợ của Just-In-Time Complilation (JIT), sử dụng thư viện mã nguồn mở C++ mono. Bằng việc sử dụng JIT, những Engine như Unity có thể tận dụng lợi thế của tốc độ biên dịchra Mono trước khi nó được thực thi. Ngoài thư viện Mono, Unity cũng tận dụng chức năng của những thư viện phần mềm khác vào chức năng của nó, như Engine mô phỏng vật lý PhysicX của Nvidi, Open GL và DirectX cho kết quả xuất hình ảnh 3D, Open AL cho âm thanh. Tất cả các thư viện này được xây dựng thành những tính năng tự động hoặc công cụ trực quan vào Unity. Unity có cộng đồng người dùng rất lớn luôn chia sẻ những Plugins, công cụ của họ dưới hình thức gói phần mềm bổ sung. Có thể sản xuất các trò chơi theo tiêu chuẩn chuyên nghiệp, xuất bản 3D cho cả Mac và PC cũng như sở hữu riêng một Web Player của riêng mình, Unity là một trong những Game Engine có tốc độ phát triển nhanh nhất. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 58. 58 Các đặcđiểm và đặctính của Unity Rendering (kết xuất hình ảnh): Unity hỗ trợ đầy đủ khả năng kết xuất hình ảnh (Redering) cùng nhiều hỗ trợ cho phép áp dụng các công nghệ phổ biến trong lĩnh vực đồ họa 3D nhằm cải thiện chất lượng hình ảnh. Các phiên bản gần đây nhất của Unity được xây dựng lại thuật toán nhằm cải thiện hiệu suất kết xuất hình ảnh đồng thời tăng cường chất lượng hình ảnh sau khi kết xuất. Một số hỗ trợ: - Unity cung cấp sẵn 100 Shaders với đầy đủ các loại phổ biến nhất. - Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer. - Hỗ trợ LOD. Lighting (ánh sáng): Ánh sáng là một điều thiết yếu giúp môi trường trở nên đẹp và thực tế hơn. Unity cũng cung cấp nhiều giải pháp đa dạng cho phép chúng ta áp dụng ánh sáng một cách tốt nhất vào môi trường trong trò chơi với nhiều loại nguồn sáng như ánh sáng có hướng (Directional Light), ánh sáng điểm (Point Light), ... Một số công nghệ và kỹ thuật về ánh sáng được Unity hỗ trợ: Lingtmapping, Realtime Shadows, hiệu ứng Sunshafts và Lens Flares. Terrains (địa hình): Terrains còn gọi chung là địa hình bao gồm phần đất nền của môi trường. Unity cung cấp một công cụ hỗ trợ rất tốt khả năng này với tên gọi là Terrains Tools cho phép chúng ta thiết kế với các công cụ vẽ dưới dạng Brush có nhiều thông số tùy chỉnh để tạo hình và lát Texture cho địa hình. Cùng với Terrain Tools là Tree Creator, một công cụ mạnh mẽ cho phép chúng ta tạo ra cây cối với hình dạng, kích thước và kiểu cách đa dạng. Substances (Texture thông minh): Substances là một dạng tùy biến Textures nhằm làm đa dạng chúng trong nhiều điều kiện môi trường khác nhau. Unity cung cấp khả năng này thông qua các API dựng sẵn trong thư Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 59. 59 viện, hỗ trợ lập trình viên lập trình để tùy biến hình ảnh được kết xuất của Texture. Physics (vật lí): PhysX là một Engine mô phỏng và xử lí vật lý cực kỳ mạnh mẽ được phát triển bởi nhà sản xuất card đồ họa hàng đầu thế giới NVIDIA.Unity đã tích hợp Engine này vào để đảm nhận mọi vấn đề vật lý. Một số vấn đề vật lý được hỗ trợ bởi Unity như: Soft Bodies, Rigitbodies, Ragdolls, Joints, Cars, … Pathfinding (tìm đường): Đây là một tính năng rất mới mẻ đến từ phiên bản Unity 3.5.Với các phiên bản trước, để phát triển khả năng tìm đường cho trí thông minh nhân tạo (AI), nhà phát triển phải hoàn toàn tự xây dựng cho mình một hệ thống tìm đường riêng biệt.Tuy nhiên ở phiên bản 3.5, Unity hỗ trợ cho chúng ta tính năng Pathfinding cho phép tạo ra khả năng tìm đường cho AI nhờ vào khái niệm lưới định hướng (NavMesh). Audio (âm thanh): Về âm thanh, Unity tích hợp FMOD – công cụ âm thanh thuộc hàng mạnh nhất hiện nay. Qua đó Unity hỗ trợ chúng ta nhập và sử dụng nhiều định dạng tập tin âm thanh khác nhau. Programming (lập trình): Lập trình là một trong những yếu tố quan trọng nhất trong phát triển Game.Lập trình cho phép nhà phát triển tạo nên khả năng tương tác, trí thông minh và yếu tố Gameplay cho trò chơi. Unity cho phép chúng ta lập trình bằng nhiều ngôn ngữ mạnh mẽ và phổ biến với các lập trình viên như: C#, Java Scrip và Boo. Networking: Cho phép chúng ta tạo ra các ứng dụng trực tuyến (online) .Tính năng này sẽ hỗ trợ đầy đủ để chúng ta tạo nên các khía cạnh phổ biến trong Game online như hệ thống điểm kinh nghiệm , chat và tương tác thời gian thực, … Một số tính tăng cung cấp bởi Networking như: State Synchronization, Realtime Networking, Remote Procedure Calls, Backend Connectivity, Web Browser Integration, Web Connectivity. Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
  • 60. 60 Các thành phần trong Unity Assets Assets: Là những tài nguyên xây dựng nên một dự án Unity. Từ những tập tin hình ảnh, mô hình 3D đến các tập tin âm thanh. Unity gọi các tập tin mà chúng ta dùng để tạo nên trò chơi là tài sản (Assets). Điều này lí giải tại sao tất cả các tập tin, thư mục của các dự án Unity đều được lưu trữ trong một thư mục có tên là “Assets”. Scenes: Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn) bằng cách tạo nên nhiều Scenes cho trò chơi, chúng ta có thể phân phối thời gian tải hoặc kiểm tra các phần khác nhau của trò chơi một cách riêng lẽ. Game Object: Khi Assets được sử dụng trong Scene, chúng trở thành Game Object – một thuật ngữ được sử dụng trong Unity (đặc biệt là trong mảng lập trình).Tất cả các Game Object đều chứa ít nhất một thành phần là Transform. Transform là thông tin về vị trí, góc xoay và tỉ lệ của đối tượng, tất cả được mô tả bởi bộ 3 số X, Y, Z trong hệ trục tọa độ. Thành phần này có thể được tùy biến lại trong quá trình lập trình nhằm thay đổi vị trí, góc quay và tỉ lệ của đối tượng qua các đoạn mã. Từ các thành phần cơ bản này, chúng ta sẽ tạo ra Game Object với các thành phần khác, bổ sung chức năng cần thiết để xây dựng nên bất kỳ một thành phần nào trong kịch bản Game mà chúng ta đã tưởng tượng. Components: có nhiều hình thức khác nhau. Chúng có thể xác định hành vi, cách xuất hiện,… hay ảnh hưởng đến các khía cạnh khác trong chức năng của Game Object trong trò chơi. Bằng cách “gắn” chúng vào trong Game Object, chúng ta ngay lập tức có thể áp dụng tác động của chúng lên đối tượng.Những Components phổ biến trong quá trình phát triển trò chơi đều được Unity hỗ trợ sẵn. Ví dụ như thành phần Rigidbody đã được đề cập hay các yếu tố đơn giản khác như ánh sáng, Camera và nhiều thành phần khác. Để Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn