nghiên cứu xây dựng ứng dụng mô phỏng nhà

76 0 0
nghiên cứu xây dựng ứng dụng mô phỏng nhà

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG KHOA CÔNG NGHỆ THÔNG TIN

Nghiên cứu xây dựng ứng dụng mô phỏng nhà

Giảng viên hướng dẫn: TS Đỗ Thị LiênSinh viên thực hiện: Trần Thành Tài

Mã sinh viên: BI9DCCN565

Lớp: DI9CNPMI

Niên khóa: 2019-2024

Hệ đào tạo: Đại học chính quy

HÀ NỘI — 2023

Trang 2

NHAN XÉT CUA GIẢNG VIÊN HƯỚNG DAN

Điểm: (Bằng chữ )

Ngày tháng năm 20

Giáo viên hướng dân

Trang 3

NHẬN XÉT CUA GIANG VIÊN PHAN BIEN

Điểm: (Bang chữ )

Ngày tháng năm 20

Giáo viên phản biện

Trang 4

Đồ án tốt nghiệp đại học

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn đến các thây cô trong Học viện công nghệ

bưu chính viễn thông nói chung và các thay cô trong khoa Công nghệ thông tin nóiriêng Cảm ơn các thây cô đã dạy cho em rất nhiều kiến thức và kinh nghiệm trong

suốt 5 năm đại học, giúp em có được cơ sở ly thuyết vững vàng và tạo một môi

trường học tập chuyên nghiệp dé em có thé phát triển bản thân và vững bước trên

con đường phát triên sự nghiệp.

Em xin gửi lời cảm ơn chân thành đến cô TS Đỗ Thị Liên — Giảng viên bộ

mon Công nghệ phân mém đã tận tình hướng dan cũng như tạo điêu kiện giúp em

hoàn thành đồ án này, em xin chúc cô và gia đình thật nhiêu sức khỏe và thànhCÔNG.

Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo diéu

kiện, quan tâm, giúp đỡ, động viên em trong suôt quá trình học tập va hoàn thànhkhóa luận tot nghiệp.

Vì thời gian có hạn, trình độ hiểu biết của bản thân còn nhiều hạn chế Cho

nên trong đồ án này không tránh khỏi những thiếu sót, em rất mong nhận được sựđóng góp ý kiến của tat cả các thay cô giáo cũng như các bạn bè dé đô án em đượchoàn thiện hơn nữa.

Em xin chân thành cảm ơn!

Trần Thanh Tài - BI9DCCN565

Trang 5

DANH MỤC CAC HÌNH VẼ 5s 2s E2 12E121121121212111 11211111111 re 9

THUẬT NGỮ VIET TÁTT - 2-2 SE+ESE£EE£EEEEEEE2EE 2121212111111 11x 1xe 11

PHAN MO ĐẦU - 5-5221 2S 2E 2212212211211211211211211211111211211211111 1121 xe 12 CHUONG 1 TONG QUAN VE UNG DỤNG MO PHONG NHÀ 13

1.1 Xác định yêu cầu 5c SE E2 12112112112112112111 1111111 re 13

1.1.1 Mục đích hệ thống - 5-25 SE SE E2EEE12171211 2111111111 ye, 13

1.1.2 Khảo sát thị trường và các sản phẩm tương tự - 2 s5 s+: 13

1.1.3 Yêu cầu hoạt động của ứng dụng 2 +sccecscrxzxexererree 17

1.2 Thiết kế tương tác - 22522 E2E221217111212112111111111111 1x cce 18

1.3 Xác định phương pháp tiếp cận và giải quyết vấn đề 5- 5+: 19 1.3.1 Mô hình tổng quát hệ thống 2-52 +S2+E+E££E+E+EzEzEerxzxeree 19 1.3.2 Phương pháp xây dung phan mềm - ¿2 52 z+*+E+Ez£z£z+xz 20 1.4 Công nghệ triển khai hệ thống 2-2 2SE+E£EE+E£EE2E+EEEE2EeEEzEeErrkrree 20 1.4.1 Unity Engine -.c c1 vn ng vn kg 20

Trần Thanh Tai - BI9DCCN565

Trang 6

Đồ án tốt nghiệp đại học

1.4.3 Shader Code LH TH TH TH HH kp 22

1.5 Kết luận chương 2:222+5E2E222E2EEE2E22122122121122121121 2 xe 23

CHUONG 2 CÔNG NGHỆ XÂY DUNG UNG DUNG MÔ PHONG NHÀ24

2.1 Hé thong Unity 3D ieee ceccccccccssssssesseessessessessssssessssussssssesseauesseesesseseeeees 24

2.1.1 Giới thiGU eee ccccccccssessessecssessessesssessessessussssssessssusssessesssssesseesesseess 24

2.1.2 Thành phan chinh cccccccccccccscesssssesesscssessessessessessessessssessscsesessesesees 24

2.2 Builder Pattern ccc cece ccccesscsccceesssccccesseeeccessssseeeseeseeeeesesssesssssssnaees 26

2.2.1 Vấn đề khởi tạo ham trong hệ thống lớn 2 2 2+s+z+zx+zx+s+ 26 2.2.2 Giới thiệu về Builder Pattern -¿-:- - sSx+E+EEE+E£EEEE+EvErxrrerssesee 28 2.2.3 Cấu trúc của Builder Patterth cccccccccccccscesesecesesesecesescesesescseseeceseeees 30

2.3 Kết luận chương 2 :- 2252 E2 E21121211111111121121121111 1111111 te 31 CHƯƠNG3 PHAN TÍCH VÀ THIẾT KE HỆ THÓNG 33

3.1 Phân tích hệ thống 2 2S E2ESEEEEEEEEEE12115112112112112111E 111 xe 33

3.1.1 Biểu đồ Use Case và Scenario c.ccccccccssssssssessssssestsesesescscestevstseseeeeees 33

3.1.2 Danh sách Use Case va Scenario tương Ứng - +s-s++ssssssxsss 34

3.1.3 Biểu đồ lớp phân tích ¿5-52 S222 E2EEE12121E212111211 1111 xe, 48

3.2 Thiết kế hệ thống -:- 2 5ESE2EE2EE2E12E12112121711111211211211211 1.21 xe 51

3.2.1 Biểu đỗ tuần tet eccccccccccccccccssssssessessessessessessessessessssssessssesessesesisseeeeeees 51

3.2.2 Biểu đỗ lớp thiết kế - essecsesscssessessesesecsesssestsecsessseseeenees 59

3.3 Kết luận chương 3 cecccecccssesescsesssesessesessessesessessesesseseseesscstsasstsvsssesessesees 61

Trần Thanh Tai - BI9DCCN565

Trang 7

Đồ án tốt nghiệp đại học

KET LUẬN VÀ HƯỚNG PHAT TRIỆN -° <5 5° se sess=sesesseses 63 1 _ Đánh giá kết quả của đồ án - -©2¿2+22S 2x2 EEE2E2E2122121 2122121 zxe 63

2 Phương hướng phát triỂn - - + seSeEEEEE2EE2E12E12E121121E 2121211 xeE 63

PHU LUC CÀI ĐẶT VÀ TRIEN KHAI 5-5-2 s s+ssss=sesssesss 64

I _ Thiết lập môi trường - ¿- ++++k‡EE£EEEEEEEEEE121121121121121E 21211 64

2 Cài đặt triển khai hệ thống ¿ ¿- + ©2¿22222E2E2EE212E 2122121 2EeErcxe2 64 3 Giao diện và hình ảnh sản phẩm - - 2c 2 E+EE£EE£EE2EE2EE2EzErrerkered 68

TÀI LIEU THAM KHẢO <2 s2 se s£Es£Ess£xseEseEsetxserserssrssrsere 76

Trần Thanh Tài - BI9DCCN565

Trang 8

Đồ án tốt nghiệp đại học

DANH MỤC CÁC BANG

Bang 3.1 Kịch bản module tạo phòng TỚI - 5 25 32+ * +2 k+seeerersekee 34Bang 3.2 Kịch ban module chỉnh sửa phòng - 5à Shin, 35

Bảng 3.3 Kịch bản module xem video hướng dẫn 2- 52 52+s+£+cz£ss+ 36

Bang 3.4 Kịch bản module thêm d6 vật - ¿2-52 5E E‡E‡ESEE2E2EeEeEerrkrvee 37

Bảng 3.5 Kịch ban module thay đổi chat liệu sàn - - 2-52 5s2cs2cs2cc+2 39 Bảng 3.6 Kịch bản module ấn toàn bộ đồ vật i5: St ctct x2 EE2EEsxsxsxsez 41

Bang 3.7 Kich ban module tao chất liệu mới ¿- - + + ‡x+EeErxerererxerrrs 42 Bảng 3.8 Kịch bản module thay đổi cài đặt ánh sáng -2- ¿5 255: 44 Bang 3.9 Kịch ban module thay đổi chế độ góc nhìn - 2-5 + +c£zc5+: 46 Bảng 3.10 Kịch bản module chỉnh sửa AG vật ác cv 12121 re 47

Trần Thanh Tài - BI9DCCN565

Trang 9

Đồ án tốt nghiệp đại học

DANH MỤC CÁC HÌNH VE

Hình 1.1.Thống kê số lượng nhà ở những năm gan đây s2: 14 Hình 1.2.Thống kê số lượng người dung smartphone qua các năm 15 Hình 1.3 Mô hình thiết kế tương tác của hệ thống - - + z+s+x+xzcsez 18 Hình 1.4.Mô hình tong quát của hệ thống - 2 ¿SE £E2E+EeEeErxrxez 19 Hình 1.5 Phác thảo mô hình MVC cho hệ thống 2- 2 2522 2+2: 20 Hình 1.6 Ví dụ về ShaderLab trong Unity - - 2-2 s+2++S++E++E+zEzEzEerxzxee 23 Hình 2.1 Các Component chuyên dụng trong hệ thống - 5-2: 25 Hình 2.2 Van đề trong lập trình với constructOr -¿ ¿+ =z+s+z++zz+xze: 27 Hình 2.3 Phương án giải quyết trong van đề constructOr - 2: scscs+: 27 Hình 2.4 Mô hình hệ thống nhà nhiều thành phần - 2 2 s2 22 z£z+522 28 Hình 2.5 Cấu trúc hoàn chỉnh của Builder Pattern trong hệ thống nhà 31

Hình 3.1 Use Case tổng quát hệ thống 2-2 2 SSE2E#ESEE2EEEE2EEEEErEerkeg 33

Hình 3.2 Use Case module tạo phòng MỚII - 5 2c 3S 3+3 Evssseerrrrrevee 34

Hình 3.3 Use Case module xem video hướng dẫn - 2-5 2 s+s+=+s+sss+ 36

Hình 3.4 Use Case mudule thay đổi chất liệu sàn - 2-52 522cs+cz2cz+2 39 Hình 3.5 Use Case module ân toàn bộ d6 vật - + xe +x+EeEeEerrerererx 40 Hình 3.6 Use Case module tạo chất liệu mới -¿-¿2+s+x+E+E+EvEEEEE+E+EzEezrsez 42 Hình 3.7 Use Case module thay đổi cài đặt ánh sáng - + czcse: 44

Hình 3.8 Use Case module thay đổi chế độ góc nhìn ¿5 5x5: 45 Hình 3.9 Use Case module chỉnh sửa d6 vật -¿- 5xx EvEvEeEeEexererrrres 47

Hình 3.10 Biêu đồ lớp phân tích - 2:22 + x2E22E+2EEtEE2EE2Exerxzreerxerxee 50 Hình 3.11 Biéu đồ tuần tự module xem danh sách loại phòng 51 Hình 3.12 Biểu đồ tuần tự module thêm phòng mới - - 2 s2 2+ +2: 52 Hình 3.13 Biéu đồ tuần tự module xem video hướng dẫn 5: 5+ 52

Trần Thanh Tài - BI9DCCN565

Trang 10

Đồ án tốt nghiệp đại học

Hình 3.14 Biéu đồ tuần tự module thêm đồ vật - 2 2s t+x+EvEvEeEvrervsi 53 Hình 3.15 Biéu đồ tuần tu module tạo chất liệu mới - - + + c+s+=+zexss+ 54 Hình 3.16 Biéu đồ tuần tự module ân toàn bộ đồ vật ¿2+ se s22 55 Hình 3.17 Biểu đồ tuần tự module hiền thị lưới -.¿-ccccccccscxerrreee 56 Hình 3.18 Biéu đồ tuần tự module thay đổi cai đặt ánh sáng 57 Hình 3.19 Biéu đồ tuần tự module thay đôi cài đặt góc nhìn 58 Hình 3.20 Biéu đồ tuần tu module chỉnh sửa đồ vật ¿+ scz+x+x+xzzzs+2 59 Hình 3.21 Biểu đồ lớp thiết kẾ - ¿S2 SE E21 12121815E111712151 11111 cxe 60 Hình 3.22 Biểu đồ gói hệ thống 2-2 252222 EEEEEEEEEE71E21211221 2211 xe 61 Hình 0.1 Giao diện trang chủ nIfy c2 Sc 3321111325 1E EESEkrrerrvee 65Hình 0.2 Giao diện cai đặt Un1fy 2c 2211121123111 112111111 kg re 65Hình 0.3 Giao diện chọn thư mục chứa EdItor 5555553 + +++++++++++++++>s+ 66

Hình 0.4 Giao diện cai đặt thành công - c2 222211 1*22 112Exxexzxes 66Hình 0.5 Giao diện tao dự án Unity ccc cccccsccsccesecssecessecesecesseeeseesseeensees 67Hình 0.6 Giao diện mở ứng dụng - - 3322133211131 1515EE1EEEekxrs 68Hình 0.7 Giao diện horne c2 2 2211112222311 11 1131115515555 xx 69

Hình 0.8 Giao điện phòng mẫu -¿- 5 2 +E+S£S2SE+E£EEEE£EEEEEEEEEEEEErErrkrkrrres 70

Hình 0.9 Giao diện thiết kế c2cc22tttEth HH 71

Hình 0.10 Giao điện danh sách đồ Vate.c.c.ccccccccccccsesecesecsssescsesesececsesescscsesesvscseeees 72 Hình 0.11 Giao diện chỉnh sửa đỗ vật ¿5c cv 73 Hình 0.12 Giao điện xem chất liệu -. -55:22+tc tri 74 Hình 0.13 Giao điện thêm chất liệu - ¿2-2-5 SE EESE£E+E‡E+EvEEEEEEEErEsEErrrrrsee 75

Trần Thanh Tài - BI9DCCN565

Trang 12

Đồ án tốt nghiệp đại học

PHAN MỞ ĐẦU

Với sự tiến bộ nhanh chóng của công nghệ và sự phát triển đô thị, ngành xây

dựng và thiết kế nhà đang trở thành một lĩnh vực ngày càng quan trọng trong phát

triển đất nước Theo đó, gia tăng dân số và lượng nhà ở nhanh chóng khiến cho việc

quan lý và tối ưu hóa không gian trở thành một yếu tô thiết yếu trong việc xây dựng.

Vào những năm trước, kiến trúc sư chủ yếu sử dụng những phần mềm

chuyên dụng, xong lại gây khó khăn trong việc giao tiếp giữa người xây dựng vàchủ nhà Trong khi người bình thường chỉ có thé dùng các ứng dụng mang tính chấtgiải trí hơn Liệu có thể tạo ra một ứng dụng đơn giản được dùng trên điện thoại di động nhưng lại cung cấp một nền tảng mô phỏng 3D chân thực, giúp kiến trúc sư và nhà thiết kế trực quan hóa ý tưởng của họ, đồng thời hỗ trợ chủ nhà cũng như nhà

thầu hiểu rõ về cau trúc và quy trình xây dựng?

Từ những vấn đề cấp thiết trên, em đã nảy ra ý tưởng “Xây dựng ứng dụng

nhà mô phỏng” và chọn nó làm đê tài cho đô án tôt nghiệp đại học.

Đồ án được cau trúc thành 3 chương gồm có những nội dung chính sau: Chương 1: Tổng quan về ứng dụng mô phỏng nhà.

Chương 2: Công nghệ xây dựng ứng dụng mô phỏng nhà.

Chương 3: Phân tích thiết kế hệ thống.

Trần Thanh Tài - BI9DCCN565

Trang 13

Đồ án tốt nghiệp đại học

CHUONG 1 TONG QUAN VE UNG DỤNG MÔ

PHONG NHA

Trong chương này, đồ án tập trung giới thiệu tong quan về lý do chọn đề tài,

đặt ra các vân đê mà hệ thông cân xử lý, từ đó đưa ra các phương pháp và công nghệdùng đê triên khai hệ thông.

1.1 Xác định yêu cầu

1.1.1 Mục đích hệ thống

Cung cấp một ứng dụng trò chơi, cho phép người dùng sử dụng để xây dựng

và thiệt kê các phòng dê dàng thông qua giao diện đơn giản.

1.1.2 Khảo sát thị trường và các sản phẩm tương tự Khảo sát thị trường

Theo số liệu thông kê về nhà ở năm 2023, Số ngôi nhà mới bắt đầu xây dựng vào năm 2023 cao hơn 15,0% so với mức trung bình 120 tháng trước đó.[I]

e_ Trong 5 năm (2018 đến 2022), trung bình mỗi năm có 1,41 triệu đơn vi nhà ở

thuộc sở hữu tư nhân mới được khởi công.

e 1,67 triệu là số giấy phép nhà ở trung bình hàng năm được cấp phép trong 5

° Tổng số 1,60 triệu nhà ở mới thuộc sở hữu tư nhân bắt đầu được xây dựng vào năm 2021, tăng 16,0% so với năm 2020.

e Tổng số giấy phép nha ở được cấp là 1,74 triệu vào năm 2021, tăng 18,1% so với năm 2020

Trần Thanh Tài - BI9DCCN565

Trang 14

Sep22 0(t22 Nov22 Dec22 Jan’23 Feb2š Mar2š Apr25 May'235 lun 25 Jul'23 Aug23 Sep 2š

Bra New Permits @ New Starts

iPropertyManagement.com data source: U.S Census Bureau

Hình 1.1.Thong kê số lượng nha ở những năm gân đây

Ngoài ra theo Statista [2], số lượng người dùng điện thoại di động trên thế giới

là là 6,567 tỷ người, chiếm 82,16 % dân số thé giới (khoảng 7,992 tỷ người) sở hữu

smartphone Con sô này tăng đáng kế so với năm 2016 khi chỉ có 3,668 tỷ người

dùng, chiếm 49,40 % dân số toàn cau.

Trần Thanh Tài - BI9DCCN565

Trang 15

@ Additional information Show source @

Hình 1.2.Thống kê số lượng người dùng smartphone qua các năm

Từ các sô liệu phân tích trên, có thê thay nhu câu sử dụng điện thoại di động trên

thê giới là rât lớn, đông thời mỗi cá nhân đêu có mong muôn được tự mô phỏngnên một ngôi nhà của riêng mình!

Khảo sát các sản phẩm tương tự:

Sau khi tham khảo 3 ứng dụng phố biến thuộc thé loại Simulator, em rút ra

được các ưu nhược diém như sau:

Ưu điểm Nhược điểm

Flight Simulatơ | Đồ họa và Realism: Microsoft e | Dung lượng ứng dụng quá nặng

Flight Simulator nôi tiêng với đô

(https:// hoa tuyét voi va su chan thuc

www.flightsimu | trong việc mô phỏng máy bay va

lator.com/) môi trường.

® | Sự Da Dạng của Máy Bay: Cung cấp một loạt rộng lớn các loại

máy bay từ những chiếc nhẹ đến

máy bay thương mại vả quân sự.

Trần Thanh Tài - BI9DCCN565

Trang 16

Đồ án tốt nghiệp đại học

Dữ Liệu Thực Tế: Sử dụng dữ

liệu thực tế dé tái tạo môi trường

và điều kiện thời tiết thực tế trên

Nôi tiêng với việc tap trung vàoe

mô phỏng cuộc sông hăng ngày

của nhân vật.

Cung câp nhiêu lựa chọn xây

dựng nhà cửa với giao diện thân

thiện với người chơi.

Đa dạng về nội thất và trang trí.

Hạn chê đôi với các dự án xây

Tap trung vào việc mua ban, sửachữa và trang trí nhà cửa.

Cung cấp trải nghiệm xây dựng

nhà cụ thê và chi tiết.

Thách thức người chơi với

nhiệm vu sửa nhà dé ban lại với

giá cao hơn.

Chưa đủ độ chân thực và hơi đơn

giản so với thực tê

=> Từ các ưu điêm, nhược diém cua 3 ứng dụng em đã rút ra những yêu tô cânphải có ở sản phâm của mình là:

e Giao diện thân thiện, dé sử dụng với người dùng.

Dữ liệu local, có thé dùng offline Đa dạng đồ vật, chất lượng đồ vật.

Dễ dàng tìm kiếm và điều hướng.

Trần Thanh Tài - BI9DCCN565

Trang 17

Đồ án tốt nghiệp đại học

e Dung lượng ứng dụng nhẹ, phủ hợp với nhiều dong máy.e Trải nghiệm chân thực với chất liệu thong dụng

1.1.3 Yêu cầu hoạt động của ứng dụng

e Người dùng truy cập ứng dụng trực tiếp thông qua thiết bi di donge Người dùng có thé xem các video hướng dẫn

e Người dùng có thé tạo một project mới

e Người dùng có thê truy cập và sửa đổi các project cũ

e Người dùng có thé xem các template được tạo sẵn

e Khi truy cập một project, người dùng có thể thêm, sửa, xoá các object trong

project đó

e Người dùng có thé thay đổi kích thước, chất liệu, các thuộc tinh của toàn bộ

object có trong project

Trần Thanh Tai - BI9DCCN565

Trang 18

x zAS

Đô an tot nghiệp đại hoc

1.2 Thiết kế tương tác

TRANG CHỦ DANH SÁCH LOẠI PHÒNG DANH BACH PHÒNG ĐÃ TAO

Doanh sich loại phông,

¬ Danh sách loại phòng Danh sách phẳng đã tạo

“hông 1 Phòng? eter 3

trông ngà | | Phàngan ° hora

DANH SACH DO VAT CHỈNH SỬA ĐỒ VAT

Hình 1.3 Mô hình thiết kế tương tác của hệ thong

Trần Thanh Tài - BI9DCCN565

Trang 19

Scriptable Object Unity Asset

Texture JSON DATA

Thêm vào dữ liệu

Lấy ra dữ liệu

Hình 1.4.Mô hình tổng quát của hệ thống

Trần Thanh Tài - BI9DCCN565

Trang 20

Đồ án tốt nghiệp đại học

1.3.2 Phương pháp xây dựng phần mềm

Mục tiêu của dự án là phát triển một hệ thống có khả năng tách biệt các

nhiệm vụ trong ứng dụng, giúp việc quản lý, mở rộng va bao trì dễ dàng hon Dođó, ứng dụng sẽ được sử dụng phương pháp xây dựng phân mêm theo mô hình

Hình 1.5 Phác thảo mô hình MVC cho hệ thống

1.4 Công nghệ triển khai hệ thống

1.4.1 Unity Engine

Khai niém:

Unity là một nền tảng phát triển trò chơi đa năng được phát triển bởi Unity

Technologies và đã ra mắt lần đầu vào năm 2005 Nền tảng này được sử dụng rộng

rãi trong ngành công nghiệp phát triển trò chơi, đặc biệt là trên các nền tảng

Android và iOS.

Trong lĩnh vực trò choi, Unity là công cụ mạnh mẽ cho việc tạo ra cả trò chơihai chiều (2D) và ba chiều (3D), cũng như mô phỏng các tương tác phức tạp Ngoài

ra, phần mềm này cũng được ưa chuộng và sử dụng rộng rãi trong các lĩnh vực khác

như điện ảnh, kiến trúc, công nghiệp ô tô, và xây dựng

Trần Thanh Tài - BI9DCCN565

Trang 21

Đồ án tốt nghiệp đại học

Tinh năng cơ bản cua Unity:

@ Tạo giao diện UI của Game như tạo drop bar, textbox,

@ Hiền thị mô hình 3D, 2D — hệ thống vật lý 2D, 3D

@ Networking: Hỗ trợ tao game chơi nhiều người cùng lúc

@ Hỗ trợ nèn tảng đặc biệt mới: AR — Augmented reality (Thực tế tăng cường),

VR — Virtual reality (Thực tê ảo)

@ Hỗ trợ hiền thị chữ bằng font đặc biệt

Ưu điểm khi sử dung Unity:

Trên thị trường game quốc tế và Việt Nam, vẫn tồn tại nhiều game engine duoc

ưa chuộng bởi các nha phát triển, chăng hạn như Unreal, CryEngine, và nhiều

engine khác Mỗi engine có ưu điểm và hạn chế riêng biệt và vân được sử dụng

rộng rãi trong các studio phát triển game Riêng về khía cạnh tổng thé của khả năng làm game, Huy đã đề cập đến ba lợi thế quan trọng của Unity như sau:

e Trình chỉnh sửa (Editor): Unity cung cấp một trình chính sửa cho phép nhà phát

triển sắp xếp các đối tượng trong trò chơi mà không cần phải viết mã Người

phát triên có thé dé dang kéo và thả, cũng như thay đổi vị trí của các đối tượngtrực tiếp trong trình chỉnh sửa.

e Da nên tang: Lợi ích thứ hai quan trọng đối với nhiều công ty và nhà phát triển

là tính đa nền tảng của Unity Bằng cách phát triển trò chơi có khả năng hoạt động trên nhiều hệ điều hành quan trọng như máy tính (Mac, Windows, và

Linux), thiết bị di động (iOS, Android), hoặc trình duyệt web (WebGL), Unity

giúp tiết kiệm thời gian và nguồn lực cho doanh nghiệp.

e Miễn phí: Một ưu điểm cuối cùng mà Unity mang lại là tính miễn phí Điều này

thu hút nhiều nhà phát triển lựa chọn sử dụng engine này Tuy nhiên, đối với các

trò chơi được tạo ra miễn phí, buộc phải bao gồm biểu trưng Unity trong tròchơi.

1.4.2 Scriptable Object

Xây dựng một hệ thống với lượng data lớn yêu cau việc quan ly dit liệu một

cách thuận tiện nhât cho việc truy xuât cũng như lưu trữ.

Trần Thanh Tài - BI9DCCN565

Trang 22

Đồ án tốt nghiệp đại học

ScriptableObject là một lớp cơ bản trong Unity, cho phép lưu trữ dữ liệukhông phụ thuộc vào các đối tượng trong Scene Điều này giúp tạo ra các tài

nguyên đữ liệu có thể tái sử dụng và đễ dàng quản lý.

Ưu điểm của Scriptable Object:

Tách rời dữ liệu từ Scene: ScriptableObject giúp tách rời dữ liệu từ Scene, cho.phép tạo và chỉnh sửa dữ liệu mà không cần mở Scene Điều này tiện lợi khi cần

thay đôi giá trị, thử nghiệm và cập nhật dữ liệu mà không làm ảnh hưởng đến

cầu trúc của Scene.

Tái sử dụng dé dang: Có thé tạo ra các ScriptableObject dé lưu trữ cấu hình, tai

nguyên, hoặc bat kỳ dit liệu nào cần được chia sẻ giữa nhiều đối tượng trong

game Điều này giúp giảm sự phụ thuộc và tăng khả năng tái sử dụng.

Dễ dàng quản lý và mở rộng: ScriptableObject tạo ra một cách thuận tiện dé

quản ly đữ liệu Có thé tạo và tổ chức ScriptableObject trong thư mục Assets,

giúp dé dàng theo dõi và mở rộng hệ thống dữ liệu.

Hỗ trợ Serialize: ScriptableObject được hỗ trợ trong quá trình serialize, điều này

có nghĩa là có thể lưu trữ và giữ nguyên dữ liệu của nó sau cả khi thoát và khởi

động lại ứng dụng.

Sử dụng trong Editor: ScriptableObject có thé được sử dung dé tạo các công cụ

và tùy chọn tùy chỉnh trong trình soạn thao cua Unity, giúp tối ưu hóa quá trình phát triển và làm cho các tác vụ lặp lại trở nên dễ dàng.

Hiệu suất tốt: Sử dụng ScriptableObject giúp giảm bớt việc thực hiện

serialize/deserialize đối tượng trong Scene, giảm tải cho CPU và cải thiện hiệu

suất của ứng dụng.

1.4.3 Shader Code

Shader code là một phan quan trọng trong lập trình đồ họa, được sử dụng dé

mô tả cách các đối tượng và hiệu ứng được vẽ và hiển thị trên màn hình Trong ngữ

cảnh của trò chơi và đồ họa máy tính, shader code thường được viết bằng ngôn ngữlập trình shader như OpenGL Shading Language (GLSL), DirectX High-Level

Shading Language (HLSL), hoặc ShaderLab trong Unity.

Trần Thanh Tai - BI9DCCN565

Trang 23

Hinh 1.6 Vi du vé ShaderLab trong Unity

Lợi ich của việc sử dung shader code bao gôm khả năng tôi ưu hóa hiệu suât,

tạo ra hiệu ứng đồ họa phức tạp, và kiêm soát mọi khía cạnh của việc hiển thị đối tượng trên màn hình Shader code đóng vai trò quan trọng trong việc tạo ra trải

nghiệm đô họa động và hap dan trong trò chơi và ứng dụng đa phương tiện.

1.5 Kết luận chương

Như vậy, ở chương 1 đồ án đã giới thiệu tông quan về đề tài bao gồm những nội dung sau:

Khảo sát về hiện trạng của ngành xây dựng vào công nghệ hiện nay Xác định mục tiêu và mục tiêu nghiên cứu của đề tài.

Xác định phương pháp dé thực hiện dé tai.

Giới thiệu về các công nghệ và công cụ được sử dung dé thực hiện đề tài.

Dựa vào bài toán đã được đặt ra ở chương này, chương tiếp theo đồ án sẽ thực hiện xây dựng phân tích và thiết kế cho hệ thống

CHƯƠNG 2 CÔNG NGHỆ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG NHÀ

Trong chương này, ta tập trung nghiên cứu vào bộ khung xương của ứng

dụng, những thành phần công nghệ chủ yếu duoc sử dung trong ứng dụng.

Trần Thanh Tài - BI9DCCN565

Trang 24

Đồ án tốt nghiệp đại học

2.1 Hệ thống unity 3D 2.1.1 Giới thiệu

Như đã đề cập ở mục 1.4.2, Unity là một trang phần mềm phát triển trò chơi

và ứng dụng 3D phô biến Hệ thống 3D của Unity cung cap môi trường phát triểnmạnh mẽ và linh hoạt cho các nhà phát triển dé tạo ra các trò choi va ứng dụng

động đa dạng Đặc biệt với hệ thống xây dựng nhà mô phỏng trong không gian 3D,

việc sử dụng môi trường 3D của Unity là hoàn toàn phù hợp.

2.1.2 _ Thành phan chính

Game Objects (Đối tượng trò choi):

e Là các phan cơ bản của môi trường 3D trong Unity.

e Đại diện cho toàn bộ thực thé trong ứng dụng bao gồm phòng, đồ vật, ánh sáng,

Components (Bộ phan):

e Là các thành phần được đính kèm vào Game Objects dé định rõ tinh chat và

hành vi của chúng.

e Các Components quan trọng bao gồm Transform (vị trí, quay, tỷ lệ), Mesh

Renderer (hiên thị hình dang 3D), Collider (xác định vùng va chạm), và

Animator (quản lý animation).

Hình 2.7 Các Component chuyên dụng trong hệ thống

Trong đó, Component Transform là thông dụng nhất, được dùng dé chỉnh vị trí,

kích thước, góc xoay của đô vật Component MeshRenderer nhận vào các

lưới(Mesh) thể hiện hình dạng của đồ vật, thuộc tính material cho phép vật được

render theo chất liệu sẵn có, ngoài ra còn một vai cài đặt khác như đồ

Trần Thanh Tài - BI9DCCN565

Trang 25

Đồ án tốt nghiệp đại học

bóng(Shadows), phản xạ(Reflection), Cuối cùng, Collider là Component được

dùng đê xử lý va chạm và các thao tác kéo thả đô vật.

Ngoài ra, mỗi script khi được gắn vào Game Object cũng được xem như một Component

Materials (Vật liệu):

e Định nghĩa các đặc tính vật liệu của một đôi tượng như màu sắc, độ bóng, và

ánh sáng phản xạ.

e Materials thường được gan cho Mesh Renderer(Hình 2.1), đây cũng là mộtthành phân rât được chú trọng trong ứng dụng.

Shaders (Bộ vi xử lý đồ họa):

e Định rõ cách mà vật liệu phản ánh ánh sáng va màu sắc.

e Unity hỗ trợ nhiều loại shaders dé tạo ra các hiệu ứng đồ họa đa dạng Lighting (Chiếu sáng):

e Hệ thống chiếu sáng của Unity bao gồm nhiều loại đèn như Directional Light,

Point Light, va Spot Light.

e Cung cấp các tính năng như Global Illumination để mô phỏng ánh sáng lan toa

trong môi trường.Camera (Máy ảnh):

e Định rõ góc nhìn va cách nhìn của người chơi hoặc người dùng.

e Có thể cấu hình thông số như cận cảnh, góc nhìn, và độ chệch.

e Cung cấp các tính năng vật ly như trong lực, va cham, và độ ma sat.

e_ Collider và Rigidbody là các Components quan trọng dé xác định hình dang và

động lực.

Trần Thanh Tài - BI9DCCN565

Trang 26

Đồ án tốt nghiệp đại học

Particle System (Hệ thống hạt):

e Cho phép tạo ra các hiệu ứng như hỏa, khói, và mưa.

e Điều chỉnh các tham số như tốc độ, hướng, và kích thước của hạt.

Asset Import Pipeline (Đường ống nhập tài nguyên):

e Hỗ trợ quá trình nhập va quản ly tài nguyên như model 3D, texture, âm thanh,

và video.

2.2 Builder Pattern

2.2.1 Vấn đề khởi tao ham trong hệ thống lớn

Ở hau hết ngôn ngữ lập trình, trong mỗi lớp đều có những ham constructor và nếu chúng không được khai báo thì trình biên dịch sẽ tự động xây dựng một hàm constructor mặc định cho lớp ay Khi chúng ta xây dựng, ta cũng thé tùy ý lựa chọn

những tham số truyền vào cho constructor miễn là nó hữu ích.

Như vậy, vấn đề đặt ra ở đây khi một đối tượng có thể được khởi tạo với rất

nhiêu những tham sô truyện vào va có thê một vai trong sô đó không nhât thiệt phảitruyền vào trong lúc khởi tao:

Hình 2.8 Van dé trong lập trình với constructor

Có một phương án dé giải quyết, đó là bằng cách truyền những giá trị null

vào tham số trong hàm constructor hoặc là nạp chồng nhiều ham constructor khác

với những tham số tùy ý Khi đó cấu trúc lớp sẽ trông như sau:

Trần Thanh Tài - BI9DCCN565

Trang 27

Đồ án tốt nghiệp đại học

Student(String 1d, String firstName, String lastName.id = id;

= id;

Hình 2.9 Phương án giải quyết trong van dé constructor

Cách này có thể giải quyết một số trường hợp nhưng sẽ có những nhược điểm như

e Phải tao rất nhiều ham constructor trong những trường hợp khác nhau

e Khó khăn trong việc xác định thứ tự của những tham số truyền vào

Vậy liệu có cách nào để giải quyết vấn đề này không? 2.2.2 Giới thiệu về Builder Pattern

e Builder là một mau thiết kế thuộc nhóm Creational Pattern — những mẫu thiết kế

cho việc khởi tạo đôi tượng của lớp

e Builder Pattern là một mẫu thiết kế được dùng dé cung cấp một giải pháp linh

hoạt cho các van đê tạo đôi tượng (object) khác nhau trong lập trình hướng đôi

e_ Cho phép xây dựng các đối tượng phức tạp bằng cách sử dụng các đối tượng

đơn giản và sử dụng tiếp cận từng bước Builder Pattern còn cho phép tạo ra các

kiêu thê hiện khác nhau của một đôi tượng băng cách sử dụng cùng một

constructor code.

Trần Thanh Tài - BI9DCCN565

Trang 28

Đồ án tốt nghiệp đại học

Tại sao chọn builder Pattern cho hệ thống?

Hình 2.10 Mô hình hệ thong nhà nhiễu thành phan

Xây dựng một ứng dụng nhà mô phỏng yêu cầu một lượng đầu vào

constructor rất lớn, đồng thời yêu cầu sự mở rộng, linh hoạt cao, do đó BuilderPattern chắc chắn sẽ là phương pháp phù hợp đề làm bộ khung chính cho dự án.

Ngoài ra, Builder Pattern còn có những ưu điểm không không hề nhỏ hỗ trợ

cho sự linh hoạt của hệ thông.

Ưu điểm của Builder Pattern?

Builder Pattern được thiết kế dé giải quyết một số van dé chung xuất hiện

trong quá trình xây dựng đối tượng, đặc biệt là khi đối tượng đó có nhiều thành

phần hoặc cần được xây dựng theo nhiều cách khác nhau Dưới đây là một số mục

đích quan trọng cua Builder Pattern:

- Tach biệt quá trình xây dựng và biéu diễn:

e Builder Pattern cho phép chúng ta tách biệt quá trình xây dựng đối tượng từ cách

đối tượng được biểu diễn.

e Client không cần biết chi tiết về cách đối tượng được xây dựng hoặc cách các thành phân được tạo ra.

- Linh họat quá trình xây dựng:

Trần Thanh Tài - BI9DCCN565

Trang 29

Đồ án tốt nghiệp đại học

Khi một đối tượng có nhiều thành phần và cách xây dựng có thé thay đổi,

Builder Pattern giúp linh hoạt chọn cách xây dựng phù hợp tùy thuộc vào yêu

câu hoặc ngữ cảnh.

- Tránh constructor overload:

Khi có quá nhiều tham số trong constructor, đặc biệt là khi một số tham số là tùy

chọn, code trở nên khó đọc và bảo trì.

Builder Pattern giảm sự phức tạp của constructor và giúp tránh việc có quá nhiều

phiên ban constructor (constructor overload).

- H6 tro immutable objects:

Builder Pattern thường được sử dụng dé xây dựng immutable objects, tức là các

đối tượng không thé thay đổi sau khi đã được tạo.

Các phương thức của builder thường trả về một phiên bản mới của chính builder

đó, giúp g1ữ nguyên tính không thay đôi của đôi tượng.

- Dễ mở rộng:

Nếu cần thêm các thành phần mới cho đối tượng, ta chỉ cần thêm phương thức

vào builder mà không ảnh hưởng đên client code.

Builder Pattern làm cho quá trình mở rộng đối tượng trở nên dé dang ma không làm thay đôi code hiện tại.

- Đồng nhất quy trình xây dựng:

Builder Pattern giúp định rõ các bước cần thiết dé xây dựng một đối tượng, giúp

đồng nhất quy trình xây dựng và giảm kha năng quên một số bước quan trọng.

2.2.3 Cấu trúc của Builder Pattern Các thành phần trong mô hình:

Builder: Giao diện Builder khai báo các bước product construction chung cho tất

cả các loại builder Abstract interface đê tạo nên các đôi tượng sản pham ( objectproduct )

Concrete Builder: Cung cấp các cách triển khai khác nhau của các bước

construction cho Builder Cac concrete builder có thê tạo ra các product không

tuân theo giao diện chung.

ConcreBuilder: Là một object có thé xây dựng nên các object khác Xây dựng

và lap ráp các phân đê xây dựng object.

Trần Thanh Tài - BI9DCCN565

Trang 30

Đồ án tốt nghiệp đại học

@ Products: Là các đối tượng kết quả Các product do các builder khác nhau tạo ra

không nhât thiệt phải thuộc cùng một hệ thông phân câp hoặc giao diện lớp.

e Director: Lớp Director xác định thứ tự gọi các bước construction, vì vậy có thêtạo và sử dụng lại các câu hình cụ thê của product.

@ Client: Client phải liên kết một trong các đối tượng trình tạo với director Thông

thường, nó chỉ được thực hiện một lân, thông qua các tham sô của hàm tạo của

director Sau đó, director sử dung builder object đó cho tat cả các construction

tiép theo.

Trần Thanh Tai - BI9DCCN565

Trang 31

Tóm lại, thông qua việc phân tích chi tiết trong Chương 2 của đồ án, ta đã có

cơ hội hiệu rõ vê những công nghệ hàng dau được tích hợp trong ứng dụng Trong

đó, hệ thong Unity 3D và mô hình thiệt kê Builder Pattern đã nôi bật lên như những

Trần Thanh Tài - BI9DCCN565

Trang 32

Đồ án tốt nghiệp đại học

yếu tô chính, đóng vai trò quan trọng trong việc xây dựng và phát triển ứng dụng.

Sự tích hợp của những thành phần này không chỉ tạo nên sự độc đáo và đặc sắc củaứng dụng mà còn góp phần định hình những ưu điểm và khả năng mở rộng của nó.

Việc sử dụng hệ thống Unity 3D mang lại khả năng tương tác và trải nghiệm

người dùng độc đáo, trong khi mô hình Builder Pattern giúp: tối ưu hóa quá trình

xây dựng và quản lý các thành phần của ứng dụng Cả hai yếu tố này không chỉ tạora một ứng dụng mạnh mẽ từ góc độ kỹ thuật mà còn mang lại trải nghiệm người

dùng tốt nhất có thé.

Đồ án đã chú trọng vào việc phân tích các công nghệ này không chỉ để hiểu rõ về

tính năng của chúng ma còn dé a áp dụng chúng một cách linh hoạt và hiệu quả trong

ngữ cảnh cụ thê của ứng dụng Điều này đặt nên móng cho sự thành công của dự án

và đồng thời tạo ra tiềm năng phát triển và mở rộng trong tương lai.

Trần Thanh Tài - BI9DCCN565

Trang 33

CHUONG 3 PHAN TÍCH VÀ THIET KE HE THONG

Trong chương này, đồ án sẽ tập trung vào việc trình bay phân tích thiết kế cho toàn bộ hệ thông và phân tích thiệt kê chi tiệt cho từng module có mặt trong trong hệ

3.1 Phân tích hệ thống

3.1.1 Biểu đồ Use Case va Scenario

Actor chính của hệ thong là người dùng.

Hệ thông nha mé phỏng

fan toàn bộ đô vat

đổi cài đặt phố “““ <<Exlend>

Thay đổi chất liệu san = mameextension points

SELES “vm NaHiển thị lưới

Sửa đồ vật trong phòng Tao chat liệu mới

Xem danh sách loại đỗ vật \ ^^” ^^ ^^ ^^ z ExtensionPoint c

Trang 34

3.1.2 Danh sách Use Case và Scenario tương ứng

Module tạo phòng mới:

Hình 3.13 Use Case module tạo phòng mới

Bang 3.1 Kich ban module tao phong moi

Tén Use case Tao phong moi

Tac nhan chinh Người dùng

Điều kiện tiên quyết Người dùng đã truy cập ứng dụng

Hậu điều kiện Người dùng tạo phòng mới thành công

Chuỗi sự kiện chính 1 Người dùng truy cập vào ứng dụng.

2 Giao diện chính hiển thị các đề mục

3 Người dùng chọn vào Thêm phòng mới 4 Giao diện phòng mới hiển thị

Trang 35

Ngoại lệ Không có ngoại lệ

Module chỉnh sửa phòng

Bảng 3.2 Kịch bản module chính sửa phòng

Tên Ủse case Chỉnh sửa phòng

Tác nhân chính Người dùng

Điều kiện tiên quyết Người dùng truy cập ứng dụng

Hậu điều kiện Người dùng thêm đồ vật thành công

Chuỗi sự kiện chính 1 Người dùng truy cập vào ứng dụng.

2 Giao diện chính hiền thị các đề mục

3 Người dùng chọn vào một phòng đã tạo

Ngoại lệ Không có ngoại lệ

Trang 36

Module xem video hướng dẫn

Người dùng

Hình 3.14 Use Case module xem video hướng dẫn

Bang 3.3 Kịch ban module xem video hướng dan

Tên Use case Xem video hướng dan

Tac nhan chinh Người dùng

Điều kiện tiên quyết Người dùng truy cập ứng dụng

Hậu điều kiện Người dùng xem video hướng dẫn thành

Chuỗi sự kiện chính 1 Người dùng truy cập vào ứng dụng.2 Giao diện chính hiển thị các đề mục

3 Người dùng chọn vào phần “Tutorials”

Trang 37

5 Người dụng chọn một video bat ki

6 Ung dụng dan đến video tương ứng trên

nên tảng youtube

5.2 Ứng dụng hiển thị video không tồn tại

Module thêm đồ vật

Bảng 3.4 Kịch bản module thêm đồ vật

Tên Use case

Điều kiện tiên quyếtNgười dùng đã truy cập giao diện chỉnhsửa phòng

Hậu điêu kiệnNgười dùng thêm đồ vật thành công

Chuỗi sự kiện chính1 Người dùng click vào button “AddObject”

2 Ứng dung hiển thi popup gồm các loại

đô vật theo môi trường sử dụng

Trang 38

3 Người dùng click vào một loại bat kì4 Ứng dụng hiển thị các loại đồ vật theo

mục đích sử dụng nắm trong môi trường

Ngoại lệ Không có ngoại lệ

Module thay đối chất liệu sàn

Người dùng

Hình 3.15 Use Case mudule thay đổi chất liệu sàn

Ngày đăng: 28/03/2024, 10:08

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

Tài liệu liên quan