如何構(gòu)建 3D Web 應(yīng)用程序
時(shí)間:2023-07-22 06:18:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-07-22 06:18:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)
如何構(gòu)建 3D Web 應(yīng)用程序:
為什么要將您的 3D 應(yīng)用程序定位到網(wǎng)絡(luò)?
在 2010 年代,出現(xiàn)了一種為 Web 而不是桌面開(kāi)發(fā)應(yīng)用程序的趨勢(shì)。這并不奇怪,因?yàn)橐环矫?,瀏覽器和開(kāi)發(fā)人員工具已經(jīng)逐漸變得更好,但也因?yàn)?Web 應(yīng)用程序在某些方面對(duì)開(kāi)發(fā)人員和用戶都更加方便。
開(kāi)發(fā)人員具有通用性,因?yàn)?Web 瀏覽器是世界上最常見(jiàn)的執(zhí)行平臺(tái)。Web 應(yīng)用程序允許對(duì)代碼和其他知識(shí)產(chǎn)權(quán)進(jìn)行更嚴(yán)格的控制,并啟用在分發(fā)二進(jìn)制文件時(shí)難以執(zhí)行的許可策略。一些維護(hù)挑戰(zhàn)已成為過(guò)去(例如,每個(gè)客戶的環(huán)境大致相同,每個(gè)人都使用最新版本的應(yīng)用程序)。
對(duì)于用戶來(lái)說(shuō),這也意味著與本地環(huán)境相關(guān)的問(wèn)題不太相關(guān),它們基本上歸結(jié)為正在使用的瀏覽器。硬件要求變得更加寬松,而其中的應(yīng)用程序和數(shù)據(jù)可以從任何地方訪問(wèn)。
但是,當(dāng)談到 3D 數(shù)據(jù)時(shí),可能不清楚網(wǎng)絡(luò)是否是此類應(yīng)用程序的好平臺(tái)。畢竟,根據(jù)與 3D 數(shù)據(jù)交互的程度,它們可能非常繁重。然而,現(xiàn)在即使 3D 建模和 CAD 建模軟件也可以在網(wǎng)絡(luò)上使用,而且可以說(shuō)與 3D 應(yīng)用程序一樣沉重,這一事實(shí)應(yīng)該會(huì)消除可行性的擔(dān)憂。
圖 1. 頂部:http://Clara.io,一個(gè)基于云的 3D 編輯器和渲染器。底部:Onshape,一個(gè)基于云的 CAD 系統(tǒng)。國(guó)產(chǎn)三維云CAD;crowncad
哪些應(yīng)用需要 3D 數(shù)據(jù)?
有幾類應(yīng)用程序總是必須處理 3D 數(shù)據(jù),例如前面提到的 3D 建模和 CAD 建模軟件。除了實(shí)際建模外,3D Web 應(yīng)用程序還可用于許多相關(guān)工作流程:
- 在線真實(shí)感渲染服務(wù)可以顯示渲染預(yù)覽,以微調(diào)相機(jī)位置和鏡頭選項(xiàng)并應(yīng)用材料。
- 3D 資產(chǎn)目錄可以提供交互式示例并播放其中包含的動(dòng)畫(huà)。
- 基于 Web 的 PLM 和 PDM 系統(tǒng)需要顯示零件的 3D 模型,以便用戶方便地瀏覽目錄。他們還可以提供設(shè)計(jì)審查功能——向多個(gè)并發(fā)用戶展示模型并允許他們?cè)谄渖狭粝伦⑨尅?/li>
- 數(shù)值模擬工具顯示分析的零件,并將模擬結(jié)果疊加在它們之上 - 計(jì)算出的氣流、熱分布、響應(yīng)負(fù)載的變形。
在建?;虍a(chǎn)品設(shè)計(jì)空間之外,使用 3D 模型豐富應(yīng)用程序的機(jī)會(huì)仍然很多:
- 在線商店而不是靜止圖像可以顯示產(chǎn)品的交互式 3D 模型,并為客戶提供配置器以使用選項(xiàng)自定義他們的訂單。
- 定制制造車間可以允許用戶上傳零件模型,在引擎蓋下對(duì)其進(jìn)行分析以找出可能導(dǎo)致制造問(wèn)題的問(wèn)題,然后顯示各種制造過(guò)程的分析報(bào)告或報(bào)價(jià)。
- 博物館可以通過(guò)設(shè)置虛擬游覽并在其收藏中插入某些項(xiàng)目的 3D 模型供用戶玩耍來(lái)吸引游客。
如果您銷售產(chǎn)品或服務(wù),將 3D 數(shù)據(jù)添加到您的網(wǎng)站可以豐富它。它可以讓您更好地展示您的產(chǎn)品,或增加天賦并吸引您的潛在客戶。
3D 數(shù)據(jù)如何在 Web 應(yīng)用程序中顯示?
將 3D 模型放在網(wǎng)頁(yè)上的想法基本上起源于互聯(lián)網(wǎng)的創(chuàng)建,就在 90 年代初。當(dāng)時(shí)構(gòu)思的 VRML 格式試圖提供可嵌入網(wǎng)頁(yè)的交互式 3D 場(chǎng)景的描述。VRML 場(chǎng)景的顯示和演變是 VRML 播放器的責(zé)任,它是一個(gè)瀏覽器插件,利用主機(jī)的圖形功能。
當(dāng)時(shí)硬件和網(wǎng)絡(luò)帶寬的客觀限制與 VRML 背道而馳,它從未真正受到關(guān)注。在 90 年代和 2000 年代,這些網(wǎng)站也沒(méi)有 3D 圖形進(jìn)行管理。隨著網(wǎng)絡(luò)和用戶硬件能力達(dá)到可接受的水平,將 3D 數(shù)據(jù)放到網(wǎng)絡(luò)上終于變得可行。標(biāo)準(zhǔn)化工作由 Khronos Group 推動(dòng)并得到主要瀏覽器供應(yīng)商的參與,最終形成了WebGL 規(guī)范——網(wǎng)絡(luò)上 3D 的事實(shí)上的標(biāo)準(zhǔn)技術(shù)。
粗略地說(shuō),WebGL 是 OpenGL 到瀏覽器的一個(gè)端口。更具體地說(shuō),它是一組 JavaScript API,可以將 3D 場(chǎng)景渲染到 HTML 畫(huà)布上。這些 API 直接內(nèi)置于瀏覽器的 JavaScript 引擎中,不需要插件。這是一件好事,因?yàn)檫^(guò)去的侵入性瀏覽器插件都有安全漏洞的記錄。此外,對(duì)插件的依賴,一種未包含在盒子里的技術(shù),會(huì)限制你的 3D 網(wǎng)絡(luò)應(yīng)用程序的覆蓋范圍。相反,當(dāng)您針對(duì)足夠現(xiàn)代的瀏覽器編寫(xiě) Web 應(yīng)用程序時(shí),WebGL 已經(jīng)存在 - 在所有瀏覽器中,這意味著開(kāi)發(fā)人員可以接觸到更廣泛的受眾,而用戶只需打開(kāi)網(wǎng)站即可輕松運(yùn)行。
WebGL 提供了向 GPU 提供網(wǎng)格、應(yīng)用紋理和使用著色器控制渲染過(guò)程的能力。這是一種相當(dāng)?shù)图?jí)的方法,源于 WebGL 與 OpenGL 的相似性。特別是,這意味著經(jīng)驗(yàn)豐富的圖形程序員可以輕松地轉(zhuǎn)移他們的專業(yè)知識(shí)并在另一個(gè)平臺(tái)上提高工作效率。另一方面,如果要從頭開(kāi)始實(shí)現(xiàn)復(fù)雜場(chǎng)景的渲染,并允許用戶與它們進(jìn)行交互,則需要付出巨大的努力。幸運(yùn)的是,有一些更高級(jí)的工具可以簡(jiǎn)化 WebGL 用于渲染和場(chǎng)景交互的使用。
概括
在這篇文章中,我們探討了人們可能考慮制作 3D Web 應(yīng)用程序的原因,設(shè)想了可能從包含交互式 3D 數(shù)據(jù)中受益的應(yīng)用程序類型,還考慮了當(dāng)今 Web 上支持 3D 圖形的基本技術(shù)。