Tải bản đầy đủ (.pdf) (82 trang)

Luận Văn Xây dựng game hỗ trợ dạy luật giao thông cho học sinh lứa tuổi mẫu giáo và tiểu học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.33 MB, 82 trang )

LỜI CẢM ƠN
Trƣớc tiên, em xin gửi lời cảm ơn chân thành và sâu sắc nhất tới cô
giáo – Th.s LƢU THỊ BÍCH HƢƠNG, ngƣời đã tận tình hƣớng dẫn, truyền
đạt cho em những kiến thức và kinh nghiệm quý báu trong quá trình em làm
đề tài này.
Em xin chân thành cảm ơn các quý thầy, cô giáo trong khoa Công nghệ
thông tin đã tận tình giảng dạy, trang bị cho em những kiến thức cần thiết
trong suốt quá trình học tập và nghiên cứu tại khoa.
Con xin gửi lòng biết ơn chân thành và sâu sắc nhất tới Bố, Mẹ và các
anh chị, những ngƣời đã động viên, khích lệ và là chỗ dựa tinh thần vững
chắc cho con trong suốt thời gian qua.
Tôi xin chân thành cảm ơn tới các bạn trong nhóm phát triển dữ liệu3D
trong suốt thời gian qua để tôi có thể hoàn thành đƣợc luận văn này.
Cuối cùng, tôi xin gửi lời cảm ơn tới bạn bè đã động viên và giúp đỡ tôi
trong suốt thời gian học tập tại trƣờng.
Mặc dù em đã nỗ lực hết sức, xong do thời gian có hạn và trình độ
chuyên môn còn hạn chế, nên không thể tránh đƣợc những thiếu sót và có một
số vấn đề em chƣa có điều kiện nghiên cứu và làm sâu, chi tiết hơn nữa. Vì
vậy em rất mong đƣợc sự góp ý của các thầy giáo, cô giáo và các bạn.
Em xin chân thành cảm ơn!
Sinh viên

Đinh Xuân Hợp

1


LỜI CAM ĐOAN
Tên tôi là: ĐINH XUÂN HỢP
Sinh viên lớp: K34-CNTT, Trƣờng ĐH Sƣ Phạm Hà Nội 2
Tôi xin cam đoan:


1. Đề tài “Xây dựng Game hỗ trợ dạy luật giao thông cho học sinh
lứa tuổi mẫu giáo và tiểu học” là kết quả nghiên cứu của riêng tôi, dƣới sự
hƣớng dẫn của cô giáoTh.sLƢU THỊ BÍCH HƢƠNG và tham khảo một số
nguồn tài liệu nƣớc ngoài trên Internet.
2. Khóa luận hoàn toàn không sao chép từ các tài liệu có sẵn nào.
3. Kết quả nghiên cứu không trùng với các tác giả khác.
Nếu sai, tôi xin hoàn toàn chịu trách nhiệm!
Hà Nội, ngày 20 tháng 4 năm 2012
Ngƣời cam đoan

Đinh Xuân Hợp

2


MỤC LỤC
LỜI CẢM ƠN ............................................................................................................ 1
LỜI CAM ĐOAN ...................................................................................................... 2
MỞ ĐẦU .................................................................................................................... 5
CHƢƠNG 1: PHÂN TÍCH YÊU CẦU ................................................................... 11
1.1. Tình hình thực tiễn ........................................................................................ 11
1.1.1. Giải pháp hiện tại................................................................................... 12
1.1.2. Giải pháp hỗ trợ ..................................................................................... 13
1.2. Chƣơng trình mô phỏng dạy luật giao thông ................................................ 13
1.2.1. Mục tiêu .................................................................................................. 13
1.2.2. Yêu cầu ................................................................................................... 14
1.2.3. Công cụ và ngôn ngữ lập trình .............................................................. 14
1.2.4. Khó khăn ................................................................................................ 14
CHƢƠNG 2: CƠ SỞ LÝ THUYẾT ........................................................................ 15
2.1. Tổng quan về thực tại ảo ............................................................................... 15

2.1.1. Các lĩnh vực ứng dụng của thực tại ảo .................................................. 15
2.1.2. Phân loại thực tại ảo .............................................................................. 17
2.2. Công nghệ 3D và Scene Graph ..................................................................... 19
2.2.1. Khái niệm Scene Graph ......................................................................... 19
2.2.2. Cấu trúc của một Scene Graph .............................................................. 19
2.2.3. Các tính năng của một Scene Graph ..................................................... 20
2.2.4. Cách scene graph render ....................................................................... 22

3


2.3. Các công cụ sử dụng trong hệ thống ............................................................. 23
2.3.1. Giới thiệu Unity3D ................................................................................. 24
2.3.2. Ngôn ngữ thực hiện ................................................................................ 50
2.3.3. Các công cụ thiết kế ............................................................................... 57
CHƢƠNG 3: KHÁI QUÁT CHUNG HỆ THỐNG................................................. 58
3.1. Mô tả hệ thống .............................................................................................. 58
3.2. Yêu cầu.......................................................................................................... 58
3.3. Ý nghĩa, mục đích của hệ thống mô phỏng................................................... 59
3.4. Các chức năng chính của hệ thống ................................................................ 60
CHƢƠNG 4: XÂY DỰNG CHƢƠNG TRÌNH ỨNG DỤNG ................................ 62
4.1. Phân tích hệ thống ......................................................................................... 62
4.1.1. Khảo sát ................................................................................................. 62
4.1.2. Phân tích hệ thống ................................................................................ 64
4.2. Thiết kế giao diện .......................................................................................... 76
4.2.1. Hình ảnh khi xe gặp biển báo ................................................................ 76
4.2.2. Hình ảnh cảnh báo cho người điều khiển xe khi có tín hiệu đèn ........... 76
4.2.3. Hình ảnh người điều khiển xe vượt đèn đỏ ............................................ 78
4.2.4. Hình ảnh người điều khiển xe vượt đèn đỏ đúng luật ............................ 78
4.2.6 Hình ảnh cấm xe tải qua cầu .................................................................. 79

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ............................................................... 80
TÀI LIỆU THAM KHẢO ........................................................................................ 82

4


MỞ ĐẦU
1. Mục đích và lý do chọn đề tài
1.1. Lý do chọn đề tài
Ngay từ khi máy tính đƣợc phát minh ra cùng với các phần mềm ứng
dụng, con ngƣời đã luôn cố gắng tìm hiểu, phát triển để đƣa những ứng dụng
phần mềm máy tính phục vụ nhiều nhất có thể cho cuộc sống của mình. Phần
mềm máy tính không chỉ là các chƣơng trình giúp con ngƣời thuận tiện hơn
trong công việc quản lý mà còn là các chƣơng trình ứng dụng mô phỏng chính
thế giới mà con ngƣời đang sống. Với thực tại ảo, con ngƣời có thể tạo ra một
thế giới của riêng mình, tại đó họ có thể mắc những sai lầm chết ngƣời hay
thử nghiệm những ý tƣởng của mình mà không phải gánh chịu bất cứ tổn thất
nào. Để tạo ra một thế giới nhƣ vậy con ngƣời đã tìm hiểu, xây dựng lên dựa
trên những ý tƣởng đó và các phần mềm mô phỏng ra đời.
Theo nghĩa rộng hơn, đồ họa máy tính là phƣơng pháp và công nghệ
dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình
bằng máy tính. Đồ họa máy tính hay kỹ thuật đồ họa máy tính còn đƣợc hiểu
dƣới dạng phƣơng pháp và kỹ thuật tạo hình ảnh từ các mô hình toán học mô
tả các đối tƣợng hay dữ liệu lấy đƣợc từ các đối tƣợng trong thực tế.
Con ngƣời đã tiến từ việc mô phỏng bằng hình ảnh và hình vẽ đơn giản
nhƣ hình dƣới.

5



Cho đến ngày nay công việc này đƣợc thay thế bằng nhiều công nghệ khác
nhau ở đây chúng ta có thể xem ví dụ hình ảnh minh họa về thế giới 3D nhƣ
hình dƣới:

Ngày nay trên thế giới và các nƣớc phát triển các chƣơng trình mô
phỏng 3D trong nghiên cứu khoa học vũ trụ, y học, giao thông, xây dựng, học
tập, giải trí… không phải là hiếm nó giúp các công việc khó khăn và tốn kém
trở lên dễ dàng, giảm chi phí đến mức tối thiểu nhất.
Ở Viêt Nam, ngày nay với sự phát triển mạnh mẽ của kinh tế, kéo theo
thu nhập của ngƣời dân tăng lên đáng kể, từ đó làm gia tăng nhu cầu về các
phƣơng tiện cá nhân nhƣ ô tô, mô tô, xe đạp điện,… trong khi đó cơ sở hạ
tầng nhƣ đƣờng xá và các hệ thống biển báo còn thiếu hay đã bị hƣ hỏng chƣa
thể tu sửa ngay đƣợc; mặt khác, ý thức chấp hành luật giao thông của mọi
ngƣời khi tham gia giao thông là rất kém, một phần do sự ảnh hƣởng của lối
sống công nghiệp hiện đại dẫn đến ngƣời ta bất chấp tất cả, phần lớn là do
chƣa đƣợc giáo dục, đào tạo bài bản về luật giao thông trƣớc khi cấp giấy
phép điều khiển. Các hình thức đào tạo chủ yếu là qua loa, do số lƣợng các
trung tâm đào tạo còn ít và hạn chế về cơ sở vật chất, trong khi đó số lƣợng
ngƣời tham gia đăng ký là rất lớn, dẫn đến chất lƣợng chƣa đƣợc tốt. Một lý
do khác là do chƣa đƣợc học về luật giao thông, cũng nhƣ hệ thống biển báo
đƣờng bộ khi còn nhỏ, khi vẫn còn ngồi trên ghế nhà trƣờng. Ngày nay, việc

6


học luật giao thông đã đƣợc đƣa vào trong giảng dạy ở một số cấp học, nhƣ
mẫu giáo, tiểu học,… xong vẫn chỉ dừng lại ở mức hƣớng dẫn lý thuyết, xem
tranh ảnh, không có thực hành xử lý tình huống, phản xạ giao thông trên thực
địa, vì để thực hiện đƣợc điều đó là rất khó do kinh phí, tính an toàn,… và đặc
biệt là với các em nhỏ thì không thể thực hành xử lý tình huống ngoài thực tế

đƣợc;từ đó, các tiết học về luật giao thông sẽ không gây đƣợc sự chú ý, thích
thú của các em.
Xuất phát từ những hạn chế trên, tôi nhận thấy hầu hết các trƣờng ở các
bậc học bây giờ đều có trang bị máy vi tính, cùng với những tiến bộ trong
công nghệ mô phỏng 3D, ngày nay có rất nhiều engine hỗ trợ việc biểu diễn,
thiết kế mô hình và các hiệu ứng đồ họa. Chính vì vậy, tôi quyết định lựa
chọn đề tài “Xây dựng Game hỗ trợ dạy luật giao thông cho học sinh lứa tuổi
mẫu giáo và tiểu học”.
Khi quyết định chọn đề tài mô phỏng 3D là thực sự muốn đóng góp
một phần nào vào nền công nghệ 3D còn non trẻ ở nƣớc ta, và cũng góp phần
nhỏ vào việc giáo dục tăng ý thức cũng nhƣ sự hiểu biết về luật giao thông
của mọi ngƣời. Tôi lựa chọn Unity3D là engine để xây dựng Game mô phỏng
lái xe để dạy luật giao thông đƣờng bộ trong môi trƣờng 3D. Game sẽ cố gắng
mô phỏng một cách đơn giản và thuận tiện nhƣng cũng đầy đủ các tính năng
cần thiết cho phƣơng tiện bốn bánh và hai bánh để ngƣời sử dụng có thể trải
nghiệm và học hỏi. Với những chức năng chính của một phƣơng tiện bốn
bánh: chân ga, chân phanh, còi và những mô phỏng vật lý cơ bản nhƣ trọng
lực, quán tính, va chạm, tƣơng tác với địa hình, còn với phƣơng tiện hai bánh:
Di chuyển tiến (bàn đạp–xe đạp), phanh tay, chuông và những mô phỏng vật
lý cơ bản nhƣ các va chạm, lực quán tính, trọng lực, tƣơng tác với địa hình.
Game mong sẽ tiến đặt những bƣớc đầu trên con đƣờng trở thành một phần
mềm hoàn thiện ứng dụng cho một chƣơng trình mô phỏng giáo án thực hành
học luật giao thông qua trò chơi trên máy tính.

7


1.2. Mục đích
Tìm hiểu một số khái niệm về thực tại ảo; giới thiệu về phần mềm làm
Game thời gian thực; xây dựng ứng dụng Game hỗ trợ dạy luật giao thông

cho lứa tuổi mẫu giáo và tiểu học dựa trên phần mềm làm Game thời gian
thực nói trên.
2. Nhiệm vụ và yêu cầu
2.1. Nhiệm vụ
Phải nêu đƣợc khái niệm về thực tại ảo, các công cụ hỗ trợ lập trình
trong Game, nguyên lý hoạt động, mục đích chung của Game khi hoàn thành.
Game phải có sự tƣơng tác, trực quan và có các yếu tố vật lý, có các hệ
thông đèn tín hiệu, biển báo giao thông, địa hình.
Giao diên Game phải hấp dẫn, đồ họa đẹp, thân thiện, đơn giản và dễ
chơi.
2.2. Yêu cầu
Do những nhiệm vụ đặt ra ở trên, luận văn phải thực hiện đƣợc những
yêu cầu sau:
+ Trình bày đƣợc khái niệm về thực tại ảo.
+ Trình bày, giới thiệu đƣợc các công cụ lập trình trong Game.
+ Các đối tƣợng trong Game phải đƣợc gắn các yếu tố động lực học
nhƣ ngoài đời thực; các va chạm; có địa hình, sân bãi, hệ thống biển báo thích
hợp; có hệ thống đèn tín hiệu hoạt động độclập và chính xác.
+ Giao diện Game phải sinh động, giống với ngoài thực tế nhất có
thể,các hệ thống biển báo, đèn tín hiệu, nút giao cắt phải dễ nhìn; các dòng
thông báo phải đúng, rõ ràng. .
3. Phƣơng pháp nghiên cứu
3.1. Phương pháp nghiên cứu lý luận
Nghiên cứu thông qua việc đọc các tài liệu tiếng anh về các phần mềm
đồ họa, các ngôn ngữ lập trình trên internet, với ý thức hiện tại của ngƣời dân

8


khi tham gia giao thông, và tình hình dạy luật giao thông ở các cấp học tại

Việt Nam.
3.2. Phương pháp chuyên gia
Tham khảo một số tài liệu về thực tại ảo để thiêt kế Game thời gian
thực, đáp ứng yêu cầu thực tiễn trong việc phát triển Game hiện nay.
3.3. Phương pháp thực nghiệm
Thông qua việc trực tiếp tham gia giao thông và quan sát hoạt động
tham gia giao thông của mọi ngƣời; tình trạng dạy luật giao thông hiện nay ở
một số cấp học; và cùng với xu thế phát triển chung của tin học mô phỏng, đồ
họa 3D.
4. Đối tƣợng và phạm vi nghiên cứu
4.1. Đối tượng nghiên cứu
Đề tài này, tôi sẽ đi sâu vào xây dựng một ứng dụng Game giao thông
hỗ trợ dạy luật giao thông cho học sinh lứa tuổi mẫu giáo và tiểu học.
4.2. Phạm vi nghiên cứu
Luận văn dừng lại ở việc giới thiệu sơ lƣợc về phầm mềm lập trình
Game thời gian thực; và phát triển ứng dựng Game giao thông cho học sinh
lứa tuổi mẫu giáo và tiểu học.
5. Ý nghĩa thực tiễn của đề tài
Khi đề tài hoàn thành có thể ứng dụng thực tiễn vào trong giảng dạy ở
các cấp học, xa hơn nữa có thể dùng cho các cơ sở đào tạo cấp giấy phép lái
xe, và nếu phát triển cao lên có thể mở rộng tích hợp dạy lịch sử trong Game,
có thể kết nối với phần cứng giúp ngƣời học có đƣợc cảm giác nhƣ đang điều
khiển phƣơng tiện thật và tƣơng tác với thế giới ảo đã đƣợc xây dựng sẵn.
6. Cấu trúc của khóa luận
Ngoài phần mở đầu sẽ đề cập tình hình hiện tại những ƣu điểm cũng
nhƣ các điểm bất cập hiện có từ đó đƣa ra đƣợc các giải pháp, tính cấp

9



thiết,thực tiễn của chƣơng trình, cũng nhƣ khó khăn gặp phải và kết luận,
khóa luận bao gồm 4 chƣơng.
Chƣơng 1: Phân tích yêu cầu hệ thống sẽ đề cập tình hình hiện tại và
giải pháp những ƣu cũng nhƣ các điểm bất cập hiện có từ đó đƣa ra đƣợc tính
cấp thiết và thực tiễn của chƣơng trình, cũng nhƣ khó khăn gặp phải.
Chƣơng 2: Sẽ bắt đầu với cơ sở lý thuyết phục vụ cho hệ thống này.
Bản báo cáo sẽ trình bày rõ các khái niệm về công nghệ đồ họa, 3D và
Unity.Các công cụ đƣợc sử dụng trong hệ thống cũng sẽ đƣợc trình bày trong
chƣơng này. Các công cụ chính sử dụng cho hệ thống có thể đƣợc liệt kê ra ở
đây là: JavaScript, một ngôn ngữ kịch bản phát triển ứng dụng mạnh mẽ của
Sun Microsystems; Unity3D hỗ trợ cho việc phát triển các ứng dụng không
gian 3 chiều; Autodesk 3dmax, công cụ thiết kế các mô hình vật thể 3 chiều
mạnh mẽ… Trong phần này chúng ta điểm qua cách sử dụng sơ lƣợc khái
niệm và công dụng của những chƣơng trình đƣợc sử dụng để xây dựng bài
khóa luận này và đi vào việc giới thiệu về Unity3D.
Chƣơng 3: Sẽ là bƣớc hình dung ban đầu và cơ bản của hệ thống.
Chƣơng 4:Chúng ta sẽ đi sâu vào phân tích, luồng đi và cách xử lý
trong từng chức năng của hệ thống. Đồng thời mô tả cách xử lý dữ liệu cho
chƣơng

trình



giao

diện

10


của

chƣơng

trình.


CHƢƠNG 1: PHÂN TÍCH YÊU CẦU
Chƣơng này sẽ đi phân tích tình hình thực tiễn, các giải pháp hỗ trợ,
mục tiêu, yêu cầu, cũng nhƣ những khó khăn gặp phải khi xây dựng chƣơng
trình.
Qua quá trình tìm hiểu thực tế và tình hình thực tế hiện tại khi tham gia
giao thông,thì ý thức chấp hành luật của mọi ngƣời khi tham gia giao thông là
rất kém, việc tuân thủ hoặc nhận thức đƣợc các biển báo tín hiệu là không
nhiều, vẫn còn những trƣờng hợp không chấp hành tín hiệu đèn đỏ, lấn đƣờng
đánh võng. Từ thực tiễn đó, ý tƣởng xây dựng một Game giao thông 3D mô
phỏng lái xe (ôtô, xe đạp) nhằm hỗ trợ dạy luật giao thông cho lứa tuổi mẫu
giáo và tiểu học, với các chức năng cơ bản trong hoạt động lái xe nhằm đƣa ra
một giải pháp thực tiễn và có khả năng ứng dụng, có thể đƣa vào ứng dụng
thực tiễn trong dậy học luật giao thông cho mọi lứa tuổi và cũng có thể trong
các trƣờng đào tạo lái xe ôtô, xe máy ở các trung tâm học lái xe, nhằm hình
thành và tạo một thói quen, một văn hóa giao thông ngay từ khi các em còn
nhỏ, vẫn còn đang ngồi trên ghế nhà trƣờng.
1.1. Tình hình thực tiễn
Ở Việt Nam, những năm gần đây nền kinh tế phát triển mạnh mẽ, thu
nhập của ngƣời dân tăng lên đáng kể ở mọi vùng miền, đặc biệt ở các thành
phố lớn; dẫn tới các phƣơng tiện bốn bánh, hai bánh không còn là xa xỉ. Ngày
càng nhiều ngƣời có điều kiện mua xe ô tô, xe máy,…; việc tất yếu xảy ra là
nhu cầu tham gia giao thông trên đƣờng của các loại xe này ngày càng
tăng.Do đó, việc đƣợc học cũng nhƣ dạy luật giao thông là cần thiết, và từ

trƣớc việc học luật cũng nhƣ học các loại biển báo chỉ đƣợc thực hiện tại các
trung tâm đào tạo và cấp giấy phép lái xe; ngày nay đã đƣa vào trƣờng học ở
một số cấp, nhƣng việc học và dạy cũng nhƣ thực hành nhận biết các biển báo

11


còn hạn chế và ở mức hình thức. Vậy để khắc phục đƣợc những nhƣợc điểm
và hạn chế trên quả thực là một vấn đề, vì chƣa đƣợc học luật giao thông ngay
từ nhỏ, vì chất lƣợng chƣa tốt nên đồng nghĩa với tai nạn giao thông không
đáng có, không chỉ với ngƣời điều khiển phƣơng tiện mà còn gây nguy hiểm
cho những ngƣời tham gia giao thông khác.
1.1.1. Giải pháp hiện tại
Việc dạy luật giao thông của các trung tâm đào tạo lái xe hay ở các
trƣờng học thông thƣờng đào tạo với hình thức:
- Sử dụng tranh ảnh trực quan để giảng dạy các tình huống và luật giao
thông đƣờng bộ.
- Đối với các trung tâm dạy lái xe thì cho học viên thuê xe tập lái và tập
tại các bãi tập và đƣợc hƣớng dẫn tập ngoài thực địa.
- Tại các trƣờng học thì việc học luật, biển báo tín hiệu giao thông là
hoàn toàn trên lý thuyết, tranh ảnh.
Những giáo trình này có một số nhƣợc điểm nhất định:
- Thứ nhất đó là thời gian và tiền bạc: Đối với các trung tâm dạy lái xe,
ngƣời học phải bỏ ra 2 tháng thực tập lái xe tại các bãi tập (số lƣợng không
nhiều) với các tình huống giả định (khó xây dựng) với số lƣợng xe tập có hạn
để có thể điều khiển xe một cách tƣơng đối thuần thục (tiền thuê sân bãi, giáo
viên hƣớng dẫn, xe và xăng xe ngƣời học phải chi trả), các loại biển báo, tín
hiệu giao thông tại các bãi tập không hoàn toàn đầy đủ. Sau đó ngƣời học tiếp
tục đƣợc thực tập lái xe trên đƣờng thật với giáo viên hƣớng dẫn khoảng 3
tháng. Đối với các trƣờng học thì hầu hết đã có máy tính, nhƣng các tiết học

về luật giao thông hầu nhƣ không đƣợc học sinh hƣởng ứng, việc dạy cũng
nhàm chán, qua loa, việc mua tranh ảnh biển báo bằng giấy, bìa cũng tốn kém
không bảo quản đƣợc lâu.

12


- Thứ hai: Điều kiện vật chất không phải là điều dễ đáp ứng (do giá
thành cao), đặc biệt là cấp học tiểu học, mẫu giáo sẽ dễ bị các em xé, nghịch
hỏng, hay vứt đi các loại biển tranh ảnh mô tả.
- Thứ ba: Có thể gây nguy hiểm do ngƣời học chƣa đủ kỹ thuật và kiến
thức gây ra tai nạn khi tập lái đối với các trung tâm đào tạo lái xe. Hoặc có thể
gây nguy hiểm cho học sinh và đặc biệt khó có thể có những tình huống thực
tế cho các học sinh cấp thấp nhƣ mẫu giáo, tiểu học.
1.1.2. Giải pháp hỗ trợ
Nếu có thể xây dựng đƣợc một chƣơng trình mô phỏng (không phải là
khó khăn trong thời đại ngày nay) lái xe trong môi trƣờng 3D để đƣa xen kẽ
vào các giờ giảng dạy lý thuyết, hay tiết thực hành có thể giúp các học viên,
học sinh có hứng thú tiếp thu một cách nhanh hơn cách điều khiển phƣơng
tiện và cách xử lý tình huống, học các loại biển báo, luật giao thông với giá
rẻ, an toàn và thuận tiện. Từ đó giúp giảm thời gian thực tập và gánh nặng về
cơ sở vật chất do có thể dễ dàng tạo ra phƣơng tiện cũng nhƣ sân tập, đối với
học sinh sẽ tạo cho các em có đƣợc những trải nghiệm thực tế, hứng khởi với
các tiết học về luật giao thông, dần dần hình thành phản xạ ngoài thực tế. Với
tính năng an toàn cao cho dù có mắc sai lầm (thậm chí sai lầm chết ngƣời) khi
thực tập cũng không ảnh hƣởng đến ngƣời sử dụng.
1.2. Chƣơng trình mô phỏng dạy luật giao thông
1.2.1. Mục tiêu
- Xây dựng đƣợc địa hình trong thế giới thực, các tình huống, các loại
biển báo hiệu trên thực tế.

- Chƣơng trình phải dễ dàng sử dụng, mô phỏng các tác động cơ bản
khi điều khiển phƣơng tiện.
- Có cấu hình phù hợp có thể chạy đƣợc trên các máy tính tầm trung.

13


1.2.2. Yêu cầu
- Giao diện phải hiển thị đầy đủ thông số của phƣơng tiện nhƣ vận tốc,
bối cảnh.
- Dễ dàng và thuận tiện để nâng cấp, thay đổi khi có kế hoạch thêm
mới.
- Đảm bảo tác động lên phƣơng tiện ảo.
- Phạm vi phục vụ chủ yếu cho lứa tuổi mẫu giáo, tiểu học, ngoài ra có
thể sử dụng cho mọi lứa tuổi khác kể cả giáo viên dạy luật giao thông.
- Về công nghệ phải đảm bảo có thể dễ dàng tƣơng thích với các máy
tính tầm trung.
1.2.3. Công cụ và ngôn ngữ lập trình
- UNITY3D
- Cshap, JavaScript.
- Công cụ xây dựng dữ liệu 3D: 3Dmax, maya, blender.
1.2.4. Khó khăn
- Tƣơng tác giữa các đối tƣợng trong môi trƣờng 3D.
- Mô phỏng các lực tác động lên phƣơng tiện.
- Quán tính.
- Mô men xoắn động cơ.
- Lực ma sát.
- Tƣơng tác với môi trƣờng 3D của phƣơng tiện.

14



CHƢƠNG 2: CƠ SỞ LÝ THUYẾT
Chƣơng này sẽ đi giới thiệu và đƣa ra một số khái niệm về thực tại ảo,
3D, và các công cụ xây dựng cũng nhƣ lập trình đƣợc sử dụng để làm Game.
2.1. Tổng quan về thực tại ảo
Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá không gian
ba chiều với sự hỗ trợ của các thiết bị đa phƣơng tiện hiện đại để xây dựng
một thế giới mô phỏng bằng máy tính–môi trường ảo (Virtual Environment).
Trong thế giới ảo này, ngƣời sử dụng không còn đƣợc xem nhƣ ngƣời quan
sát bên ngoài, mà đã thực sự trở thành một phần của hệ thống.
Mục tiêu của phần tổng quan này là đƣa ra một số nét tổng quát về
công nghệ Thực tại ảo, trong đó bao gồm: Một số nét chính trong lịch sử hình
thành, các lĩnh vực ứng dụng, phân loại hệ thống, các phƣơng pháp và công
cụ phần mềm phổ biến tạo ra mô hình thực tại ảo.
2.1.1. Các lĩnh vực ứng dụng của thực tại ảo
Mặc dù khái niệm về Thực tại ảo đã xuất hiện từ khá lâu, nhƣng do
nhiều lý do về mặt công nghệ (cơ sở phần cứng phát triển, nghiên cứu, chi
phí), phải mất nhiều thời gian và nỗ lực để thực tại ảo có đƣợc những thành
tựu nhƣ ngày nay. Hiện tại, đây vẫn là lĩnh vực công nghệ nhiều tiềm năng
xét về khía cạnh ứng dụng. Một số lĩnh vực ứng dụng chính có khuynh hƣớng
phát triển mạnh mẽ nhất trong thời gian gần đây.
a. Kiến trúc và thiết bị công nghệ
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của Thực tại ảo là
thiết kế kiến trúc và thiết kế thiết bị công nghệ. Khả năng mô hình hoá thế
giới thực của công nghệ Thực tại ảo dƣờng nhƣ đáp ứng một cách tự nhiên

15



mục tiêu của ngành thiết kế kiến trúc: Đƣa ra mô hình trực quan nhất có thể
về hình ảnh công trình mong muốn trong tƣơng lai.
Khả năng mô hình hoá bằng hình ảnh lập thể của công nghệ Thực tại ảo
cho phép ngƣời thiết kế thể hiện đƣợc một cách trực quan nhất ý tƣởng thiết
kế của mình, đánh giá cơ bản về hiệu năng của thiết bị dựa trên những thử
nghiệm mô phỏng trên thiết bị ảo, từ đó có những hiệu chỉnh cần thiết trƣớc
khi thiết bị thực sự đƣợc sản xuất.
b. Trong lĩnh vực giải trí
Thị trƣờng giải trí cũng là một ứng dụng tiêu biểu khác của các môi
trƣờng Thực tại ảo. Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét theo
khía cạnh lợi ích về tài chính. Rất nhiều công ty đang sản xuất ra các trò chơi
có sử dụng các nguyên lý Thực tại ảo. Số lƣợng ngƣời bị cuốn hút theo các
trò chơi nhƣ vậy, đặc biệt là giới trẻ, tăng theo cấp số nhân đánh dấu tiềm
năng thƣơng mại to lớn của công nghệ Thực tại ảo trong lĩnh vực này.
c. Trong giáo dục và đào tạo
Phát triển trên nền công nghệ và kỹ thuật cao, Thực tại ảo tích hợp
những đặc tính làm cho bản thân nó có những tiềm năng vƣợt trội so với các
công nghệ đa phƣơng tiện truyền thống khác: Cho ngƣời sử dụng cảm nhận
sự hiện diện của mình trong môi trƣờng do máy tính tạo ra bằng khả năng
tƣơng tác, tự trị của ngƣời dùng trong môi trƣờng ảo, cũng nhƣ bằng những
phản hồi tức thời, trực quan từ phía môi trƣờng ảo tới các giác quan của ngƣời
sử dụng.
d. Trong y học
Y học là một trong những lĩnh vực ứng dụng tiềm năng trong công
nghệ Thực tại ảo.Cho đến nay, lĩnh vực nổi bật trong y học áp dụng thành
công công nghệ Thực tại ảo là giả lập giải phẫu.
e. Trong khoa học công nghệ quân sự

16



Sự phát triển mạnh mẽ của khoa học công nghệ quân sự, với sự ra đời
rộng rãi của các loại vũ khí hiện đại đã đƣa đến các phƣơng thức tác chiến
hiện đại, các mô hình chiến tranh trong tƣơng lai càng ngày càng trở lên phức
tạp hơn. Không gian chiến trƣờng đa chiều, đa hƣớng công kích với rất nhiều
mũi tấn công tàng hình, bí mật, bất ngờ, từ trên vũ trụ, trên không, trên mặt
đất, trên đại dƣơng và dƣới đại dƣơng với sức công phá rất lớn, độ chính xác
cao và có tính hủy diệt mục tiêu rất nghiêm trọng. Thông thƣờng khi đào tạo,
huấn luyện trong điều kiện thực tế, chúng ta đã sử dụng nhiều mô hình mô
phỏng, các khí cụ, phƣơng tiện huấn luyện nhƣ các mô hình cắt bộ là những
công cụ mô phỏng đơn giản đầu tiên giúp ngƣời chiến sỹ, học viên hiểu đƣợc
tính năng, cấu tạo và thông qua lời giảng của cán bộ huấn luyện, đã hiểu đƣợc
cơ bản những vấn đề cần truyền đạt.
2.1.2. Phân loại thực tại ảo
a. Hệ thống thực tại ảo không có tính nhúng
Là những hệ thống có khả năng cung cấp mức độ hiện thực thấp nhất.
Sử dụng hệ thống máy tính để bàn, môi trƣờng ảo đƣợc quan sát thông qua
một khung nhìn là một màn hình có độ phân giải cao. Việc tƣơng tác với môi
trƣờng ảo có thể đƣợc thực hiện thông qua các phƣơng tiện truyền thống nhƣ
bàn phím, chuột, Trackball hoặc tiên tiến hơn, sử dụng các thiết bị tƣơng tác
lập thể nhƣ Spaceball hay Datagloves.
b. Hệ thống thực tại ảo bán nhúng
Hệ thống bán nhúng là một thể hiện khá mới trong công nghệ Thực tại
ảo.Sự phát triển của các hệ thống Thực tại ảo dạng này dựa trên các công
nghệ đã đƣợc phát triển trong lĩnh vực mô phỏng bay. Hệ thống bán nhúng
cho ngƣời dùng có cảm nhận nhiều hơn về sự hiện diện trong không gian ảo
so với các hệ thống không có tính nhúng, và cũng chiếm ƣu thế hơn về mặt
cảm nhận phạm vi không gian ảo. Ngoài ra, thông qua việc sử dụng một số

17



loại kính mắt đóng mởđồng bộ với hệ thống đồ hoạ, ngƣời sử dụng có thể
quan sát đƣợc các hình ảnh nổi lập thể.

18


c. Hệ thống thực tại ảo nhúng toàn phần
Hệ thống Thực tại ảo nhúng toàn phần cung cấp cho ngƣời sử dụng
những trải nghiệm trực quan nhất trong môi trƣờng ảo.Những hệ thống nhƣ
vậy có thể đƣợc xem nhƣ bƣớc tiến xa nhất trong công nghệ Thực tại ảo cho
tới thời điểm này. Có một loại thiết bị chuyên biệt gắn liền với sự phát triển
của các hệ thống dạng này đó là các Thiết bị hiển thị đội đầu(HMD) và găng
tay dữ liệu (DataGloves). Các thiết bị đó cho phép ngƣời quan sát đƣợc nhúng
hoàn toàn trong một thế giới ảo mà ở đó anh ta có thể quay 3600 và tƣơng tác
với vật có cảm giác nhƣ tƣơng tác với vật thật.
2.2. Công nghệ 3D và Scene Graph
Để có thể xây dựng một ứng dụng mô phỏng không gian ba chiều, thì
Scene Graph là công nghệ đƣợc sử dụng rộng rãi nhất.Phần này sẽ phân tích
cho chúng ta thế nào là một Scene Graph, cấu trúc của Scene Graph và
phƣơng thức hoạt động của nó.
2.2.1. Khái niệm Scene Graph
Scene Graph là một cấu trúc dữ liệu đƣợc sử dụng để tổ chức các yếu tố
tạo nên một cảnh.Nó có thể là một cây hoặc một mạch đồ thị hở.
2.2.2. Cấu trúc của một Scene Graph
Các Scene Graph chứa đựng các nút bao gồm nhƣ hình dạng, ánh sáng,
máy ảnh, ô tô...Các mối quan hệ giữa cha và con đƣợc gắn kết nhƣ cấu trúc
cây nhị phân. Cấu trúc này rất quan trọng vì nó cho biết phạm vi ảnh hƣởng
đến render một cách có hiệu quả.

Cây Scene Graph đƣợc bắt đầu bằng một nút gốc trên cùng. Phía dƣới
nút gốc, các nút nhóm quản lý địa hình và trạng thái render điều khiển ngoại
hình của chúng. Nút gốc và các nút nhóm có thể không có hoặc có nhiều nút
con.

19


Hình 1.1: Một Scene Graph

Ứng dụng sử dụng các nút nhóm dùng để tổ chức và quản lý khung
cảnh. Giống nhƣ một cây trong một khu rừng, bắt đầu từ nút gốc (scene node)
và di chuyển ra bên ngoài đối với những chiếc lá (car, light, camera…).
Không giống nhƣ hầu hết các cây mọc ngoài thực tế, các cây này thƣờng
đƣợc hiển thị với các nút gốc ở phía trên và các cành ở phía dƣới.
Một nút là một phần của cây có thể có các nút khác hoặc lá bên dƣới
nó,các nút có số lƣợng không xác định các nút con của nó, một chiếc lá không
thể có các nút khác hay lá dƣới nó.
Scene Graph nằm ở mức trung gian, đƣợc dựng trên đỉnh của các API
cấp thấp để cung cấp khả năng tổ chức khônggian và các tính năng khác cần
thiết cho một ứng dụng 3D chất lƣợng cao.
2.2.3. Các tính năng của một Scene Graph
Scene graph đƣa ra các tính năng quản lý trạng thái và địa hình có trong
các thƣ viện API render cấp thấp, đồng thời cung cấp thêm các tính năng
khác, nhƣ là:
Tổ chức không gian – Cấu trúc cây Scene Graph tự điều khiển một
cách tự nhiên để quản lý không gian trực quan.
Phân loại – Hiển thị các phân loại hình nón và thắt nút trên máy chủ,
khiến làm giảm việc nạp toàn bộ hệ thống bằng cách không xử lý địa hình,
không hiển thị lên ở hình ảnh đã đƣợc render cuối cùng.


20


LOD – Tính toán khoảng cách mắt nhìn – vật trên các địa hình cho
phép các vật thể có thể đƣợc render một cách có hiệu quả bằng cách thay đổi
độ chi tiết của level. Xa hơn nữa, portions của khung cảnh có thể đƣợc nạp từ
đĩa khi chúng nằm trong một khoảng cách góc nhìn nhất định, và có thể đƣợc
xóa khỏi bộ nhớ khi chúng nằm quá khoảng cách đó.
Translucency – Render một cách hiệu quả và hoàn thiện của những địa
hình trong suốt (không đục) cần tất cả các địa hình trong suốt đƣợc render sau
tất cả các địa hình không trong suốt. Ngoài ra, địa hình trong suốt phải đƣợc
sắp xếp theo thứ tự chiều sâu và đƣợc render theo thứ tự từ sau ra truớc.
Những thao tác này thông thƣờng đƣợc hỗ trợ bởi scene graph.
Tối giảm hóa các thay đổi trạng thái – Để tăng tối đa hiệu quả ứng
dụng, cần phải tránh những thay đổi trạng thái dƣ thừa không cần thiết.Scene
graph thƣờng sắp xếp địa hình bằng các trạng thái để tối giảm hóa các thay
đổi trạng thái, và các chức năng quản lý trạng thái của OpenSceneGraph triệt
tiêu tất cả các thay đổi trạng thái.
File I/O – Scene graph là một công cụ rất hiệu quả cho việc đọc và lƣu
các dữ liệu 3D trên đĩa. Một khi chúng đƣợc nạp vào hệ thống, cấu trúc dữ
liệu scene graph nằm trong cho phép ứng dụng có thể dễ dàng điều khiển các
dữ liệu 3D động.Scene graph có thể coi là bộ trung gian tức thời để chuyển
đổi từ định dạng này sang định dạng khác.
Các tính năng cao cấp khác – Các thƣ viện scene graph thƣờng cung
cấp các tính năng cao cấp ngoài các tính năng thƣờng tìm thấy ở các API cấp
thấp, nhƣ là hỗ trợ hoàn toàn ký tự, hỗ trợ các hiệu ứng render (nhƣ là hiệu
ứng particle và shadow), tối ƣu hóa render, hỗ trợ vào ra file mô hình 3D, truy
cập đa nền tảng đến các thiết bị vào và bề mặt render.
Hầu hết tất cả các ứng dụng 3D cần một số trong các tính năng nói trên.

Kết quả là tất cả các lập trình viên muốn viết chƣơng trình trực tiếp trên các
thƣ viện API cấp thấp thƣờng đƣợc sắp xếp lại để thực hiện rất nhiều trong số

21


các tính năng trong ứng dụng của họ, làm tăng chi phí phát triển. Sử dụng một
bộ scene graph nào đó đã hỗ trợ hoàn toàn các tính năng đó sẽ cho phép ta
phát triển ứng dụng liên tục và mạnh mẽ.
2.2.4. Cách scene graph render
Một ứng dụng scene graph thông thƣờng cho phép ứng dụng lƣu trữ địa
hình, trong suốt quá trình tất cả các địa hình đƣợc lƣu trong scene graph đƣợc
gửi đến phần cứng.Tuy nhiên,những ứng dụng này thiếu rất nhiều các tính
năng đƣợc nói đến trong phần trƣớc.Để cho phép các cập nhật địa hình động,
lựa chọn, sắp xếp và render một cách có hiệu quả, các scene graph thƣờng
cung cấp nhiều hơn một traversal. Thực tế, có 3 loại quá trình:
Update – Quá trình cập nhật (đôi khi đƣợc coi nhƣ duyệt ứng dụng) cho
phép ứng dụng có thể thay đổi scene graph, cho phép các khung cảnh động.
Các cập nhật đƣợc hoàn thành hoặc trực tiếp từ ứng dụng hoặc từ các hàm trả
về trỏ tới các nút bên trong scene graph.Ví dụ nhƣ là một ứng dụng sẽ sử
dụng các quá trình cập nhật để thay đổi vị trí của một phi thuyền trong một
giả lập lái phi thuyền, hoặc cho phép các tƣơng tác của ngƣời dùng sử dụng
thiết bị đầu vào.
Cull – Trong suốt quá trình chọn lọc, các thƣ viện scene graph sẽ kiểm
tra dung lƣợng giới hạn cho tất cả các nút nằm trong khung cảnh. Nếu một nút
lá nằm trong khung nhìn, thƣ viện scene graph sẽ thêm vào một tham chiếu
đến nút lá địa hình vào danh sách render cuối cùng. Danh sách này đƣợc sắp
xếp bằng những mô hình đặc và những mô hình trong mờ, và địa hình trong
mờ đƣợc sắp xếp xa hơn bằng chiều sâu.
Draw – Trong quá trình vẽ (đôi khi đƣợc coi nhƣ là quá trình render),

scene graph sẽ duyệt qua danh sách địa hình đƣợc tạo ra trong suốt quá trình
chọn và đƣa ra các lệnh gọi hàm đồ họa API cấp thấp để render địa hình đó.
Hình 1.2 biểu thị các quá trình này

22


Hình 1.2: Các quá trình scene graph
Render một scene graph thông thƣờng cần 3 quá trình. Trong (a), quá
trình cập nhật thay đổi địa hình, trạng thái render, hoặc các tham số nút để
bảo đảm scene graph đƣợc cập nhật trong frame hiện tại. Trong (b), quá trình
duyệt chọn lọc kiểm tra khả năng nhìn thấy đƣợc và các địa hình và tham
chiếu trạng thái trong một cấu trúc mới. Trong (c), quá trình vẽ duyệt qua đồ
họa render và đƣa ra các lệnh đến phần cứng đồ họa.
Thông thƣờng, ba quá trình này đƣợc thực hiện đồng thời cho mỗi
khung đƣợc render. Tuy nhiên, trong một số các tình huống render cần nhiều
khung nhìn liên tiếp của cùng một khung cảnh. Stereo rendering và hệ thống
đa hiển thị là hai ví dụ.Trong các trƣờng hợp này, quá trình update đƣợc thực
hiện một lần mỗi frame, nhƣng quá trình chọn và vẽ đƣợc thực hiện một lần
mỗi view của mỗi frame (hai lần một frame cho stereo rendering đơn giản, và
một lần mỗi card đồ họa cho mỗi frame ở hệ thống đa hiển thị).Điều này cho
phép hệ thống đa xử lý và các đồ họa có thể xử lý scene graph song song.Quá
trình duyệt chọn lọc bắt buộc phải xử lý chỉ đọc để cho phép truy cập đa
luồng.
2.3. Các công cụ sử dụng trong hệ thống
Qua phần trên, ta đã nắm đƣợc các cơ sở lý thuyết cơ bản một cách
tổng quan về một scene graph. Để có thể xây dựng hệ thống của chúng ta với
công nghệ scene graph đó, ta cần phải sử dụng một số các công cụ khác nhau
để lập trình cũng nhƣ thiết kế.


23


2.3.1. Giới thiệu Unity3D
Unity3D là một phần mềm cho phép ta sản xuất ra các sản phẩm Game
3D thời gian thực (realtime), cho phép phát triển các Game đa nền từ PC,
MAC, cho tới iPhone, iPad…
2.3.1.1. Tổng quan về giao diện Unity3D
a. Giao diện Unity3D khi khởi động
Khởi động Unity3D:
+ Đối với hệ điều hành Window: Start – Program – Unity
+ Đối với hệ điều hành MAC: Application – Unity
Sau khi khởi động Unity cửa sổ Editor xuất hiện: Cửa sổ Editor
của Unity gồm nhiều Tab gọi là các view, và ta có thể tùy ý kéo thả sắp xếp
các view theo ý thích.

b. Cửa sổ Project
Mỗi Project của Unity đều chứa một thƣ mục Assets. Nội dung của thƣ
mục này đƣợc hiển thị trong project view. Đây là nơi chứa tất cả các assets để
tạo Game của bạn nhƣ Scenes,Scripts, 3D models, Textures, Audio file,
Prefabs,Material…

24


Khi click chuột phải lên bất kỳ assets nào trong project view bạn có thể
chọn Reveal in Explorer (hoặc chọn Reveal in finder trong MAC) sẽ nhìn
thấy nó trong thƣ mục hệ thống của bạn.
Ghi chú: Chúng ta không nên di chuyển asscets bằng cách sử dụng
Windows Explorer (hay Finder trong MAC), vì nó sẽ phá vỡ cấu trúc siêu dữ

liệu của assets với nhau. Và luôn sử dụng project view để cấu trúc assets của
mình.
Để thêm assets vào project của
mình,chúng ta có thể kéo thả bất kỳ file
nào vào trong project view hoặc vào công
cụ Assets -> Import new Assets.
Scenes cũng đƣợc lƣu trữ trong
Project view, và đây là một level độc lập
mang tính cá nhân. Nhƣ Example Islands
Scene đƣợc hiển thị trong lần đầu chạy

Unity.Để tạo một scene mới Control+N
(command+N ởMAC), lƣu Scene chọn
Control+s (Command+S ở MAC).
Một số assets game cần đƣợc tạo
bên trong Unity. Để làm đƣợc điều đó
bạn chọn hình tam giác nhỏ nằm bên
phải Create trong cửa sổ project (hoặc
click chuột phải trong project view) sau
đó chọn assets cần thêm.

25


×