成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

NVisionXR引擎基本介紹-創(chuàng)新互聯(lián)

NVisionXR引擎基本介紹 

一. 介紹 

1.1 NVisionXR是什么? 

      NVisionXR引擎是全球首款跨平臺多兼容的原生AR應(yīng)用開發(fā)引擎,讓AR應(yīng)用開發(fā)更高效。 

1.2 為什么是NVisionXR? 

        NVisionXR引擎是專門為AR應(yīng)用開發(fā)而設(shè)計(jì),提供了一套3D渲染引擎及AR模塊接口,能夠幫助開發(fā)者更高效地開發(fā)原生AR應(yīng)用。它具有如下的特點(diǎn): 
① 采用原生開發(fā)方式,與原生應(yīng)用結(jié)合好 
② 開發(fā)的應(yīng)用包體小,更有利于AR產(chǎn)品推廣 
③ 學(xué)習(xí)成本低 
④ 專為AR應(yīng)用開發(fā)而設(shè)計(jì),兼容多款A(yù)R平臺 

1.3 現(xiàn)有版本特性 

     NVisionXR現(xiàn)有版本支持3D渲染功能、多媒體功能以及AR跟蹤功能。 

1.3.1 渲染功能特性 

模型渲染,包括模型貼圖,模型骨骼動(dòng)畫 
燈光陰影,包括點(diǎn)光源, 平行光, 聚光燈 
運(yùn)動(dòng), 支持Bezier曲線運(yùn)動(dòng) 
粒子系統(tǒng), 集成了particle universe 粒子系統(tǒng)庫,能夠?qū)崿F(xiàn)酷炫的粒子動(dòng)畫 

1.3.2 多媒體功能特性 

NVisionXR引擎集成了ijkPlayer, 從而能夠?qū)崿F(xiàn)在3D空間中渲染視頻的功能。 

1.3.3 增強(qiáng)現(xiàn)實(shí)跟蹤功能特性 

兼容了Vuforia平臺基本功能, 能夠識別多個(gè)Marker圖片。 

二 系統(tǒng)架構(gòu) 

2.1 系統(tǒng)層級

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),梅江企業(yè)網(wǎng)站建設(shè),梅江品牌網(wǎng)站建設(shè),網(wǎng)站定制,梅江網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,梅江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

NVisionXR引擎基本介紹


如上圖所示, NVisionXR的框架在結(jié)構(gòu)上大體分為三個(gè)層級: 
最底層是渲染引擎和集成的一些第三方庫。 
中間層是管理層,負(fù)責(zé)將底層提供的功能進(jìn)行封裝,組合,抽象,再以一種更加簡便的形 
式提供給上層。 
上層是應(yīng)用層, 它是用戶進(jìn)行應(yīng)用開發(fā)直接對接的一層。 

2.2 MVC框架



NVisionXR引擎基本介紹


     NVisionXR引擎應(yīng)用層采用MVC的設(shè)計(jì)模式,這種設(shè)計(jì)模式更貼合原生應(yīng)用開發(fā)的方式,使得開發(fā)更簡便。如上圖所示,NVisionXR的NVWidget類相當(dāng)于MVC的View, 負(fù)責(zé)顯示某個(gè)被渲染對象。NVisionXR的NVScenePlay類相當(dāng)于MVC的Controller, 它負(fù)責(zé)管理及配置NVWidget所需要的數(shù)據(jù)。 
     
三 基本概念 

3.1 坐標(biāo)系



NVisionXR引擎基本介紹

   如上圖,分別為左手坐標(biāo)系和右手坐標(biāo)系的示意圖。 
   NVisionXR采用右手坐標(biāo)系,其Z軸為手機(jī)屏幕向外的方向。NVisionXR場景中的坐標(biāo)系原點(diǎn)為(0, 0, 0)點(diǎn)。 

3.2 單位 

3.2.1 角度 
     NVisionXR采用角度制,其范圍為0~360度。 

3.2.2 尺度 

     物體大小的單位為cm, 可參考3dmax,默認(rèn)的系統(tǒng)單位cm時(shí),所表示的模型大小。 

四. SDK常用類 

4.1 執(zhí)行類 NVAppDirector 
     NVAppDirector為NVisionXR的執(zhí)行類,它主要負(fù)責(zé)添加所需運(yùn)行的場景NVScenePlay, 添加功能插件及配置一些全局的功能屬性。
     NVisionXR在一啟動(dòng)的時(shí)候會進(jìn)入到一個(gè)場景中,首次進(jìn)入的場景為主場景,而隨后切換的場景為普通場景。NVisionXR需要通過NVAppDirector來添加主場景和普通場景。用戶創(chuàng)建的NVScenePlay只有被添加到NVAppDirector中才能被使用。 
     NVAppDirector還可以添加一些功能插件,如Vuforia的AR跟蹤功能等。還可以配置一些全局的屬性,如時(shí)候開啟陰影等,同時(shí)NVAppDirector還承擔(dān)了NVisionXR中派發(fā)任務(wù)的職責(zé),如NVScenePlay生命周期階段的派發(fā)和場景交互事件的分發(fā)等。 
      NVAppDirector類似于Android開發(fā)里的AndroidManifest.xml或者iOS開發(fā)里的info.plist。 

4.2 上下文 NVContext 

      NVContext是獲取關(guān)于App全局信息的接口類。它允許用戶能夠獲取相關(guān)的資源管理類NVResoures, NVWorld類等。 
      同時(shí)NVContext還提供了場景與場景之間跳轉(zhuǎn)的接口startScenePlay方法, 即從當(dāng)前的NVScenePlay場景跳轉(zhuǎn)到其它的NVScenePlay場景。 
      以后NVContext會提供更多關(guān)于中間層功能的接口。

NVisionXR引擎基本介紹

4.3 Controller類 NVScenePlay 

    NVScenePlay相當(dāng)于MVC模式中Controller的作用,在該類中,我們可以添加場景中的內(nèi)容。同時(shí)NVScenePlay還定義了一整套完整的生命周期流程: 
    onCreate方法是我們創(chuàng)建每個(gè)NVScenePlay內(nèi)容的地方,在這里我們會調(diào)用addWidget, addAnimEffect等方法。 
     onStart方法是當(dāng)NVScenePlay被激活將要進(jìn)入的時(shí)候會被調(diào)用,這個(gè)時(shí)候NVScenePlay將要顯示,此時(shí)NVScenePlay處于激活狀態(tài), 其內(nèi)容還沒有完全被顯示,因此,該階段我們可以被視為準(zhǔn)備階段。 在該階段,我們可以將NVWorld中創(chuàng)建的燈光等添加到場景中。 
     onResume方法在整個(gè)場景準(zhǔn)備好后,會被調(diào)用。在這個(gè)階段,整個(gè)場景中的內(nèi)容會被完全顯示出來。 
     onPause方法當(dāng)手機(jī)app隱藏到后臺,或當(dāng)該NVScenePlay退出時(shí)會被調(diào)用,此時(shí)NVScenePlay處于未激活狀態(tài)。 
    onStop方法是NVScenePlay完全退出時(shí),會調(diào)用該方法,此時(shí)我們需要刻意在這個(gè)方法里,把一些全局的對象如燈光從該場景中移除。 
    onDestroy方法,當(dāng)我們銷毀應(yīng)用程序時(shí),會執(zhí)行所有注冊到NVAppDirector中的NVScenePlay的該方法。    

4.4 視圖類 NVWidget 

NVWidget類似于MVC架構(gòu)中的View的作用。NVWidget是所有場景中可顯示對象的父類。 
不同于傳統(tǒng)2D應(yīng)用中的View,NVWidget需要定義整個(gè)其可顯示對象的形狀,外表和姿態(tài)。這些形狀,外表和3D姿態(tài)可以抽象為一個(gè)模型數(shù)據(jù)。 
為此,在NVWidget中,我們提供了setShape這個(gè)方法,用于設(shè)置物體顯示需要的形狀,該方法的參數(shù)接收一個(gè)關(guān)于形狀的文件名字。該文件的格式為mesh 格式 (在5.1.1節(jié)中會介紹)。 
此外,NVWidget可以通過setPosition來調(diào)整自身的位置,通過setScale來控制自身大小,通過pitch, yaw, roll方法來分別繞X軸, Y軸, Z軸旋轉(zhuǎn)來改變物體的姿態(tài)。 

4.5 資源管理類 NVResources 


NVResources是一個(gè)資源管理類,它主要提供給用戶如何監(jiān)聽資源加載,獲取資源信息的接口。 

4.5.1監(jiān)聽資源加載 


該功能主要通過設(shè)置NVResourcesListener來完成的,NVResourcesListener主要有三個(gè)方法: 
onLoadStart,用于通知用戶目前開始加載的資源組,以及該組所包含的資源文件數(shù)目。一般NVisionXR會自動(dòng)將資源分為三組:一組是必須添加的,即NVisionXR自帶的資源文件;一組是用戶根據(jù)我們的資源目錄 (參見,第五章資源目錄)添加的資源文件;還有一組是用戶自己定義的文件路徑中的文件。 
onLoadFile,用于通知用戶目前開始加載的資源文件,以及該資源文件在其資源組中的位置。 
onLoadEnd, 通知用戶所有資源文件已經(jīng)加載完畢。 

4.5.2添加資源目錄 

用戶可以通過該類的addResourceLocation方法,來添加它們自己創(chuàng)建的資源文件夾路徑。 

4.5.3獲取資源信息接口 

獲取資源信息后,用戶可以通過程序接口來操作相應(yīng)的資源文件, 目前這部分功能還沒有完全開放。 
       
五 資源目錄 

   用戶在使用NVisionXR時(shí),需要添加資源,為此,為了方便用戶使用和管理,我們提供了兩個(gè)文件夾用于管理資源文件: 
   一個(gè)是nvisionXR文件夾,該文件夾下存放的是nvisionXR引擎所必需使用的資源文件路徑,一般不允許用戶更改。 一個(gè)時(shí)user文件夾,可以允許用戶添加自己的資源。(ios對應(yīng)的這兩個(gè)文件夾,一個(gè)是NVRes.bundle, 一個(gè)是UserRes.bundle) 
    nvisionXR和user文件夾下都會有一些準(zhǔn)備好的文件夾: 
    1 models文件夾:用于存放模型相關(guān)的文件,如mesh文件,skeleton文件 
    2 materials文件夾: 用于存放NVWidget設(shè)置Appearance相關(guān)的資源文件,如material腳本,存放在scripts子文件夾中;program腳本,存放在programs子文件夾中;紋理圖片,存放在textures子文件夾中。 
    3 packs文件夾,用于存放壓縮的zip文件。 
    4 particle文件夾,用于存放粒子系統(tǒng)的腳本文件,如pu文件等。 

     以上各個(gè)文件夾的路徑都在resources.cfg配置文件中定義,所有資源必需存放在資源目錄里才能夠使用 
    以上資源目錄在Android工程里需要放在assets文件夾根目錄下,ios的兩個(gè)bundle放在工程根目錄下即可。 

5.1 Models 

models文件夾下存放了兩類文件,一類是mesh文件,一類是skeleton文件。這兩個(gè)文件是NVisionXR向用戶提供的關(guān)于如何定義NVWidget形體以及如何為其添加骨骼動(dòng)畫的資源文件。 
mesh和skeleton格式的文件自身具有體積小的優(yōu)勢。 

5.1.1 mesh文件 

mesh文件,定義了NVWidget的形狀,是nvisionXR向用戶提供的一種模型格式,其內(nèi)部包含了模型的頂點(diǎn),紋理坐標(biāo),頂點(diǎn)法線等信息。 
mesh文件中的頂點(diǎn)需要通過material文件來為其賦予顏色屬性 ,即其外表。 

5.1.2 skeleton文件 

skeleton文件是NVWidget的子類NVSkeletonWidget所使用的資源文件,它為NVWidget定義了關(guān)于其形狀的一組動(dòng)畫。每個(gè)動(dòng)畫都有一個(gè)名字,可以通過NVSkeletonWidget的addAnimation方法進(jìn)行添加, 目前NVSkeletonWidget只能添加一個(gè)動(dòng)畫,后續(xù)NVisionXR會提供支持添加多個(gè)動(dòng)畫,及動(dòng)畫之間的切換。 
skeleton文件里包括了骨骼和骨骼動(dòng)畫的關(guān)鍵幀數(shù)據(jù)。 
skeleton文件的名字要與mesh文件的名字一致,這樣當(dāng)我們設(shè)置mesh文件時(shí),程序會自動(dòng)索引到相關(guān)mesh文件。 

5.2  Materials 
     materials文件夾下有兩類文件: 
     program 腳本文件,可以允許用戶自定義編程的shader, 目前支持shader語言為glsl 
     material腳本文件 定義了關(guān)于NVWidget整個(gè)外表相關(guān)的屬性。 

5.2.1 program文件 

program腳本提供了如何使用自己的shader文件,這部分功能目前暫不對用戶開放。 

5.2.2 material 文件 

material文件定義了物體的外表屬性,即材質(zhì)信息。 
其大致結(jié)構(gòu)如下: 
       material name 
       { 
         technique 
         { 
            pass 
            { 
            } 
         } 
       } 
       上述是一個(gè)樹結(jié)構(gòu), material是根節(jié)點(diǎn), technique和 pass是子節(jié)點(diǎn), 節(jié)點(diǎn)具有屬性和body, 屬性可以是名字,  body需要在{}定義。 
       material節(jié)點(diǎn)里, 至少要定義一個(gè)technique, 一般情況下,我們只需要一個(gè)technique就可以了, pass是我們主要定義材質(zhì)屬性的地方。 
       pass中常用屬性參數(shù)有: 
       ambient 定義環(huán)境光顏色, 格式為rgb三個(gè)值, 其格式為amient r g b 
      diffuse 定義一個(gè)物體表面漫反射系數(shù),當(dāng)為全白時(shí),即1.0, 1.0, 1.0時(shí), 表示物體會反射光的全部顏色, 如果是0.0, 0.0, 0.0, 則物體不會反射光的顏色,表現(xiàn)為全黑,格式為rgba四個(gè)值,其格式為 diffuse r g b a 
        注意上述rgba的值都在0~1之間。 

        texture_unit表示pass的一個(gè)子節(jié)點(diǎn), 在其里面可以用textures里圖片物體表面的紋理。 
        其格式如下: 
        texture_unit 
        { 
           texture image_name 
        }      

5.2.3 圖片文件 

目前nvisionxr 支持jpg, png, bmp, tga,等格式的圖片文件。 

5.3 packs 

      packs文件夾里,存放了我們壓縮成zip格式的壓縮文件。 

5.3.1 zip文件 

zip文件從某種意義上說也是一種文件夾, 只不過它將其中的資源集中管理起來,并能夠減少其中的體積。 
一般,我們會將關(guān)于一個(gè)物體的所有相關(guān)資源,壓縮成一個(gè)zip文件,如將mesh, skeleton, material文件存放在一個(gè)zip里。 這時(shí)候, mesh , skeleton, material的名字最好一致, 方便程序索引, 如Rabbit.mesh, Rabbit.skeleton, Rabbit.material存放在一個(gè)zip文件夾中,我們通過NVWidget類的setShape方法設(shè)置Rabbit.mesh, 那么程序能夠自動(dòng)索引到Rabbit.skeleton 和 Rabbit.material。 

5.4 particle 

5.4.1 pu文件 

particle是存放粒子系統(tǒng)腳本的地方, nvisionxr的粒子系統(tǒng)采用的是particle universe第三方庫, 其支持的腳本為pu文件,關(guān)于如何使用particle universe, 請?jiān)敿?xì)看particle universe使用教程。



另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁題目:NVisionXR引擎基本介紹-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article48/dcjohp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、App設(shè)計(jì)做網(wǎng)站、商城網(wǎng)站、小程序開發(fā)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

沅江市| 桐柏县| 明水县| 射洪县| 宿州市| 南汇区| 宿州市| 轮台县| 清涧县| 凌云县| 宣汉县| 襄汾县| 吐鲁番市| 林口县| 高碑店市| 天津市| 云梦县| 陈巴尔虎旗| 大余县| 通海县| 肃宁县| 南乐县| 六枝特区| 洛宁县| 赤壁市| 新龙县| 南和县| 阿坝县| 云梦县| 莱芜市| 阿拉善左旗| 正定县| 卓资县| 永清县| 大竹县| 凤凰县| 丰都县| 桃源县| 西乌珠穆沁旗| 武夷山市| 铜梁县|