基于Threejs的數(shù)字孿生虛擬現(xiàn)實 博物館的Web實現(xiàn)_第1頁
基于Threejs的數(shù)字孿生虛擬現(xiàn)實 博物館的Web實現(xiàn)_第2頁
基于Threejs的數(shù)字孿生虛擬現(xiàn)實 博物館的Web實現(xiàn)_第3頁
基于Threejs的數(shù)字孿生虛擬現(xiàn)實 博物館的Web實現(xiàn)_第4頁
基于Threejs的數(shù)字孿生虛擬現(xiàn)實 博物館的Web實現(xiàn)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGEII基于Three.js的數(shù)字孿生虛擬現(xiàn)實博物館的Web實現(xiàn)摘要:中華文化源遠(yuǎn)流長,在互聯(lián)網(wǎng)時代,新技術(shù)的發(fā)展為保護(hù)和傳播傳統(tǒng)文化提供了更多的方法。數(shù)字孿生虛擬博物館可以通過互聯(lián)網(wǎng)媒介滿足人民群眾云游覽博物館的需求。與傳統(tǒng)的博物館網(wǎng)頁相比,使用虛擬化技術(shù)可以更加仿真地展示文物藏品,使得游客可以身臨其境地沉浸式游覽,提供了更加豐富、生動的文化體驗。本論文工作在于實現(xiàn)一個基于了數(shù)字孿生虛擬現(xiàn)實博物館的網(wǎng)站的訪客端和管理員端,并通過RealityCapture軟件對文物掃描建模后將模型上傳網(wǎng)站測試。項目以Three.js技術(shù)為核心,主要工作在于網(wǎng)頁3D引擎的構(gòu)建。通過該引擎,用戶可以在網(wǎng)站體驗到三維空間的交互,訪問成本低,相對二維的網(wǎng)頁效果更加逼真。網(wǎng)站主要功能在于實現(xiàn)全景圖的導(dǎo)覽以及三維模型的瀏覽兩大功能模塊,訪客端供訪客訪問參觀,管理員端供管理員和上傳者進(jìn)行相關(guān)的全景圖和三維模型的管理。通過訪客端盒管理員端的數(shù)據(jù)聯(lián)通,使得整個系統(tǒng)成為一個整體,管理員端更新的數(shù)據(jù)可以同步到訪客端進(jìn)行展示。關(guān)鍵詞:數(shù)字孿生,虛擬現(xiàn)實,數(shù)字博物館,Three.js、RealityCaptureWebimplementationofadigitaltwinvirtualrealitymuseumbasedonThree.jsAbstract:Chineseculturehasalonghistory,andintheageoftheInternet,thedevelopmentofnewtechnologiesprovidesmorewaystoprotectandspreadtraditionalculture.Digitaltwinvirtualmuseumscanmeetthepeople'sdemandforcloudtoursofmuseumsthroughthemediumoftheInternet.Comparedwithtraditionalmuseumwebpages,theuseofvirtualizationtechnologycandisplayculturalreliccollectionsinamoresimulatedway,allowingvisitorstotakeanimmersiveandimmersivetour,providingaricherandmorevividculturalexperience.Theworkofthisthesisistorealizethevisitorandadministratorsideofawebsitebasedonthedigitaltwinvirtualrealitymuseum,anduploadthemodeltothewebsitefortestingafterscanningandmodelingtheartifactsbyRealityCapturesoftware.TheprojectiscenteredonThree.jstechnology,andthemainworkliesintheconstructionoftheweb3Dengine.Throughthisengine,userscanexperiencetheinteractionofthree-dimensionalspaceinthewebsite,withlowaccesscostandmorerealisticeffectcomparedwiththetwo-dimensionalwebpage.Themainfunctionofthewebsiteistorealizethepanoramaguideand3Dmodelbrowsingtwofunctionalmodules,thevisitorsideforvisitorstovisit,andtheadministratorsideforadministratorsanduploaderstocarryouttherelevantpanoramaand3Dmodelmanagement.Throughthedatalinkageofthevisitor'sendandtheadministrator'send,thewholesystembecomesawhole,andtheupdateddataoftheadministrator'sendcanbesynchronizedtothevisitor'sendfordisplay.Keywords:DigitalTwin,VirtualReality,DigitalMuseum,Three.js,RealityCapturePAGE131、緒論1.1研究背景1.1.1虛擬現(xiàn)實技術(shù)與數(shù)字孿生技術(shù)20世紀(jì)80年代美國便有了虛擬現(xiàn)實技術(shù),最初是簡單地構(gòu)建三維環(huán)境。REF_Ref24373\r\h[1]而如今虛擬現(xiàn)實技術(shù)可以通過計算機技術(shù)創(chuàng)造出的仿真環(huán)境,讓用戶能夠沉浸在其中并與之交互。這項技術(shù)利用了專門的硬件設(shè)備,如頭戴式顯示器和手柄,以及軟件程序來模擬視聽和觸覺體驗,創(chuàng)造出一種似乎真實存在的虛擬世界。虛擬現(xiàn)實強調(diào)沉浸感交互性和構(gòu)想性。REF_Ref24588\r\h[2]二維的交互形式可以讓用戶滿足基礎(chǔ)的信息交互,但體驗感不足。三維的交互形式不僅滿足了基本的操作,還可以使用戶沉浸在一個仿真的空間,讓用戶的真實感更強。這個仿真的空間可以是現(xiàn)實中無法到達(dá)但客觀存在的地方,也可以是完全虛構(gòu)的想象空間。如今,虛擬現(xiàn)實技術(shù)已經(jīng)被廣泛應(yīng)用于娛樂、教育、醫(yī)療等領(lǐng)域。數(shù)字孿生技術(shù)是一項革新性技術(shù),它將物理實體或過程數(shù)字化建模和仿真,從而創(chuàng)造出現(xiàn)實世界的虛擬鏡像。REF_Ref24660\r\h[3]這些數(shù)字鏡像被廣泛運用于預(yù)測、優(yōu)化和監(jiān)測現(xiàn)實世界中的各種物體、系統(tǒng)或流程。數(shù)字孿生技術(shù)是物理世界與數(shù)字世界完美融合的典范,其應(yīng)用領(lǐng)域橫跨制造業(yè)、能源、醫(yī)療和城市規(guī)劃等多個領(lǐng)域。該技術(shù)的核心在于建立精準(zhǔn)的數(shù)字模型,該模型能夠忠實地反映現(xiàn)實世界的物理特性和行為。這一模型通常依賴于大量的數(shù)據(jù)和復(fù)雜的算法支持,包括傳感器數(shù)據(jù)、物理原理以及機器學(xué)習(xí)等。一旦建立了數(shù)字孿生模型,就可以通過仿真和分析來深入理解物理系統(tǒng)的運行方式,并進(jìn)行各種預(yù)測和優(yōu)化。數(shù)字孿生技術(shù)的發(fā)展還帶來了許多潛在的好處,包括減少成本、提高效率、降低風(fēng)險等。通過數(shù)字孿生,用戶可以在虛擬環(huán)境中進(jìn)行模擬和實驗,以預(yù)測和評估各種決策的影響,從而更好地制定戰(zhàn)略和規(guī)劃。1.1.2線上數(shù)字博物館線上數(shù)字博物館簡介線上數(shù)字博物館通常通過虛擬展覽館或者網(wǎng)站展示來呈現(xiàn)其收藏的文物。通過高清晰度的圖片、視頻、文字描述和互動元素,線上數(shù)字博物館可以提供與實體博物館類似的學(xué)習(xí)和欣賞體驗。數(shù)字化技術(shù)可以為傳統(tǒng)文化的推廣賦能、讓傳統(tǒng)文化以新的方式走向世界。REF_Ref24947\r\h[4]觀眾可以在家中或者任何有互聯(lián)網(wǎng)連接的地方,隨時隨地瀏覽博物館的藏品,了解其歷史和文化背景。線上數(shù)字博物館的優(yōu)勢在于其便捷性和無障礙性。REF_Ref21864\r\h[5]觀眾無需花費時間和金錢去實際參觀博物館,而是可以根據(jù)自己的時間安排,隨時進(jìn)行參觀和學(xué)習(xí)。此外,線上數(shù)字博物館還可以利用數(shù)字化技術(shù)呈現(xiàn)文物的細(xì)節(jié)和多樣性,使得觀眾可以更深入地了解藏品。雖然線上數(shù)字博物館為觀眾提供了更加便利的參觀體驗,但與實體博物館相比,仍然存在一些局限性。例如,線上數(shù)字博物館無法提供實體博物館中的真實觸感和氛圍體驗。此外,一些文物可能無法通過數(shù)字化方式完全展示其獨特之處??偠灾瑪?shù)字博物館提供了一種游覽博物館的全新選擇,為人們探索和欣賞世界各地的文化遺產(chǎn)提供了更廣闊的空間。隨著數(shù)字技術(shù)的不斷發(fā)展,線上數(shù)字博物館有望在未來進(jìn)一步拓展其展示和教育功能,為觀眾帶來更加豐富和多樣化的體驗。REF_Ref22396\r\h[6]線上數(shù)字博物館典型1)國內(nèi)線上數(shù)字博物館 故宮博物院是中國最著名的博物館之一,位于中國首都北京,是保護(hù)和展示中國傳統(tǒng)文化的珍貴遺產(chǎn)的重要場所。隨著數(shù)字化技術(shù)的發(fā)展,故宮博物院也在不斷嘗試?yán)没ヂ?lián)網(wǎng)平臺。目前,故宮博物院的線上網(wǎng)站提供了二維藏品展覽和三維全景圖導(dǎo)覽兩種主要形式的展示。通過二維藏品展覽,觀眾可以瀏覽博物館的藏品圖片和相關(guān)的文字描述,了解每件文物的歷史背景和文化價值。REF_Ref22892\r\h[7]上海博物館位于中國上海,作為中國重要的地方博物館之一,不僅擁有豐富的實體展品,還在數(shù)字化展示方面取得了重要進(jìn)展。該博物館通過建立數(shù)字文物庫,為公眾提供了便捷的文物檢索功能,使得人們能夠輕松地瀏覽和了解其收藏的珍貴文物。2)國外線上數(shù)字博物館美國華盛頓特區(qū)坐落著國立自然歷史博物館。該博物館擁有豐富的自然歷史標(biāo)本和展品。為了讓更多的人能夠欣賞和學(xué)習(xí)這些珍貴的展品,該博物館開發(fā)了全景圖線上導(dǎo)覽服務(wù)。通過這項服務(wù),觀眾可以在互聯(lián)網(wǎng)上通過高清全景圖像,仿佛置身于博物館內(nèi),進(jìn)行虛擬導(dǎo)覽。無論是想要了解恐龍骨架的壯觀,還是想要近距離觀察古生物化石,觀眾都可以通過這項線上導(dǎo)覽服務(wù)在家中或任何有網(wǎng)絡(luò)連接的地方,盡情探索博物館的收藏。位于俄羅斯圣彼得堡的埃爾米塔什博物館是世界上最大的藝術(shù)與文化博物館之一,享譽全球。其收藏包括了來自世界各個時期和地區(qū)的藝術(shù)品和文物。為了讓更多人能夠欣賞到這些珍貴的藏品,該博物館提供了虛擬導(dǎo)覽服務(wù),包含多個場館的全景圖。1.2研究現(xiàn)狀1.2.1國外研究現(xiàn)狀在當(dāng)今科技高度發(fā)達(dá)的時代,人們對數(shù)字化博物館的參觀需求已經(jīng)遠(yuǎn)遠(yuǎn)超出了過去簡單的圖片和文字展示。隨著虛擬現(xiàn)實技術(shù)和相關(guān)計算機技術(shù)不斷成熟,新的三維交互技術(shù)形式正逐漸成為主流。不僅如此,一些博物館還積極致力于數(shù)字化文物的收集和展示。它們運用先進(jìn)的數(shù)字化技術(shù)對文物進(jìn)行高精度的掃描和建模,然后將這些數(shù)字化的珍品展示在在線平臺上,供觀眾隨時隨地進(jìn)行瀏覽和學(xué)習(xí)。REF_Ref24107\r\h[8]以盧浮宮博物館為例,想要參觀該博物館的用戶可以通過在線平臺進(jìn)行線上漫游,從而沉浸式地感受盧浮宮的珍藏。數(shù)字創(chuàng)新不僅為促進(jìn)博物館與社區(qū)之間的交流提供了重要保障,同時也加速了文化遺產(chǎn)的數(shù)字化進(jìn)程。REF_Ref25088\r\h[9]1.2.2國內(nèi)研究現(xiàn)狀國內(nèi)數(shù)字化博物館的研究現(xiàn)狀表現(xiàn)出了快速發(fā)展和多樣化的趨勢。REF_Ref24718\r\h[10]隨著數(shù)字技術(shù)的不斷進(jìn)步,越來越多的博物館開始意識到數(shù)字化的重要性,并致力于將傳統(tǒng)的展覽和收藏轉(zhuǎn)化為數(shù)字化形式,以便更廣泛地向公眾展示和傳播文化遺產(chǎn)。而且已經(jīng)將研究結(jié)果應(yīng)用到“數(shù)字化收藏品和展覽”、“虛擬現(xiàn)實參觀”、“數(shù)字化文獻(xiàn)和檔案管理”等多個方面。數(shù)字化博物館的研究呈現(xiàn)出多層次、多樣化的發(fā)展趨勢。一方面,學(xué)者們致力于開發(fā)更先進(jìn)的虛擬現(xiàn)實技術(shù),以提供更沉浸式的博物館體驗。另一方面,研究者們也在探索如何更好地將數(shù)字化技術(shù)與博物館展覽相結(jié)合,以推動觀眾的參與度和互動性。在數(shù)字化技術(shù)的探索過程中,建模是一個至關(guān)重要的環(huán)節(jié)。許多國內(nèi)研究機構(gòu)都在進(jìn)行對建模技術(shù)的全新探索。例如,他們利用轉(zhuǎn)盤和機械臂輔助掃描,采集文物空間信息;還應(yīng)用無人機傾斜攝影測量技術(shù)進(jìn)行高精度的測量。REF_Ref24871\r\h[11]這些技術(shù)的發(fā)展不僅為數(shù)字化博物館的展示提供了更多可能性,也為保護(hù)和傳承文化遺產(chǎn)提供了有力支持。1.3工作量與創(chuàng)新點1.3.1工作內(nèi)容需求分析與設(shè)計使用UML工具,根據(jù)軟件需求分析和軟件設(shè)計的相關(guān)知識,編寫需求文檔和相關(guān)模型分析,例如類圖、流程圖等。通過這些模型分析,可以使得需求工作細(xì)化,將項目用可視化的形式展現(xiàn)出來,便于理解,有利于后續(xù)的開發(fā)工作。REF_Ref26452\r\h[12]虛擬現(xiàn)實博物館網(wǎng)站的實現(xiàn)訪客端實現(xiàn):訪客端工作量最大,主要使用Three.js技術(shù)實現(xiàn)兩個功能:全景圖的導(dǎo)覽和三維模型瀏覽。訪客可以通過鼠標(biāo)進(jìn)行交互,例如拖動全景圖相機視角來進(jìn)行導(dǎo)覽,點擊查看相關(guān)描述信息。對于三維模型瀏覽,訪客可以通過鼠標(biāo)切換三維模型的角度,點擊查看模型的相關(guān)信息。管理員端實現(xiàn):管理員端的實現(xiàn)任務(wù)也相對復(fù)雜,主要由注冊登錄功能和四個功能模塊組成。注冊登錄功能涵蓋了系統(tǒng)管理員、博物館用戶和一般上傳者三個角色,他們根據(jù)賬號權(quán)限不同而被賦予不同的權(quán)限。系統(tǒng)管理員具有最高權(quán)限,可以管理用戶,而博物館用戶和一般上傳者的功能基本相同,但前者會被特殊標(biāo)識以供訪客識別。此外,管理員端還具備用戶管理、場館管理、三維模型管理和全景圖管理四大功能模塊。系統(tǒng)管理員能夠升級、降級、刪除用戶,用戶可以對場館信息進(jìn)行增刪改查,對三維模型和全景圖也可以進(jìn)行類似的操作。數(shù)據(jù)庫與后端實現(xiàn) 此部分工作量較小,非項目實現(xiàn)重難點,主要工作是數(shù)據(jù)庫的設(shè)計以及相關(guān)數(shù)據(jù)的端口編寫和圖片的上傳。拍照建模測試試用網(wǎng)站,對真實物品拍照掃描,用自動化建模工具RealityCaptureCapturingReality軟件公司開發(fā)的RealityCapture(捕捉現(xiàn)實)是一款攝影測量軟件,它具備自動化創(chuàng)建基于圖像或激光掃描數(shù)據(jù)的三維網(wǎng)格、紋理貼圖、正射影像及其他多種應(yīng)用場景的功能。通過這款軟件,用戶可以輕松地將現(xiàn)實世界中的景物捕捉并轉(zhuǎn)化為精確的數(shù)字模型,實現(xiàn)對于真實環(huán)境的快速數(shù)字化。CapturingReality軟件公司開發(fā)的RealityCapture(捕捉現(xiàn)實)是一款攝影測量軟件,它具備自動化創(chuàng)建基于圖像或激光掃描數(shù)據(jù)的三維網(wǎng)格、紋理貼圖、正射影像及其他多種應(yīng)用場景的功能。通過這款軟件,用戶可以輕松地將現(xiàn)實世界中的景物捕捉并轉(zhuǎn)化為精確的數(shù)字模型,實現(xiàn)對于真實環(huán)境的快速數(shù)字化。1.3.2創(chuàng)新點虛擬現(xiàn)實技術(shù)應(yīng)用于博物館虛擬博物館以其引人入勝的互動性、出色的沉浸體驗和解放時空的特質(zhì)而著稱。REF_Ref26605\r\h[13]觀眾不再受制于傳統(tǒng)博物館的時空限制,在這個數(shù)字化環(huán)境中,他們可以隨時隨地通過網(wǎng)絡(luò)訪問到豐富多樣的展品和文化遺產(chǎn)。與此同時,虛擬博物館的互動性使得觀眾可以積極參與展覽,與展品進(jìn)行互動、探索和學(xué)習(xí),從而獲得更為豐富和深入的體驗。REF_Ref27059\r\h[14]當(dāng)今生活節(jié)奏越來越快,人們對通過網(wǎng)絡(luò)進(jìn)行虛擬博物館漫游的需求也隨之增加。這種趨勢使得博物館采用虛擬現(xiàn)實技術(shù),并以網(wǎng)站的形式呈現(xiàn)給用戶成為可能。這種做法不僅能夠服務(wù)更廣泛的人群,還能打破地域和時間的限制,讓更多的人能夠輕松地享受到博物館的文化和歷史魅力。通過虛擬漫游,人們可以在繁忙的生活中抽出寶貴的時間,隨時隨地探索世界各地的博物館藏品,拓展視野,豐富知識,增進(jìn)文化交流。這種新型的博物館體驗不僅提供了便利,也為人們帶來了全新的學(xué)習(xí)和娛樂方式,為文化普及和傳播起到了積極的推動作用。[15]傳統(tǒng)網(wǎng)站數(shù)字孿生三維模型大多數(shù)國內(nèi)數(shù)字博物館缺乏文物的數(shù)字孿生三維模型。在當(dāng)今大數(shù)據(jù)時代,文物的數(shù)字孿生模型成為重要的數(shù)字資產(chǎn)。我們迫切需要重視文化的傳承與保護(hù),以提升文化軟實力。傳統(tǒng)數(shù)字博物館的全景圖導(dǎo)覽無法提供全方位觀察文物的體驗,而采用二維圖片呈現(xiàn)會降低用戶的交互體驗。綜上所述,數(shù)字博物館對于文物三維模型的需求是客觀存在的,但目前仍然相對匱乏,該軟件可以一定程度上促進(jìn)數(shù)字孿生模型在數(shù)字博物館得到應(yīng)用。REF_Ref28721\r\h[16]自動化建模軟件的應(yīng)用相較于傳統(tǒng)的建模方法,利用自動化建模軟件進(jìn)行拍照建模具有一系列顯著優(yōu)勢。首先,其相對高精度令人信服,可提供更準(zhǔn)確的模型。其次,這一方法省時省力,無需大量人力物力投入。同時,操作簡單易行,不需要復(fù)雜的專業(yè)技能,使得整個建模過程更為便捷高效。REF_Ref28777\r\h[17]理論應(yīng)用于實踐作為工科本科畢業(yè)生,能將自己的所學(xué)應(yīng)用在實際場景,從軟件需求分析、軟件設(shè)計、建模、到開發(fā)、測試,完整地經(jīng)歷了開發(fā)軟件的全過程。1.4論文架構(gòu)1.4.1技術(shù)路線本文為前后端分離的項目,前端主要框架是Vue.js,Vue.js采用MVVM架構(gòu)。REF_Ref28875\r\h[18]詳細(xì)的技術(shù)路線分為建模、前端開發(fā)、后端開發(fā)三個階段,如圖1-1技術(shù)路線圖所示:MVVM是一種軟件架構(gòu)模式,目的是為了更好地組織和管理應(yīng)用程序的代碼結(jié)構(gòu)。這項技術(shù)將應(yīng)用程序劃分為三個核心部分:模型(Model)、視圖(View)、以及視圖模型(ViewModel)。模型是應(yīng)用程序的基礎(chǔ),承載數(shù)據(jù)和核心邏輯,管理著數(shù)據(jù)的存取、處理和驗證,同時執(zhí)行業(yè)務(wù)規(guī)則。視圖則是用戶界面的展示層,負(fù)責(zé)呈現(xiàn)數(shù)據(jù)給用戶,接受用戶的輸入并將其傳遞給視圖模型。視圖模型充當(dāng)模型和視圖之間的橋梁,處理用戶輸入并相應(yīng)地更新模型和視圖。MVVM架構(gòu)的主要優(yōu)勢在于將應(yīng)用程序的邏輯分離為三個獨立的部分,使得代碼更易于理解、維護(hù)和測試。同時,它還支持?jǐn)?shù)據(jù)綁定和命令綁定等功能,使得開發(fā)人員能夠更快速地構(gòu)建功能豐富、響應(yīng)式的用戶界面。SpringBoot是該項目后端的主要框架。該框架以其快速搭建和簡便配置的方式而著稱,包括了自動配置、起步依賴、嵌入式容器和Actuator等特性。它采用了“約定優(yōu)于配置”的原則,大大簡化了應(yīng)用程序的配置和管理任務(wù)。業(yè)務(wù)層。REF_Ref25659\r\h[19]圖1-1技術(shù)路線Figure1-1TechnologicalRoute1.4.2章節(jié)安排本文的章節(jié)安排與軟件開發(fā)的全過程相吻合,由軟件需求、軟件設(shè)計、軟件開發(fā)、軟件測試階段組成,如圖1-2軟件開發(fā)全過程圖所示。圖1-2軟件開發(fā)全過程Figure1-2TheWholeProcessofSoftwareDevelopment這篇文章一共有八個章節(jié),章節(jié)順序與內(nèi)容如下:首先是緒論部分,這是第一章。內(nèi)容包括研究的背景、意義、以及本論文的工作量、創(chuàng)新點和結(jié)構(gòu)安排等。第二章涉及對核心技術(shù)的介紹。這部分主要講述了論文所采用的關(guān)鍵技術(shù)Three.js。Three.js是對WebGL技術(shù)的一種封裝,是本論文實現(xiàn)項目的關(guān)鍵技術(shù)。第三章為軟件需求分析,包括用UMLUML(UnifiedModelingLanguage,統(tǒng)一建模語言)是一種標(biāo)準(zhǔn)化語言,專門用于軟件系統(tǒng)的設(shè)計和建模。它提供了一系列豐富的圖形符號和規(guī)范,能夠準(zhǔn)確描述軟件系統(tǒng)的結(jié)構(gòu)、行為和交互。通過UML,開發(fā)人員和團(tuán)隊能夠更深入地理解、設(shè)計和交流軟件系統(tǒng),從而提高開發(fā)效率和項目質(zhì)量。UML(UnifiedModelingLanguage,統(tǒng)一建模語言)是一種標(biāo)準(zhǔn)化語言,專門用于軟件系統(tǒng)的設(shè)計和建模。它提供了一系列豐富的圖形符號和規(guī)范,能夠準(zhǔn)確描述軟件系統(tǒng)的結(jié)構(gòu)、行為和交互。通過UML,開發(fā)人員和團(tuán)隊能夠更深入地理解、設(shè)計和交流軟件系統(tǒng),從而提高開發(fā)效率和項目質(zhì)量。第四章講述了系統(tǒng)概要設(shè)計,包括用UML對領(lǐng)域模型進(jìn)行抽象,畫出具體類圖,根據(jù)需求分析階段的工作總結(jié)功能模塊。第五章為系統(tǒng)詳細(xì)設(shè)計,包括用UML對功能模塊之間的協(xié)作與交互進(jìn)行細(xì)化,設(shè)計詳盡的數(shù)據(jù)庫結(jié)構(gòu),同時規(guī)劃并創(chuàng)建主要功能的用戶界面。第六章是系統(tǒng)實現(xiàn),重點是利用相應(yīng)的技術(shù)棧來實現(xiàn)前端頁面、后端功能以及前后端的交互等基本任務(wù)。第七章則說明了測試工作,主要關(guān)注單元測試的預(yù)期結(jié)果和實際結(jié)果之間的對比。第八章是對整個軟件開發(fā)過程的總結(jié)與展望,其中涵蓋了所獲得的經(jīng)驗和收獲,以及對未來學(xué)習(xí)的規(guī)劃。核心技術(shù)介紹2.1WebGL技術(shù)WebGL(WebGraphicsLibrary)是一種基于JavaScript的開放式、跨平臺的圖形庫,其利用計算機的圖形處理單元(GPU)進(jìn)行并行處理,實現(xiàn)網(wǎng)頁上的3D圖形渲染。通過WebGL,開發(fā)者能夠在瀏覽器中創(chuàng)建交互式的3D場景,為用戶提供更豐富、更沉浸式的網(wǎng)頁體驗。REF_Ref25809\r\h[20]WebGL的優(yōu)點在于它的跨平臺性、高性能、開放標(biāo)準(zhǔn)和與HTML5集成。首先,它可以在支持的瀏覽器上運行,包括桌面和移動設(shè)備,而且不需要額外的插件或擴(kuò)展。其次,WebGL利用了顯卡的硬件加速,能夠在瀏覽器中實現(xiàn)高性能的3D圖形渲染,支持復(fù)雜的圖形和動畫效果。此外,它是由KhronosGroup開發(fā)的開放標(biāo)準(zhǔn),有著龐大的開發(fā)者社區(qū)支持,可以方便地獲取技術(shù)支持和資源。最后,WebGL與HTML5、CSS等技術(shù)集成緊密,可以輕松實現(xiàn)與網(wǎng)頁元素的交互和動態(tài)效果。然而,WebGL也存在一些缺點。首先,學(xué)習(xí)曲線陡峭,對于新手來說,學(xué)習(xí)使用WebGL可能需要一定的時間和經(jīng)驗,特別是對于不熟悉3D圖形編程的開發(fā)者來說。其次,性能依賴硬件,雖然WebGL可以提供高性能的圖形渲染,但是其性能仍然受到用戶設(shè)備硬件的限制,性能在不同設(shè)備上可能存在差異。最后,兼容性問題也是一個挑戰(zhàn),盡管大多數(shù)現(xiàn)代瀏覽器都支持WebGL,但在一些舊版本瀏覽器或特定設(shè)備上可能存在兼容性問題,需要額外的兼容性處理。WebGL在3D網(wǎng)站中被廣泛應(yīng)用,它為開發(fā)者提供了實現(xiàn)令人驚嘆的3D網(wǎng)站的能力。通過利用WebGL,開發(fā)者可以創(chuàng)建交互式的3D場景、游戲、產(chǎn)品展示等。3D網(wǎng)站可以提供更加沉浸式的用戶體驗,吸引用戶的注意力,提升網(wǎng)站的吸引力和用戶留存率。例如,電子商務(wù)網(wǎng)站可以利用3D技術(shù)展示產(chǎn)品的360度旋轉(zhuǎn)視圖,讓用戶更加全面地了解產(chǎn)品;教育網(wǎng)站可以利用3D技術(shù)創(chuàng)建交互式的學(xué)習(xí)環(huán)境,提供更加生動的學(xué)習(xí)體驗。2.2Three.jsThree.js是目前最流行的Web端3D技術(shù)的開發(fā)框架。REF_Ref25999\r\h[21]盡管WebGL已經(jīng)能夠在網(wǎng)頁瀏覽器中呈現(xiàn)3D圖形,但其API相對較低級,使用起來相對復(fù)雜,需要開發(fā)者具備一定的圖形編程知識。然而,隨著Three.js的出現(xiàn),這一情況得到了改變。Three.js將WebGL的復(fù)雜性封裝起來,提供了更高級、更易用的接口,使得開發(fā)者能夠更輕松地創(chuàng)作出各種華麗的3D內(nèi)容,并將其展示在網(wǎng)頁上。總而言之,WebGL更底層,與GPU交互,Three.js較為頂層,便于用戶使用,關(guān)系圖如圖2-1所示:圖2-1WebGL與Three.js關(guān)系圖Figure2-1WebGLandThree.jsRelationshipMapThree.js的優(yōu)點之一是其豐富的功能和靈活性。它提供了各種豐富的內(nèi)置幾何體、材質(zhì)和光源,同時還支持用戶自定義的3D模型導(dǎo)入。另外,Three.js還有強大的動畫系統(tǒng),能夠?qū)崿F(xiàn)復(fù)雜的動畫效果,使得用戶能夠創(chuàng)建出生動、引人入勝的交互體驗。Three.js具備跨平臺的優(yōu)勢,這是其另一個亮點。它構(gòu)建于Web技術(shù)之上,因此能夠在現(xiàn)代瀏覽器上運行,只要該瀏覽器支持WebGL即可,涵蓋了桌面端和移動端,這一特性大大地擴(kuò)展了其應(yīng)用范圍。同樣,Three.js也有一些不足。首先,盡管它簡化了WebGL的使用,但依然需要一定的學(xué)習(xí)成本,尤其是對于初學(xué)者來說。其次,由于Three.js是一個高級抽象的庫,有時會犧牲一些性能以換取便利性,因此在開發(fā)需要極致性能的應(yīng)用時,可能需要直接使用WebGL。3、軟件需求分析3.1基礎(chǔ)信息3.1.1系統(tǒng)構(gòu)成系統(tǒng)分為訪客端和管理員端,訪客端的用戶為訪客,管理員端的用戶為普通上傳者、博物館用戶、系統(tǒng)管理員,如圖3-1所示:圖3-1系統(tǒng)與用戶關(guān)系Figure3-1System-userrelationship訪客端系統(tǒng)訪客端即展示給用戶全景圖和文物三維模型的平臺,無需登錄,訪問域名即可查看,可以根據(jù)信息搜索對應(yīng)的全景圖或三維模型。管理員端系統(tǒng)管理員端有權(quán)限限制,需要注冊登錄,普通上傳者可以進(jìn)行全景圖以及文物三維模型和相關(guān)描述信息上傳、下架、更新、刪除。除了擁有上述普通上傳者擁有的功能以外,系統(tǒng)管理員還可以進(jìn)行用戶管理和權(quán)限管理。3.1.2用戶訪客訪客是虛擬博物館系統(tǒng)的主要用戶群體之一,他們通過系統(tǒng)來體驗博物館的魅力。訪客具有多樣的特點和需求,他們可以通過系統(tǒng)訪客端輕松地瀏覽博物館的各種展品和展覽內(nèi)容,了解每件文物的詳細(xì)信息和歷史背景。通過系統(tǒng),訪客可以觀看全景圖,沉浸在仿真的博物館環(huán)境中。此外,他們也可以通過系統(tǒng)參與各種互動式學(xué)習(xí)和文化體驗活動,豐富自己的知識和體驗。普通上傳者普通上傳者是系統(tǒng)全景圖和三維模型的貢獻(xiàn)者。他們可以進(jìn)行上傳、下架、更新、刪除自己的數(shù)字資產(chǎn)。博物館用戶博物館用戶是特殊的上傳者,擁有普通上傳者的所有權(quán)限。此外,它們上傳的資產(chǎn)在訪客端有專門的分區(qū)和標(biāo)識。系統(tǒng)管理員系統(tǒng)管理員是負(fù)責(zé)管理系統(tǒng)運行和維護(hù)的管理員端管理人員。他們具有多種特點和需求。首先,系統(tǒng)管理員可以通過系統(tǒng)管理用戶信息,包括注冊用戶和訪客的信息。其次,他們可以通過系統(tǒng)管理博物館的內(nèi)容和展示信息,包括添加、修改和刪除文物信息、全景圖等。最后,系統(tǒng)管理員可以通過系統(tǒng)監(jiān)控系統(tǒng)的運行狀態(tài)和性能,并及時處理系統(tǒng)的異常情況。3.2不同類型需求在需求分析中,會考慮到功能需求、非功能需求以及設(shè)計約束這三個方面。REF_Ref26175\r\h[22]功能需求是指系統(tǒng)必須具備的各種功能或操作,通常是從用戶需求中直接推導(dǎo)出來的,它們決定了系統(tǒng)能夠做什么。需要考慮的另一個方面是非功能性需求,它們指的是系統(tǒng)在性能、可靠性、安全性等方面的要求。舉例而言,響應(yīng)時間、系統(tǒng)穩(wěn)定性、數(shù)據(jù)安全等都屬于此類需求。除了功能和非功能需求外,設(shè)計約束也是需求分析中的一個重要考慮因素。這些約束包括系統(tǒng)設(shè)計和實施過程中的各種限制和條件,比如技術(shù)限制、成本約束、時間限制等。綜合考慮這三個方面的需求,可以確保系統(tǒng)在設(shè)計和開發(fā)過程中能夠充分滿足用戶的需求,并且在實際運行中能夠達(dá)到預(yù)期的效果。不同類型的需求與其優(yōu)先級如圖3-2所示:圖3-2需求結(jié)構(gòu)圖Figure3-2RequirementsStructureDiagram3.3用例分析3.3.1參與者與用例參與者訪客是指那些通過系統(tǒng)的訪客端進(jìn)行數(shù)字孿生虛擬現(xiàn)實博物館的模型查看和3D全景導(dǎo)覽的用戶。他們可以自由地瀏覽各種展品和場景,無需注冊或登錄即可體驗博物館的魅力。管理員端用戶:包括普通上傳者、博物館用戶、系統(tǒng)管理員。普通上傳者,通過管理員端進(jìn)入系統(tǒng),具有上傳新模型的權(quán)限。博物館用戶則是具有特殊標(biāo)識的上傳者,可能是博物館工作人員或特定領(lǐng)域的專家,他們在上傳和管理展品時具有更高的責(zé)任和權(quán)限。系統(tǒng)管理員擁有最高權(quán)限,負(fù)責(zé)整個系統(tǒng)的運行和管理,包括管理其他管理員的權(quán)限以及系統(tǒng)的安全性。數(shù)字孿生虛擬現(xiàn)實博物館系統(tǒng)由訪客端和管理員端組成,兩端數(shù)據(jù)聯(lián)動形成一個完整的系統(tǒng)。用例簡要描述注冊用例指的是上傳者在管理員端進(jìn)行新賬戶的注冊。這個過程涉及到輸入個人信息、密碼,使得新用戶能夠順利地加入到系統(tǒng)中,開始管理和上傳展品。登錄用例分為兩種情況:訪客端無需登錄即可訪問,而管理員端則需要輸入正確的用戶名和密碼才能夠進(jìn)入系統(tǒng)。登錄成功后,管理員可以訪問系統(tǒng)的各種功能和數(shù)據(jù)。修改密碼用例是管理員端用戶在需要時更改其登錄密碼的過程。這個操作可以增加賬戶的安全性,防止未經(jīng)授權(quán)的訪問或惡意操作。訪問場館用例描述了訪客通過訪客端進(jìn)行數(shù)字孿生虛擬現(xiàn)實博物館的瀏覽體驗。他們可以自由地查看各種展品和場景,感受博物館的魅力,而無需注冊或登錄。瀏覽三維模型用例允許訪客在系統(tǒng)中瀏覽各種三維模型,他們可以通過旋轉(zhuǎn)、放縮等操作來仔細(xì)觀察模型的細(xì)節(jié)和特點,獲得更深入的了解。三維全景導(dǎo)覽用例允許訪客通過全景圖進(jìn)行虛擬導(dǎo)覽,他們可以自由地旋轉(zhuǎn)視角、移動位置,仿佛置身于實際的展覽場景中,極大地提升了參觀的沉浸感和體驗效果。描述信息查看用例的意義在于游客在觀賞展品時,能夠瀏覽相關(guān)的描述信息,包括展品的介紹、歷史背景、作者信息等,這有助于他們更好地理解展品的含義和價值。描述信息管理用例則是管理員端用戶對相關(guān)描述信息進(jìn)行增刪查改的過程。他們可以編輯展品的描述信息,使之更加準(zhǔn)確、完整,提升用戶的參觀體驗和學(xué)習(xí)效果。三維模型管理和全景圖管理用例描述了管理員端用戶上傳、下架、更新三維模型和全景圖的過程。他們可以通過管理員界面方便地管理系統(tǒng)中的展品,確保內(nèi)容的及時更新和展示的完整性。系統(tǒng)管理員執(zhí)行用戶管理用例,操作包括限制權(quán)限、禁止登錄等,以對管理員端用戶進(jìn)行管理。這個過程可以確保系統(tǒng)的安全性和穩(wěn)定性,防止未經(jīng)授權(quán)的訪問或惡意操作對系統(tǒng)造成損害。重要用例詳細(xì)分析我們選定了“查看三維模型”這一應(yīng)用場景進(jìn)行深入分析。對這一場景的詳細(xì)分析包括用例名稱、簡要描述、基本事件流、備選事件流以及前置條件和后置條件。具體內(nèi)容請參見表3-1。表3-1詳細(xì)用例分析Table3-1DetailedUseCaseAnalysis用例名稱:瀏覽三維模型簡要描述:系統(tǒng)允許用戶查看數(shù)字化的三維模型,以便他們可以更詳細(xì)地了解文物或藝術(shù)品。事件流:基本事件流1.用戶在虛擬博物館中選擇查看三維模型。2.系統(tǒng)加載所選模型并顯示在用戶界面上。3.用戶可以自由旋轉(zhuǎn)、放大、縮小等操作查看模型的不同部分。4.用戶可以選擇查看模型的詳細(xì)信息,如名稱、時代、作者等。5.用戶可以通過關(guān)閉模型窗口來結(jié)束查看。6.用例結(jié)束。備選事件流2.1如果在基本事件流的第二步中,系統(tǒng)無法加載所選模型,則系統(tǒng)顯示加載失敗的消息給用戶,并提示用戶重試或聯(lián)系技術(shù)支持。前置條件用戶搜索點擊相關(guān)三維模型后置條件用戶成功查看三維模型并了解了相關(guān)信息。3.3.2系統(tǒng)用例圖對系統(tǒng)進(jìn)行用例分析,根據(jù)需求我們知道普通上傳者、博物館用戶、系統(tǒng)管理員與管理員端用戶的關(guān)系是泛化關(guān)系。訪問場館與瀏覽三維模型、全景導(dǎo)覽是包含關(guān)系。詳細(xì)的系統(tǒng)用例圖如圖3-3所示:圖3-3系統(tǒng)用例圖Figure3-3SystemUseCaseDiagram4、系統(tǒng)概要設(shè)計4.1領(lǐng)域模型與類4.1.1領(lǐng)域模型與概念類概念類用戶類(User)是系統(tǒng)中一個核心的概念,它包括了所有管理員端用戶的基本信息。每個用戶都具有唯一的標(biāo)識符,以及與其關(guān)聯(lián)的登錄憑據(jù)、權(quán)限設(shè)置和個人資料。用戶類記錄了用戶的身份驗證信息、角色權(quán)限、密碼等,為系統(tǒng)提供了管理和安全性方面的基礎(chǔ)。模型類(Model)是系統(tǒng)中用于表示三維模型的重要概念。它包含了三維模型的相關(guān)信息,如模型的名稱、作者、上傳時間等。此外,模型類還可能包含與模型相關(guān)的描述信息、標(biāo)簽、分類等數(shù)據(jù),以便用戶能夠更好地了解和瀏覽模型內(nèi)容。全景圖類(Image)是系統(tǒng)中用于表示全景圖的重要概念。它包含了全景圖的相關(guān)信息,如圖像文件、上傳者、上傳時間等。全景圖類也可能包含與圖像相關(guān)的描述信息、標(biāo)簽、分類等數(shù)據(jù),以便用戶能夠更好地瀏覽和導(dǎo)覽全景圖。描述信息類(Information)是系統(tǒng)中用于存儲展品描述信息的概念。它包含了關(guān)于展品的文字描述、歷史背景、作者信息等內(nèi)容。描述信息類與模型類和全景圖類密切相關(guān),為用戶提供了更豐富的展品信息和參觀體驗。場館類(Complexes)是系統(tǒng)中用于表示博物館場館的重要概念。它包含了場館的相關(guān)信息,如名稱、包含的全景圖、包含的三維模型等。場館類也可能包含與場館相關(guān)的描述信息、展品信息、相關(guān)介紹等數(shù)據(jù)。領(lǐng)域模型根據(jù)上述概念類,梳理出它們之間的數(shù)量關(guān)系,如一個用戶可以創(chuàng)建多個場館,一個場館可以包括多個信息和圖片、模型,根據(jù)抽象的數(shù)量關(guān)系建立的領(lǐng)域模型如圖4-1所示:圖4-1領(lǐng)域模型圖Figure4-1DomainModelDiagram4.1.2類圖為了方便,我采用了UserInterface的抽象類,為了低耦合,我用了接口類的設(shè)計模式,類圖如圖4-2所示:圖4-2類圖Figure4-2ClassDiagram4.2業(yè)務(wù)流程4.2.1訪客端流程:訪客端業(yè)務(wù)流程主要為訪客為網(wǎng)站訪客端的交互,使得訪客可以完成三維模型瀏覽和全景瀏覽,完整業(yè)務(wù)流程如圖4-3所示:圖4-3訪客端活動圖Figure4-3FrontDeskActivityDiagram4.2.2管理員端流程:管理員端業(yè)務(wù)流程主要是上傳者對全景圖和三維模型的管理,從登錄/注冊到各項管理功能,主要業(yè)務(wù)流程如圖4-4所示:圖4-4管理員端活動圖Figure4-4BackstageActivityDiagram5、系統(tǒng)詳細(xì)設(shè)計5.1數(shù)據(jù)庫設(shè)計5.1.1實體關(guān)系分析:由于“描述信息”與全景圖、場館、三維模型的關(guān)系都是一對一的,所以個人認(rèn)為沒必要進(jìn)行單獨建表。根據(jù)需求只抽象出四個基本的實體和它們之間的關(guān)系,繪制出實體關(guān)系圖(ER圖),如圖5-1所示:圖5-1ER圖Figure5-1ERDiagram5.1.2數(shù)據(jù)庫表:用戶表表5-1展示了用戶表的設(shè)計,其中包含了用戶的必要信息,如用戶ID、用戶名、密碼、權(quán)限、電子郵箱等字段,確保了對用戶信息的全面覆蓋。表5-1用戶表Table5-1UserDataSheet字段名稱數(shù)據(jù)類型長度說明用戶IDVARCHAR15主鍵用戶名VARCHAR15存儲用戶的用戶名密碼VARCHAR30存儲用戶的密碼(需要加密)權(quán)限NUMBER-0代表系統(tǒng)管理員,1代表博物館用戶,2代表普通上傳者電子郵箱VARCHAR30注冊時使用的郵箱,用于找回密碼場館表場館表包含了場館ID、創(chuàng)建者ID、場館名稱、描述信息、代表圖等字段,其中創(chuàng)建者ID是關(guān)聯(lián)用戶表的外鍵,具體設(shè)計如表5-2所示:表5-2場館表Table5-2VenueDataSheet字段名稱數(shù)據(jù)類型長度說明場館IDVARCHAR15主鍵創(chuàng)建者IDVARCHAR15外鍵場館名稱VARCHAR30存儲場館的名稱描述信息TEXT-存儲場館相關(guān)描述信息代表圖VARCHAR50存儲上傳到服務(wù)器的圖的url模型表模型表包含了模型ID、創(chuàng)建者ID、場館ID、名稱、年代、描述信息、縮略圖、模型字段,其中創(chuàng)建者ID是關(guān)聯(lián)用戶表的外鍵,場館ID是關(guān)聯(lián)場館表的外鍵,具體設(shè)計如表5-3所示:表5-3模型表Table5-3ModelDataSheet字段名稱數(shù)據(jù)類型長度說明模型IDVarchar15主鍵創(chuàng)建者IDVarchar15外鍵場館IDVarchar15外鍵名稱Varchar30存儲模型的名稱年代NUMBER10存儲模型所對應(yīng)的文物年代描述信息TEXT-存儲模型相關(guān)描述信息縮略圖VARCHAR50存儲上傳到服務(wù)器的圖的url模型VARCHAR50存儲上傳到服務(wù)器的模型的url全景圖表全景圖表包含了全景圖ID、創(chuàng)建者ID、場館ID、名稱、描述信息、縮略圖、六面圖的各面,其中創(chuàng)建者ID是關(guān)聯(lián)用戶表的外鍵,場館ID是關(guān)聯(lián)場館表的外鍵,六面圖的各面即將全景圖分割為一個立方體的六個面,分別上傳這六面的貼圖,具體設(shè)計如表5-4所示:表5-4全景圖表Table5-4PanoramaDataSheet字段名稱數(shù)據(jù)類型長度說明全景圖IDVarchar15主鍵創(chuàng)建者IDVarchar15外鍵場館IDVarchar15外鍵名稱Varchar30存儲全景圖的名稱描述信息TEXT-存儲全景圖相關(guān)描述信息縮略圖VARCHAR50存儲上傳到服務(wù)器的圖的url六面圖的前面VARCHAR50存儲上傳到服務(wù)器的圖的url六面圖的后面VARCHAR50存儲上傳到服務(wù)器的圖的url六面圖的左面VARCHAR50存儲上傳到服務(wù)器的圖的url六面圖的右面VARCHAR50存儲上傳到服務(wù)器的圖的url六面圖的上面VARCHAR50存儲上傳到服務(wù)器的圖的url六面圖的下面VARCHAR50存儲上傳到服務(wù)器的圖的url5.2界面設(shè)計5.2.1訪客端界面:三維模型瀏覽界面對三維模型的瀏覽,實現(xiàn)是在網(wǎng)頁上嵌入一個三維的分區(qū),這個分區(qū)可以加載三維模型。用戶可以通過鼠標(biāo)的拖動完成視角的切換,滾輪的滾動進(jìn)行模型的放縮,這樣可以使得用戶體驗到更為真實的模型和細(xì)節(jié),遠(yuǎn)超二維圖片效果,三維模型的多角度示意圖如圖5-2所示:圖5-23D模型多角度示意圖Figure5-2Multi-angleschematicof3Dmodel全景圖導(dǎo)覽界面對全景圖的瀏覽,也是通過鼠標(biāo)的拖動進(jìn)行切換視角。通過點擊進(jìn)行導(dǎo)覽,此處選取了一個場館兩個房間的全景圖界面展示,如圖5-3和圖5-4所示:圖5-3全景圖導(dǎo)覽界面01Figure5-3PanoramaGuideInterface01圖5-4全景圖導(dǎo)覽界面02Figure5-4PanoramaGuideInterface025.2.2管理員端界面:用戶管理界面管理員端登錄后要進(jìn)行角色的判斷,只有角色為系統(tǒng)管理員的用戶登錄之后才可以看到用戶管理這一導(dǎo)航欄,其他角色不顯示也無法操作。系統(tǒng)管理員可以對用戶進(jìn)行升級、降級、修改相關(guān)信息、甚至是刪除功能,而這個刪除在后端應(yīng)該是邏輯刪除,而不是在數(shù)據(jù)庫從移除所有相關(guān)信息。詳細(xì)界面如圖5-5所示:圖5-5用戶管理界面Figure5-5UserManagementInterface場館管理界面所有角色的管理員端用戶都可以對場館進(jìn)行管理,場館有序號、名稱、介紹、代表圖四個屬性,用戶可以對場館進(jìn)行增刪查改操作。場館管理界面如圖5-6所示:圖5-6場館管理界面Figure5-6VenueManagementInterface三維模型管理界面所有角色的管理員端用戶都可以對其自己的三維模型進(jìn)行管理,系統(tǒng)管理員可以看到所有的三維模型。三維模型有序號、所屬場館、名稱、年代、介紹、縮略圖六個屬性,用戶可以對三維模型進(jìn)行增刪查改操作。三維模型界面如圖5-7所示:圖5-7三維模型管理界面Figure5-73Dmodelmanagementinterface全景圖管理界面所有角色的管理員端用戶都可以對其自己的全景圖進(jìn)行管理,而系統(tǒng)管理員可以看到所有的全景圖。為了方便用戶上傳,我們的全景圖分割為六面圖進(jìn)行上傳,由系統(tǒng)進(jìn)行拼接,界面如圖5-8所示:圖5-8全景圖管理界面Figure5-8PanoramaManagementInterface6、系統(tǒng)實現(xiàn)6.1整體實現(xiàn)概述整體實現(xiàn)分為三步:掃描建?!岸藢崿F(xiàn)—后端實現(xiàn),主要工作量在于基于Three.js的前端實現(xiàn),掃描建模是基于RealityCapture軟件的自動化建模,后端的實現(xiàn)也相對簡單,只有二維表的存儲和圖片以及模型的上傳功能。6.2掃描建模6.2.1掃描建模步驟掃描建模簡略流程如下:在光線環(huán)境好的條件下多角度環(huán)繞物體拍照打開RealityCapture,導(dǎo)入照片RealityCapture對圖片進(jìn)行根據(jù)不同機位不同角度的位置進(jìn)行對齊,出現(xiàn) 原物體點云模型點云(PointCloud)是一種用于描述三維空間中物體表面的數(shù)據(jù)表示方式。它由大量的點組成,每個點都有其在三維空間中的坐標(biāo)位置和可能的其他屬性,如顏色、法向量等。這些點通過它們的坐標(biāo)位置相互連接,從而形成了物體的形狀和結(jié)構(gòu)。RealityCapture根據(jù)點云進(jìn)行計算,構(gòu)建模型RealityCapture根據(jù)圖像,加載材質(zhì),使得模型有色彩和質(zhì)感圖6-1相機機位與點云Figure6-1CameraPositionandPointCloud6.2.2建模效果分析拍照建模的最終還原效果如圖6-2所示。拍照建模所涉及到的具體數(shù)據(jù)如表6-1所示。整體上來說,對模型的還原是比較仿真的,所花時間不長,照片雖然使用了100張,但其實如果照片質(zhì)量高,20張也可以還原。還原效果上來說,如圖所示,瓶身的還原效果是非常好的,但是瓶口和瓶底并不樂觀。圖6-2掃描建模效果Figure6-1ScanningModelingResults表6-1建模數(shù)據(jù)Table6-1ModelingData照片照片總數(shù)識別成功127100時間開銷對齊時間建模時間加載材質(zhì)30s5mins1min還原精度瓶口瓶身瓶底40%99%0%根據(jù)搜集資料發(fā)現(xiàn),RelityCapture的建模原理是基于計算機視覺和計算機圖形學(xué)的技術(shù),其建模的精準(zhǔn)度完全取決于照片的質(zhì)量,對于反光、鏤空物體的建模效果不太理想,原因就是因為照片無法反映空間參數(shù)。光照條件適宜,啞光、實心、多面、質(zhì)感粗糙的物體拍照效果極佳,還原精度很高。綜上,對于及其重要的數(shù)字資產(chǎn),可能拍照建模不是一個非常好的手段。但勝在它操作簡單、容易實現(xiàn)、成本不高(主要是時間成本),大眾可以使用它對自己心愛物品進(jìn)行拍照建模,生成對應(yīng)的數(shù)字孿生模型,然后上傳網(wǎng)站進(jìn)行保存和訪問。6.3前端實現(xiàn)6.3.1訪客端的前端實現(xiàn)框架搭建訪客端系統(tǒng)使用Vue3+Vite+Three.js框架安裝Node.js環(huán)境安裝Vue3和Vite,安裝命令:npminstall-gcreate-vite-appcreate-vite-appvr_museum(vr_museum為項目名稱)安裝Three.js,安裝命令:npminstallthree頁面掛載引擎在系統(tǒng)框架搭建完成之后,將Vue組件掛載一個掛載一個基于Three.js的3D引擎,這樣就能實現(xiàn)我們在網(wǎng)頁上得到一個三維引擎,通過這個三維引擎可以完成全景圖導(dǎo)覽或三維模型瀏覽的功能。主要代碼如圖6-3所示:圖6-3三維引擎掛載代碼Figure6-33DEngineMountingCode引擎基類實現(xiàn)在完成三維引擎掛載在Vue組件之后,要對掛載的引擎進(jìn)行詳細(xì)設(shè)計,無論是全景圖引擎或者是三維模型的引擎,很多功能都是相同且互通的,所以先實現(xiàn)一個基類以完成基礎(chǔ)功能,引擎基類的部分重要代碼如圖6-4、圖6-5、圖6-6所示:圖6-4基類的私有變量Figure6-4PrivateVariablesoftheBaseClass圖6-5基類的構(gòu)造函數(shù)Figure6-5ConstructorforBaseClass圖6-6場景渲染函數(shù)Figure6-6SceneRenderingFunction物體引入在完成引擎的設(shè)計之后,我們現(xiàn)在相當(dāng)于擁有了一個三維空間,空間里我們放了相機、環(huán)境光源,但還沒有物體,現(xiàn)在我們?nèi)ネ鶊鼍爸性黾右粋€三維模型即可完成三維模型的瀏覽;而要實現(xiàn)全景圖的導(dǎo)覽我們只需增加一個立方體,而后對立方體的六面進(jìn)行全景貼圖,將相機的位置調(diào)節(jié)至立方體里面即可。為了減少重復(fù)的代碼,我們將增加物體抽象為一個函數(shù),這樣通過函數(shù)的調(diào)用,即可實現(xiàn)不同場景的搭建,增加物體的代碼如圖6-7所示:圖6-7添加物體函數(shù)Figure6-7AddObjectFunction全景圖導(dǎo)覽的實現(xiàn)需要實現(xiàn)一個立方體模型,和一個六面貼圖的圖片材質(zhì),主要代碼如圖6-8、圖6-9所示:圖6-8創(chuàng)建立方體Figure6-8CreatingCube圖6-9立方體材質(zhì)Figure6-9CubicMaterial三維模型則需要一個函數(shù)實現(xiàn)模型的加載(系統(tǒng)支持gltf格式GLTF(GLTransmissionFormat)是一種用于在網(wǎng)絡(luò)上傳輸和加載3D模型的開放式文件格式。它是由KhronosGroup領(lǐng)導(dǎo)的3D工作組開發(fā)的,旨在成為一個通用的、可擴(kuò)展的、高效的3D模型傳輸格式。GLTF文件使用JSON格式描述3D模型的結(jié)構(gòu)、幾何體、材質(zhì)、動畫和其他相關(guān)信息,并可以包含紋理圖像和二進(jìn)制數(shù)據(jù)。與其他3D模型格式相比,GLTFGLTF(GLTransmissionFormat)是一種用于在網(wǎng)絡(luò)上傳輸和加載3D模型的開放式文件格式。它是由KhronosGroup領(lǐng)導(dǎo)的3D工作組開發(fā)的,旨在成為一個通用的、可擴(kuò)展的、高效的3D模型傳輸格式。GLTF文件使用JSON格式描述3D模型的結(jié)構(gòu)、幾何體、材質(zhì)、動畫和其他相關(guān)信息,并可以包含紋理圖像和二進(jìn)制數(shù)據(jù)。與其他3D模型格式相比,GLTF更加輕量化、可擴(kuò)展性更強、開源、支持PBR材質(zhì)(效果逼真)、適用于WebGL。圖6-10GLTF模型的加載Figure6-10LoadingofGLTFModels6.3.2管理員端的前端實現(xiàn)框架搭建管理員端系統(tǒng)使用Vue2+ElementUI框架安裝Node.js環(huán)境使用VueCLI工具創(chuàng)建一個新的Vue2項目,命令:npminstall-g@vue/clivuecreatemy-project安裝ElementUI,安裝命令:npminstallelement-ui導(dǎo)入ElementUI,在項目main.js中引入:importElementfrom'element-ui' Vue.use(Element)導(dǎo)航欄與路由切換先要對路由切換進(jìn)行一個前端保護(hù),避免用戶直接輸入對應(yīng)的URL實現(xiàn)頁面跳轉(zhuǎn),導(dǎo)致未知bug以及安全風(fēng)險,主要代碼如下:圖6-11路由跳轉(zhuǎn)守衛(wèi)Figure6-11RouteJumpGuard展示不同的導(dǎo)航欄要根據(jù)不同角色的權(quán)限,比如只有系統(tǒng)管理員能夠進(jìn)行用戶管理。所以要進(jìn)行一個異步的方法對角色身份進(jìn)行驗證,主要代碼如圖6-12、圖6-13所示:圖6-12角色權(quán)限認(rèn)證Figure6-12RolePrivilegeAuthentication而后要根據(jù)權(quán)限對導(dǎo)航欄啟動路由模式,使得點擊導(dǎo)航欄時會切換路由,以此展示不同的Vue組件(即導(dǎo)航欄右側(cè)的頁面),主要代碼如下:圖6-13導(dǎo)航欄路由Figure6-13NavigationBarRouting信息表格展示主要代碼如6-14所示,實現(xiàn)了對表格的分頁管理。系統(tǒng)采用了ElementUI提供的表格,頁面的核心內(nèi)容則是信息管理的表格。圖6-14表格展示及分頁管理Figure6-14FormDisplayandPagingManagement6.4后端實現(xiàn)6.4.1框架搭建后端實現(xiàn)的功能比較簡易,整體采用SpringBoot+MySQL。使用SpringInitializr創(chuàng)建一個新的SpringBoot項目,并安裝 MySQL依賴。配置數(shù)據(jù)庫連接創(chuàng)建實體類,映射數(shù)據(jù)庫對應(yīng)的表創(chuàng)建Repository接口,用于操作數(shù)據(jù)庫創(chuàng)建Service層來處理業(yè)務(wù)邏輯。在Service層中調(diào)用Repository 接口的方法來操作數(shù)據(jù)庫。創(chuàng)建控制器類來處理HTTP請求,并調(diào)用Service層中的方法 6.4.2數(shù)據(jù)庫實現(xiàn)建表數(shù)據(jù)庫先用SQL語言實現(xiàn)建表,以用戶表為例主要代碼如下:圖6-15用戶表建表SQL語言Figure6-15UserTableBuildingSQLLanguage對應(yīng)增刪改查增刪改查(CRUD)功能的實現(xiàn)可以使用SpringBoot和SpringDataJPA以簡化數(shù)據(jù)庫操作。以用戶表為例,主要代碼如6-16所示:圖6-16用戶表增刪改查實現(xiàn)Figure6-16Codeimplementationofusertableadditions,deletionsandchanges6.4.3接口實現(xiàn)登錄接口當(dāng)AuthController類接收到一個LoginRequest對象時,里面裝載了用戶名和密碼信息。若這些信息匹配正確,系統(tǒng)會生成一個JSONWebToken(JWT),內(nèi)含用戶資料以及角色,而后返回給客戶端。JWT使用了HS256簽名算法,并設(shè)置了有效期為1天,主要代碼如圖6-17所示:圖6-17登錄接口實現(xiàn)Figure6-17LoginInterfaceImplementation圖片上傳接口/upload接口接收一個名為"image"的文件參數(shù)。在上傳圖片時,會生成一個唯一的文件名,并將圖片保存到服務(wù)器的指定目錄中。上傳成功后,返回圖片的URL,如圖6-18所示:圖6-18圖片上傳接口實現(xiàn)Figure6-18ImageUploadInterfaceImplementation7、測試測試主要進(jìn)行了功能測試中的單元測試,保證可用性,已對訪客端和管理員端的界面進(jìn)行了測試,分別記錄在表7-1和表7-2中,測試結(jié)果詳細(xì)列于下文:表7-1訪客端單元測試表Table7-1FrontendUnitTestSheet功能名稱測試流程預(yù)期效果測試結(jié)果場館訪問1.搜索場館名稱或列表直接點擊場館2.點擊場館內(nèi)的全景圖列表/三維模型列表1.正常進(jìn)入場館2.正常顯示列表與預(yù)期相符全景圖導(dǎo)覽1.通過場館內(nèi)列表點擊全景圖/通過名稱搜索全景圖2.鼠標(biāo)拖動實現(xiàn)全景圖的視角切換3.點擊全景圖相關(guān)信息1.正常進(jìn)入全景導(dǎo)覽2.正常實現(xiàn)視角切換3.正常顯示信息與預(yù)期相符三維模型瀏覽1.通過場館內(nèi)列表點擊三維模型/通過名稱搜索三維模型2.鼠標(biāo)拖動實現(xiàn)三維模型視角切換/滾輪滑動實現(xiàn)三維模型放縮3.點擊三維模型相關(guān)信息1.正常進(jìn)入三維模型2.正常實現(xiàn)視角切換/放縮3.正常顯示信息與預(yù)期相符表7-2管理員端單元測試表Table7-2BackendUnitTestForm功能名稱測試流程預(yù)期效果測試結(jié)果登錄/注冊使用普通用戶/博物館用戶/系統(tǒng)管理員的賬戶分別登錄注冊一個普通賬戶,使用這個賬戶登錄1.登錄到符合權(quán)限的賬號2.正常登錄與預(yù)期相符用戶管理檢查權(quán)限是否正確變更,將普通用戶提升為博物館用戶,然后再將博物館用戶晉升為系統(tǒng)管理員,隨后將系統(tǒng)管理員降為博物館用戶,最后再將博物館用戶降級為普通用戶。編輯用戶相關(guān)信息刪除用戶1.權(quán)限正確變更2.用戶信息成功被編輯3用戶被邏輯刪除與預(yù)期相符場館管理1.編輯場館相關(guān)信息、如名稱、描述信息等2.替換代表圖,檢測是否重新展示3.刪除場館1.信息成功被編輯2.代表圖成功更新3.場館及其所屬的三維模型和全景圖被級聯(lián)刪除與預(yù)期相符三維模型管理1.編輯三維模型相關(guān)信息、如名稱、描述信息等2.替換縮略圖,檢測是否重新展示3.替換模型4.刪除模型1.信息成功被編輯2.縮略圖成功更新3.模型成功被替換4.模型成功被刪除與預(yù)期相符全景圖管理1.編輯全景圖相關(guān)信息、如名稱、描述信息等2.替換縮略圖,檢測是否重新展示3.替換全景圖的六面圖4.刪除全景圖1.信息成功被編輯2.縮略圖成功更新3.全景圖成功被替換4.全景圖成功被刪除與預(yù)期相符8、總結(jié)和展望通過本論文的研究與工作,成功實現(xiàn)了一個基于Three.js的數(shù)字化虛擬現(xiàn)實數(shù)字孿生博物館,并且利用拍照建模技術(shù)對文物進(jìn)行了數(shù)字孿生建模。在這個過程中,經(jīng)歷了分析、設(shè)計、實現(xiàn)和測試等一系列軟件工程項目的階段。然而,數(shù)字化虛擬博物館的開發(fā)是一個工作量十分龐大的項目,本論文只實現(xiàn)了基礎(chǔ)和簡單的功能。在未來,若有足夠的時間和資源,可以在此基礎(chǔ)上進(jìn)一步開發(fā)一個更加貼近用戶需求、增加用戶友好性功能的網(wǎng)站。在項目過程中也遇到了很多問題,發(fā)現(xiàn)了拍照建模對于高精度需求的文物是不太可取的。本論文使用了RealityCapture軟件的拍照建模技術(shù),初始想法是應(yīng)用此技術(shù)可以對文物的數(shù)字孿生建模變得更加簡單,然而其還原度卻完全取決于照片的質(zhì)量。與其他數(shù)字孿生建模方式相比,拍照建模雖然具有時間成本低、所需條件簡單的優(yōu)點,特別適用于漫反射的粗糙物體建模以及對體積大的模型進(jìn)行建模。但是對于反射物體、金屬、鏤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論