• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      萬維網(wǎng)虛擬現(xiàn)實全景應(yīng)用的設(shè)計與實現(xiàn)

      2022-03-09 01:22:50劉曉林牛德雄
      軟件工程 2022年2期
      關(guān)鍵詞:萬維網(wǎng)全景展廳

      劉曉林 牛德雄

      文章編號:2096-1472(2022)-02-55-04

      DOI:10.19644/j.cnki.issn2096-1472.2022.002.013

      摘? 要:隨著5G網(wǎng)絡(luò)服務(wù)的商用,對網(wǎng)絡(luò)帶寬要求高的虛擬現(xiàn)實應(yīng)用迎來快速發(fā)展期。用戶訪問虛擬現(xiàn)實應(yīng)用通常需要專門的虛擬設(shè)備或安裝手機應(yīng)用軟件,而使用萬維網(wǎng)虛擬現(xiàn)實技術(shù),用戶訪問網(wǎng)頁鏈接就可以體驗到虛擬現(xiàn)實應(yīng)用,極大地降低了虛擬現(xiàn)實應(yīng)用的使用門檻?;诟咄卣?、高兼容、低開發(fā)成本、高性能且免費的萬維網(wǎng)虛擬現(xiàn)實開發(fā)框架技術(shù),結(jié)合學(xué)校教學(xué)成果展示的需求,開發(fā)一套萬維網(wǎng)虛擬現(xiàn)實全景應(yīng)用,就能實現(xiàn)智能手機上無須安裝軟件即可身臨其境地訪問學(xué)校的教學(xué)成果。利用這套技術(shù)方案開發(fā)萬維網(wǎng)虛擬現(xiàn)實全景應(yīng)用還可以廣泛應(yīng)用于教育、旅游、商業(yè)等行業(yè)的宣傳與體驗活動。

      關(guān)鍵詞:虛擬現(xiàn)實;全景;萬維網(wǎng);5G;萬維網(wǎng)圖形庫

      中圖分類號:TP399? ? ?文獻標(biāo)識碼:A

      Design and Implementation of Virtual Reality Panorama?Application on World Wide Web

      LIU Xiaolin, NIU Dexiong

      (Guangdong Polytechnic of Science and Technology, Zhuhai 519090, China)

      9192205@qq.com; 178074603@qq.com

      Abstract: With the commercialization of 5G network services, virtual reality applications with high network bandwidth requirements usher in a period of rapid development. Users' access to virtual reality applications usually need special virtual equipment or installation of mobile phone applications. While using World Wide Web virtual reality technology, users can experience virtual reality applications by accessing web links, which greatly reduces the threshold for using virtual reality. Considering the need for teaching achievements display, this paper proposes to develop a set of World Wide Web virtual reality panorama applications, which can realize immersive access to school achievements without installing software on smart phones. The development is based on free World Wide Web virtual reality development framework technology, which is of high expansion, high compatibility, low development cost, and high performance. The proposed World Wide Web virtual reality panorama applications with this set of technical solutions can also be widely used in publicity and experience activities such as education, tourism, commerce and other industries.

      Keywords: virtual reality; panorama; World Wide Web; 5G; WebGL

      1? ?引言(Introduction)

      隨著5G網(wǎng)絡(luò)服務(wù)的商用,對網(wǎng)絡(luò)帶寬要求高的虛擬現(xiàn)實應(yīng)用迎來了快速發(fā)展期。用戶訪問虛擬現(xiàn)實應(yīng)用通常需要專門的虛擬設(shè)備或安裝手機應(yīng)用軟件,而使用Web虛擬現(xiàn)實技術(shù),用戶只要訪問網(wǎng)頁鏈接就可以體驗到虛擬現(xiàn)實應(yīng)用,大大降低了使用門檻,擴大了應(yīng)用范圍。

      對比多種全景漫游制作技術(shù)方案,其中Three.js框架是基于原生WebGL封裝運行的三維引擎,具有拓展性高、兼容性好、開發(fā)成本低、性能優(yōu)且免費的幾大優(yōu)勢,相對更符合本項目需求的特點。利用Three.js框架可以制作出酷炫的3D動畫,還可以通過鼠標(biāo)、鍵盤、拖拽等事件形成交互,增加一些三維動畫和三維交互可以產(chǎn)生更好的用戶體驗。通過Three.js框架實現(xiàn)全景視圖應(yīng)用在房產(chǎn)、家裝行業(yè)能夠帶來更直觀的視覺體驗;應(yīng)用在電商行業(yè)可以實現(xiàn)產(chǎn)品的三維效果,讓用戶可以360 度全方位地體驗商品,給用戶帶來更好的購物體驗;還可以開發(fā)微信小游戲等。隨著應(yīng)用技術(shù)的發(fā)展、基礎(chǔ)網(wǎng)絡(luò)的建設(shè),Web虛擬現(xiàn)實技術(shù)還能得到更廣泛的應(yīng)用。

      2? ?需求分析(Requirement analysis)

      2.1? ?需求概述

      通過需求調(diào)研,結(jié)合學(xué)?!霸浦懈呗殹钡闹黝},確定選擇學(xué)校計算機學(xué)院一樓智慧展廳作為展示對象,以VR全景形式在線上進行展示。手機上無須安裝App就能隨時隨地訪問,身臨其境地參觀展廳。

      2.2? ?功能需求

      (1)場景預(yù)覽介紹:從中心區(qū)域的俯視圖開始,然后會自動過渡到平視圖,并且開始自動漫游。

      (2)場景交互:用戶可以與系統(tǒng)交互,選擇自己關(guān)注的區(qū)域進行縮放全景瀏覽,在界面上放大縮小拉近視圖,可以訪問更多詳細的區(qū)域。點擊展廳標(biāo)注點的圖片可以放大全屏展示,點擊展廳的視頻標(biāo)注可打開播放視頻,還可以訪問線上介紹展示的資料數(shù)據(jù)。

      (3)場景分享介紹:點擊下方菜單的“分享”按鈕,生成二維碼圖片,用戶可以通過分享的二維碼進行掃碼訪問全景視圖。

      (4)場景互動介紹:點擊下方菜單的“點贊”按鈕,可以實時地為全景視圖點贊互動,提升區(qū)域熱度。

      (5)設(shè)備模式切換介紹:默認展示的視角是手機VR全景視圖,點擊右上角的“設(shè)備”按鈕,可以配合VR頭戴設(shè)備進行全景預(yù)覽,視覺體驗更加真實,用戶體驗更加良好。

      (6)音效開關(guān):點擊右上角的音效按鈕,可以打開/關(guān)閉音效。

      3? ?技術(shù)選型與設(shè)計(Technical selection and design)

      首先,最為常用的全景漫游制作工具是Pano2vr和Krpano。

      (1)Pano2vr工具操作簡單,非常實用,通過導(dǎo)入全景圖、設(shè)置交互熱點、微調(diào)與導(dǎo)出幾個步驟即可直接生成HTML5、Flash、QuickTime等格式的全景。Pano2vr對PC機、iOS的支持比較好,對Android的支持表現(xiàn)不佳。Pano2vr工具需要購買授權(quán)碼才可商用,非免費。

      (2)Krpano工具功能強大完善,各平臺兼容性高,拓展性很強,各類VR場景特效都可支持。但它需要使用Krpano xml編程語言,沒有圖形用戶界面,新手上手及后期維護成本較大,雖然生成的全景漫游專業(yè),但對載入速度、內(nèi)存占用都有影響。若想做高階、個性化、定制化全景漫游項目,Krpano工具是最好的選擇。Krpano工具需要購買授權(quán)碼才可商用,非免費。

      (3)Three.js框架是GitHub的一個開源項目,是使用JavaScript語言編寫3D程序的框架,具有拓展性高、兼容性好、開發(fā)成本低、高性能且免費的幾大優(yōu)勢。

      Flash、QuickTime以及基于Java、JavaScript語言開發(fā)的其他方式不一一具體說明,大致的優(yōu)劣勢對比如表1所示(具體評分僅供參考,軟件版本更新也許會有各方面的升級)。

      經(jīng)過比較,Three.js具有拓展性高、兼容性高、開發(fā)成本低、性能高并且免費的幾大優(yōu)勢,結(jié)合需求調(diào)研結(jié)果,相對更符合本項目需求的特點。

      Three.js技術(shù)體系如圖1所示。

      (1)Three.js是基于WebGL的JavaScript開源框架,因其易用性好而被廣泛使用。

      (2)WebGL是一種JavaScript的3D圖形接口,基于OpenGL ES 2.0。OpenGL ES 2.0是OpenGL針對手機、游戲主機等嵌入式設(shè)備的版本。

      (3)OpenGL是開放式圖形標(biāo)準(zhǔn),跨編程語言、跨平臺,C、C++、Java、JavaScript、Python等都能支持OpenGL,很多CAD制圖軟件都采用這種標(biāo)準(zhǔn)。

      (4)Canvas是HTML5的畫布元素,在使用Canvas時,需要用到Canvas的上下文,可以用2D上下文繪制二維的圖像,也可以使用3D上下文繪制三維的圖像,其中3D上下文就是指WebGL。

      使用Three.js框架的場景(scene)、相機(camera)和渲染器(renderer)三個組件進行處理,把物體渲染到網(wǎng)頁上展示。場景是容器,把物體放置在構(gòu)建的3D場景中的具體位置上;相機對著場景拍攝,拍攝結(jié)果通過渲染器實時地繪制在瀏覽器上,如圖2所示。

      立方體網(wǎng)格模型和光照組成了一個虛擬的三維場景。虛擬相機就像生活中使用的相機一樣可以拍照,只不過是拍攝虛擬的景物,拍攝一個物體的時候需要設(shè)置相機的位置、角度和投影方式。創(chuàng)建好一個三維場景,配置好相機,按下“快門”,通過渲染器進行拍照,執(zhí)行渲染操作后就生成了渲染結(jié)果投影圖。

      其中,相機拍攝處理數(shù)據(jù)的方法是以相機角度作為場景起源的所有頂點坐標(biāo),通過矩陣計算將世界坐標(biāo)轉(zhuǎn)換成相對于相機位置和方向的觀察視圖坐標(biāo)。定義相機時,需要根據(jù)它在世界空間中的位置及它所看的方向、指向相機右側(cè)的向量和指向相機上方的向量,創(chuàng)建一個以相機的位置作為原點的三維垂直坐標(biāo)系統(tǒng),如圖3所示。

      矩陣的最大好處就是基于坐標(biāo)空間的三個軸,再加上一個位置向量就能建立一個變換矩陣。用這個矩陣乘上任何位置向量都可以將這個位置向量轉(zhuǎn)換到觀察坐標(biāo)系中。觀察矩陣LookAt的計算如下式所示:

      R表示右方(Right)向量,U表示上方(Up)向量,D表示光線方向,P表示位置向量。注意,位置向量需要取它的反方向,因為物體是朝著攝像機相反的方向移動的。

      總之,使用攝像機的位置、攝像機的觀察目標(biāo)(可以生成光線方向),以及世界空間的右方向量、上方向量這些數(shù)據(jù),通過計算就可以生成任意的觀察矩陣;相機位置移動,重新計算就可以生成動態(tài)圖像,實現(xiàn)在虛擬現(xiàn)實場景中移動的效果。

      使用Three.js開發(fā)Web虛擬現(xiàn)實全景應(yīng)用的核心流程如圖4所示。

      4? ?系統(tǒng)實現(xiàn)(System implementation)

      創(chuàng)造一個球體,并在其表面貼上專門的智慧校園展廳素材圖,然后將相機放在球體的中心,監(jiān)聽手指拖動或者陀螺儀移動來改變相機的方向,從而實現(xiàn)全景圖。通過下面這一行代碼先引入Three.js文件,然后按步驟實現(xiàn)虛擬現(xiàn)實全景應(yīng)用。

      <script src="https://threejs.org/build/three.min.js"></script>

      (1)創(chuàng)建場景

      場景即是畫布,是所有物體(object)的容器。在最開始的時候?qū)鼍皩嵗?,將?zhǔn)備好的物體都添加到場景中即可。

      //創(chuàng)建場景

      var scene = new THREE.Scene();

      (2)向場景中添加參數(shù)

      //生成一個球體,并讓相機位于它的中心

      var geometry = new THREE.SphereGeometry(500, 60, 40);

      geometry.scale(-1,1,1);

      //添加材質(zhì):把準(zhǔn)備好的背景圖添加到材質(zhì)上。

      var material = new THREE.MeshBasicMaterial({

      map: new THREE.TextureLoader().load(opt.url)

      });

      //場景中添加已準(zhǔn)備好的物體。

      var campusObject = new THREE.Mesh(geometry, material);

      scene.add(campusObject);

      (3)創(chuàng)建相機

      用戶是通過相機來查看在sence下的三維場景的。在Three.js里包含了正交投影照相機(Orthographic Camera)和透視投影照相機(Perspective Camera)兩種相機,從模擬人眼看物體的方式來選擇,透視投影照相機更適合。相機需要傳的四個參數(shù)分別是fov(相機攝像角度,可用于放大和縮小)、width/height(寬高比)、near(近距離界限)、far(遠距離界限),如圖5所示。

      首先要創(chuàng)建一個相機:

      var camera = new THREE.PerspectiveCamera(45, width/height, 1, 100); //創(chuàng)建相機

      (4)設(shè)置相機參數(shù)

      設(shè)置相機的位置與相機的面向。

      camera.position.set(5,10,25); // 設(shè)置相機的位置

      camera.lookAt(new THREE.Vector3(0, 0, 0)); // 相機看向原點

      (5)創(chuàng)建渲染器

      渲染器用來設(shè)定渲染的結(jié)果會在頁面的什么元素上面呈現(xiàn),以及按什么規(guī)則來渲染。

      /* 渲染器 */

      var renderer = new THREE.WebGLRenderer({antialias:true});

      renderer.setPixelRatio(window.devicePixelRatio);

      renderer.setSize(opt.width, opt.height);

      canvas = renderer.domElement;

      (6)添加canvas元素

      opt.container.appendChild(canvas); // 添加canvas

      監(jiān)聽滑動:通過監(jiān)聽touchstart、touchmove、touchend來判斷手指劃過的距離,并以此計算出相機應(yīng)該在x軸和y軸方向上各移動多少角度。一般不考慮z軸,因為相機默認的是由+z至-z拍攝,z軸轉(zhuǎn)動只會讓視線變斜。

      監(jiān)聽陀螺儀:陀螺儀也分為x軸(beta:-180°至+180°)、y軸(gamma:-90°至+90°)、z軸(alpha:0°至360°)。先通過window、orientation判斷是否支持陀螺儀,如果支持就監(jiān)聽陀螺儀事件,并把變化的角度傳給相機。

      (7)進行渲染

      Three.js框架中的requestAnimationFrame(實時渲染)能讓canvas實時更新,進行相機視角變化后的渲染。

      // 實時渲染

      var render = function () {

      requestAnimationFrame( render );

      lat -= orientLat;

      lon -= orientLon;

      camera.rotation.x = lat * Math.PI / 180;

      camera.rotation.y = lon * Math.PI / 180;

      camera.rotation.z = 0;

      renderer.render(scene, camera);

      };

      render();

      利用智慧校園展廳的素材,通過上述Web虛擬現(xiàn)實全景應(yīng)用開發(fā)流程開發(fā)完成的校園Web虛擬現(xiàn)實全景應(yīng)用,可以體驗到身臨其境的效果,也可以進行交互。智能運營中心視角如圖6(a)所示,前方視角如圖6(b)所示。

      5? ?結(jié)論(Conclusion)

      基于Three.js開發(fā)的Web虛擬現(xiàn)實全景應(yīng)用,具有拓展性高、兼容性好、開發(fā)成本低、性能高的優(yōu)點。基于Three.js開發(fā)的校園移動Web虛擬現(xiàn)實全景應(yīng)用已成功發(fā)布到學(xué)校官網(wǎng)信息中心“云中廣科”智慧校園建設(shè)成果展示欄目,以Web虛擬現(xiàn)實全景的形式向社會展示,實現(xiàn)了在智能手機上不安裝App就能隨時隨地訪問,身臨其境地參觀展廳的展示內(nèi)容?;赥hree.js開發(fā)Web虛擬現(xiàn)實全景應(yīng)用的技術(shù)可以推廣用于許多學(xué)校的成果展示,以及企業(yè)產(chǎn)品的展示營銷。

      參考文獻(References)

      [1] 馮武鋒,高杰,徐卸土,等.5G應(yīng)用技術(shù)與行業(yè)實踐[M].北京:人民郵電出版社,2020:55.

      [2] 姚軍,黨智軍,胡琳卿.VR技術(shù)在高校校園中的應(yīng)用[J].中國科技信息,2019(10):69-70.

      [3] w3sft.走進3D的奇妙世界[EB/OL].(2019-12-05)[2021-11-27].https://zhuanlan.zhihu.com/p/95463367.

      [4] 王延朝.基于Krpano的三維全景系統(tǒng)的開發(fā)和應(yīng)用[D].上海:華東師范大學(xué),2012.

      [5] (美)喬斯·德克森.Three.js開發(fā)指南(基于WebGL和HTML5在網(wǎng)頁上渲染3D圖形和動畫)[M].3版.周翀,張薇,譯.北京:機械工業(yè)出版社,2019:24.

      [6] 趙海鵬,周楊,卞和方.基于Three.js的三維虛擬校園系統(tǒng)設(shè)計與實現(xiàn)[J].蘭州交通大學(xué)學(xué)報,2019,38(3):85-94.

      [7] KRAIS24.OpenGL相機[EB/OL].(2021-07-29) [2021-11-24].https://blog.csdn.net/krais_wk/article/details/119182495.

      [8] LIU D W, PENG J, WANG Y Y, et al. Implementation of interactive three-dimensional visualization of air pollutants using WebGL[J]. Environmental Modelling & Software, 2019, 114(04):188-194.

      [9] 如何用Three.js快速實現(xiàn)全景圖[EB/OL].(2019-11-08)[2021-11-24].https://zhuanlan.zhihu.com/p/40881782.

      作者簡介:

      劉曉林(1978-),男,碩士,高級工程師.研究領(lǐng)域:移動應(yīng)用開發(fā),虛擬現(xiàn)實,IT項目管理.

      牛德雄(1965-),男,碩士,副教授.研究領(lǐng)域:Web開發(fā),軟件工程,需求工程.

      基金項目:由廣東科學(xué)技術(shù)職業(yè)學(xué)院發(fā)展建設(shè)專題(XJJS202008)“VR全景展示移動Web應(yīng)用項目”資助.

      2555500520268

      猜你喜歡
      萬維網(wǎng)全景展廳
      不斷改變,不斷進步 參觀KEF展廳后隨筆
      戴上耳機,享受全景聲 JVC EXOFIELD XP-EXT1
      BESPOKE ROMANCE展廳
      GAB展廳
      NORHOR成都展廳
      5 Fast Facts About the World Wide Web on Its 30th Birthday萬維網(wǎng)30年:小知識一覽
      英語世界(2019年7期)2019-09-10 07:22:44
      萬維網(wǎng)30歲,創(chuàng)始人發(fā)公開信表達“不滿意”
      全景敞視主義與偵探小說中的“看”
      從5.1到全景聲就這么簡單 FOCAL SIB EVO DOLBY ATMOS
      全景搜索
      特別文摘(2016年21期)2016-12-05 17:53:36
      木里| 鄂州市| 丹寨县| 鹤庆县| 龙州县| 雷州市| 塔河县| 历史| 山阴县| 海淀区| 凤凰县| 五原县| 武强县| 云安县| 白山市| 舟曲县| 鸡东县| 洪雅县| 平度市| 玉门市| 五大连池市| 区。| 惠州市| 江陵县| 新民市| 龙泉市| 芒康县| 高尔夫| 厦门市| 于都县| 大埔县| 太白县| 东乌珠穆沁旗| 中方县| 丁青县| 汉中市| 莎车县| 弥勒县| 师宗县| 利津县| 新蔡县|