本發(fā)明實(shí)施例涉及圖像處理技術(shù)領(lǐng)域,特別涉及一種圖像繪制方法及裝置。
背景技術(shù):
增強(qiáng)現(xiàn)實(shí)(ar,augmentedreality)技術(shù)是一種將虛擬世界和現(xiàn)實(shí)世界疊加到同一畫面或空間中,使得虛擬世界和現(xiàn)實(shí)世界同時(shí)存在的技術(shù)。
相關(guān)技術(shù)中,當(dāng)用戶需要體驗(yàn)ar功能時(shí),用戶可以觸發(fā)終端下載應(yīng)用程序(app,application),終端通過下載的app體驗(yàn)ar功能。
由于終端下載app時(shí),需要耗費(fèi)較長的時(shí)間,因此,相關(guān)技術(shù)中,終端獲取ar功能的效率較低。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明實(shí)施例提供了一種圖像繪制方法及裝置。技術(shù)方案如下:
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種圖像繪制方法,該方法包括:
通過瀏覽器獲取增強(qiáng)現(xiàn)實(shí)ar網(wǎng)頁的統(tǒng)一資源定位符url;
通過所述瀏覽器根據(jù)所述url從服務(wù)器中獲取所述ar網(wǎng)頁的網(wǎng)頁信息,所述網(wǎng)頁信息中包含虛擬對象所對應(yīng)的信息,所述虛擬對象為用于繪制在所述ar網(wǎng)頁中的對象;
根據(jù)所述網(wǎng)頁信息繪制包含所述虛擬對象的所述ar網(wǎng)頁。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種圖像繪制裝置,該裝置包括:
獲取模塊,用于通過瀏覽器獲取增強(qiáng)現(xiàn)實(shí)ar網(wǎng)頁的統(tǒng)一資源定位符url;
所述獲取模塊,還用于通過所述瀏覽器根據(jù)所述url從服務(wù)器中獲取所述ar網(wǎng)頁的網(wǎng)頁信息,所述網(wǎng)頁信息中包含虛擬對象所對應(yīng)的信息,所述虛擬對象為用于繪制在所述ar網(wǎng)頁中的對象;
繪制模塊,用于根據(jù)所述網(wǎng)頁信息繪制包含所述虛擬對象的所述ar網(wǎng)頁。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
在通過瀏覽器獲取到ar網(wǎng)頁的url之后,可以通過瀏覽器根據(jù)該url從服務(wù)器中獲取ar網(wǎng)頁的網(wǎng)頁信息,該網(wǎng)頁信息中包括虛擬對象所對應(yīng)的信息;根據(jù)該網(wǎng)頁信息繪制包含虛擬對象的ar網(wǎng)頁;也即通過ar網(wǎng)頁來實(shí)現(xiàn)ar功能,解決了相關(guān)技術(shù)中終端下載app需要耗費(fèi)較長時(shí)間,終端獲取ar功能的獲取效率較低的問題;達(dá)到了可以提高終端獲取ar功能的獲取效率的效果。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明各個(gè)實(shí)施例所涉及的實(shí)施環(huán)境的示意圖;
圖2是本發(fā)明一個(gè)實(shí)施例提供的圖像繪制方法的流程圖;
圖3是本發(fā)明一個(gè)實(shí)施例提供的圖像繪制方法中詢問用戶是否允許調(diào)用攝像頭時(shí)的示意圖;
圖4是本發(fā)明一個(gè)實(shí)施例提供的圖像繪制方法中繪制的webar頁面的示意圖;
圖5是本發(fā)明一個(gè)實(shí)施例提供的圖像繪制方法的另一流程圖;
圖6是本發(fā)明一個(gè)實(shí)施例提供的圖像繪制裝置的示意圖;
圖7是本發(fā)明一個(gè)實(shí)施例提供的終端的示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
請參考圖1,其示出了本發(fā)明各個(gè)實(shí)施例提供的圖像繪制方法所涉及的實(shí)施環(huán)境的示意圖,如圖1所示,該實(shí)施環(huán)境包括終端110、攝像頭120和服務(wù)器130。其中:
終端110是指安裝有瀏覽器且具有聯(lián)網(wǎng)功能的設(shè)備。瀏覽器可以是獨(dú)立的app,也可以為某一app中的內(nèi)置瀏覽器,本實(shí)施例對此并不做限定。實(shí)際實(shí)現(xiàn)時(shí),終端110可以為諸如智能手機(jī)、平板電腦、筆記本電腦、膝上型便攜計(jì)算機(jī)或者臺式電腦之類的設(shè)備,對此并不做限定。
攝像頭120可以為迷你攝像頭、針孔攝像頭或者其它類型的攝像頭,本實(shí)施例對此并不做限定。并且,此處所說的攝像頭120是能夠采集圖像的一切設(shè)備的總稱,對其實(shí)際實(shí)現(xiàn)時(shí)的命名并不做限定。
終端110和攝像頭120可以為相互獨(dú)立的設(shè)備,并且終端110與攝像頭120可以進(jìn)行信息交互,比如,攝像頭120為通過通用串行總線(universalserialbus,usb)接口連接終端110并且進(jìn)行信息傳輸??蛇x地,攝像頭120還可以集成在終端110中,比如,終端120為集成有攝像頭的智能手機(jī),通常情況下,攝像頭120可以為終端120的后置攝像頭,本實(shí)施例對此并不做限定。
服務(wù)器130是指用于為瀏覽器提供后臺服務(wù)的服務(wù)器,該服務(wù)器130可以由一臺服務(wù)器組成,也可以為由多臺服務(wù)器組成的服務(wù)器集群,對此并不做限定。
在上述實(shí)施環(huán)境中,終端110和服務(wù)器130可以通過有線或者無線網(wǎng)絡(luò)連接。
請參考圖2,其示出了本發(fā)明一個(gè)實(shí)施例提供的圖像繪制方法的方法流程圖,本實(shí)施例以該圖像繪制方法用于圖1所示的終端中。如圖2所示,該圖像繪制方法可以包括:
步驟201,通過瀏覽器獲取增強(qiáng)現(xiàn)實(shí)ar網(wǎng)頁的統(tǒng)一資源定位符(uniformresourelocator,url)。
ar功能可以通過ar網(wǎng)頁的形式發(fā)布和傳播,在用戶需要體驗(yàn)ar功能時(shí),用戶可以在終端中打開對應(yīng)的ar網(wǎng)頁。相應(yīng)的,終端可以接收到打開ar網(wǎng)頁的觸發(fā)信號,在接收到該觸發(fā)信號之后,終端中的瀏覽器即可獲取到該ar網(wǎng)頁的url。其中,ar網(wǎng)頁是指能夠?qū)崿F(xiàn)ar功能的web頁面。
觸發(fā)信號可以為在瀏覽器的地址欄中輸入ar網(wǎng)頁的網(wǎng)頁地址的輸入信號;或者,終端掃描圖形碼的掃描信號;或者,終端識別圖形碼的識別信號;又或者,接收到的點(diǎn)擊該網(wǎng)頁鏈接的點(diǎn)擊信號。其中,圖形碼可以為二維碼或者條形碼,圖形碼中可以攜帶有ar網(wǎng)頁的url,對此并不做限定。
在觸發(fā)信號為掃描信號時(shí),終端可以通過瀏覽器的應(yīng)用程序編程接口(applicationprogramminginterface,api)調(diào)用瀏覽器,調(diào)用的瀏覽器可以根據(jù)掃描得到的圖形碼中的內(nèi)容得到ar網(wǎng)頁的url??蛇x地,終端可以通過系統(tǒng)中的瀏覽器的api調(diào)用系統(tǒng)中的瀏覽器,或者,在掃描圖形碼時(shí)使用的客戶端中有內(nèi)置瀏覽器時(shí),終端還可以通過該內(nèi)置瀏覽器的api調(diào)用該內(nèi)置瀏覽器,本實(shí)施例對此并不做限定。比如,小花在體驗(yàn)?zāi)骋籥r網(wǎng)頁的ar功能之后,想向好友小剛推薦該ar網(wǎng)頁,此時(shí),小花可以向小剛展示該ar網(wǎng)頁所對應(yīng)的二維碼,小剛使用即時(shí)通信程序中的掃一掃功能掃描該二維碼之后,小剛的手機(jī)即可通過即時(shí)通信程序的內(nèi)置瀏覽器的api調(diào)用該內(nèi)置瀏覽器。
在觸發(fā)信號為識別信號時(shí),終端可以通過系統(tǒng)中的瀏覽器的api調(diào)用系統(tǒng)中的瀏覽器,或者,在識別圖形碼時(shí)使用的客戶端中有內(nèi)置瀏覽器時(shí),終端還可以通過該內(nèi)置瀏覽器的api調(diào)用該內(nèi)置瀏覽器,調(diào)用的瀏覽器即可根據(jù)識別結(jié)果得到圖形碼中攜帶的ar網(wǎng)頁的url。比如,小明的好友通過即時(shí)通信程序向小明發(fā)送了一個(gè)二維碼,小明施加長按該二維碼的長按信號之后,小明使用的手機(jī)可以接收到該長按信號,并在接收到該長按信號之后,通過即時(shí)通信程序的內(nèi)置瀏覽器的api調(diào)用該內(nèi)置瀏覽器。其中,長按信號是指按壓二維碼的時(shí)間達(dá)到預(yù)設(shè)時(shí)間閾值的信號。
在觸發(fā)信號為點(diǎn)擊網(wǎng)頁鏈接的點(diǎn)擊信號且上述網(wǎng)頁鏈接不是在瀏覽器中顯示的網(wǎng)頁鏈接時(shí),在終端接收到點(diǎn)擊信號之后,終端可以通過瀏覽器的api調(diào)用該瀏覽器,該瀏覽器可以接收網(wǎng)頁鏈接所在應(yīng)用程序上報(bào)的ar網(wǎng)頁的url。實(shí)際實(shí)現(xiàn)時(shí),終端可以通過系統(tǒng)中的瀏覽器的api調(diào)用系統(tǒng)中的瀏覽器,可選地,當(dāng)網(wǎng)頁鏈接為在社交應(yīng)用程序中傳播的鏈接時(shí),若該社交應(yīng)用程序有內(nèi)置瀏覽器,則終端還可以通過內(nèi)置瀏覽器的api調(diào)用該內(nèi)置瀏覽器;而若該社交應(yīng)用程序沒有內(nèi)置瀏覽器時(shí),則終端可以通過系統(tǒng)中的瀏覽器的api調(diào)用系統(tǒng)中的瀏覽器。當(dāng)然,實(shí)際實(shí)現(xiàn)時(shí),在社交應(yīng)用程序中有內(nèi)置瀏覽器時(shí),終端仍然可以通過系統(tǒng)中的瀏覽器的api調(diào)用系統(tǒng)中的瀏覽器,本實(shí)施例對調(diào)用的瀏覽器并不做限定。比如,小明的好友通過社交應(yīng)用程序向小明分享了一個(gè)ar網(wǎng)頁的鏈接,小明在點(diǎn)擊該鏈接之后,小明使用的終端可以調(diào)用該社交應(yīng)用客戶端中的內(nèi)置瀏覽器。
步驟202,通過瀏覽器根據(jù)url從服務(wù)器中獲取ar網(wǎng)頁的網(wǎng)頁信息。
瀏覽器獲取到url之后,瀏覽器可以根據(jù)該url向服務(wù)器發(fā)送信息獲取請求,接收服務(wù)器返回的該ar網(wǎng)頁的網(wǎng)頁信息。其中,該網(wǎng)頁信息中可以包括虛擬對象所對應(yīng)的信息,虛擬對象為用于繪制在ar網(wǎng)頁中的對象。實(shí)際實(shí)現(xiàn)時(shí),該虛擬對象可以為三維立體模型,也可以為二維對象,本實(shí)施例對此并不做限定。并且,該虛擬對象可以為卡通人物、虛擬道具等等。
步驟203,檢測瀏覽器是否支持在ar網(wǎng)頁中繪制三維信息。
可選地,本步驟可以包括如下步驟:
第一,檢測瀏覽器是否支持網(wǎng)頁圖形庫(webgraphicslibrary,webgl)。
實(shí)際實(shí)現(xiàn)時(shí),終端接收到觸發(fā)信號之后,終端可以從網(wǎng)頁服務(wù)器中拉取ar網(wǎng)頁所對應(yīng)的網(wǎng)頁信息,根據(jù)拉取的網(wǎng)頁信息檢測瀏覽器是否支持webgl。其中,網(wǎng)頁信息中包括用于觸發(fā)檢測是否支持webgl的信息。比如,網(wǎng)頁源碼中包括three.js的官網(wǎng)地址,則終端拉取到網(wǎng)頁源碼之后,終端即可根據(jù)three.js的官網(wǎng)地址訪問three.js的官網(wǎng),進(jìn)而通過官網(wǎng)來檢測當(dāng)前瀏覽器是否支持webgl。
第二,檢測瀏覽器所支持的3d引擎在ar網(wǎng)頁中是否報(bào)錯(cuò)。
以3d引擎為three.js為例,終端可以檢測three.js在ar網(wǎng)頁中是否報(bào)錯(cuò)。
實(shí)際實(shí)現(xiàn)時(shí),終端可以捕獲console錯(cuò)誤,檢測捕獲的console錯(cuò)誤中是否包含three錯(cuò)誤,若包含,則確定瀏覽器支持的3d引擎在ar網(wǎng)頁中報(bào)錯(cuò),反之,則不報(bào)錯(cuò)。
上述只是以瀏覽器支持的3d引擎為three.js為例,實(shí)際實(shí)現(xiàn)時(shí),該3d引擎還可以為awe.js,本實(shí)施例對此并不做限定。
第三,檢測3d引擎是否支持在ar網(wǎng)頁中渲染三維信息。
實(shí)際實(shí)現(xiàn)時(shí),終端可以捕獲console錯(cuò)誤,檢測捕獲的console錯(cuò)誤中是否包含three.webglrenderer錯(cuò)誤,若包含,則說明瀏覽器支持在ar網(wǎng)頁中渲染三維信息,反之,則不支持在ar網(wǎng)頁中渲染三維信息。
在瀏覽器支持網(wǎng)頁圖形庫webgl、瀏覽器所支持的3d引擎在ar網(wǎng)頁中未出現(xiàn)報(bào)錯(cuò)且瀏覽器在ar網(wǎng)頁中支持三維信息渲染時(shí),確定瀏覽器支持在ar網(wǎng)頁中繪制三維信息。
而若第一、第二和第三步中有任意一個(gè)步驟不符合要求,則說明瀏覽器不支持在ar網(wǎng)頁中繪制三維信息,此時(shí)終端可以跳轉(zhuǎn)至預(yù)設(shè)頁面,本實(shí)施例對此并不做限定。其中,預(yù)設(shè)頁面可以為落地頁。
需要說明的是,上述僅是以按照第一、第二和第三的順序執(zhí)行為例,實(shí)際實(shí)現(xiàn)時(shí),還可以同時(shí)執(zhí)行上述三個(gè)步驟,或者以其它任意順序執(zhí)行,本實(shí)施例對此并不做限定。
步驟204,若瀏覽器支持在ar網(wǎng)頁中繪制三維信息,則檢測瀏覽器實(shí)時(shí)調(diào)用攝像頭是否成功。
可選地,本步驟可以包括:
第一,檢測瀏覽器是否具有實(shí)時(shí)調(diào)用攝像頭的能力。
可選地,由于網(wǎng)頁實(shí)時(shí)通信(webreal-timecommunication,webrtc)可以支持實(shí)時(shí)調(diào)用攝像頭的功能,因此,在本實(shí)施例中終端可以檢測瀏覽器是否支持webrtc。
第二,若瀏覽器具有實(shí)時(shí)調(diào)用攝像頭的能力,則檢測瀏覽器是否具備在ar網(wǎng)頁中實(shí)時(shí)調(diào)用攝像頭的調(diào)用權(quán)限。
實(shí)際應(yīng)用中,用戶可以根據(jù)自己的使用需求預(yù)先設(shè)置允許瀏覽器實(shí)時(shí)調(diào)用攝像頭或者禁止瀏覽器實(shí)時(shí)調(diào)用攝像頭,因此,在終端的檢測結(jié)果為瀏覽器具備實(shí)時(shí)調(diào)用攝像頭的能力時(shí),并不能說明瀏覽器即可調(diào)用成功,此時(shí),終端可以進(jìn)一步檢測瀏覽器是否具備在需要打開的ar網(wǎng)頁中實(shí)時(shí)調(diào)用攝像頭的調(diào)用權(quán)限。
可選地,終端可以捕獲navigator.getusermedia事件,若navigator.getusermedia事件返回的結(jié)果為true,則說明用戶允許瀏覽器實(shí)時(shí)調(diào)用攝像頭也即瀏覽器具備實(shí)時(shí)調(diào)用攝像頭的權(quán)限,而若navigator.getusermedia事件返回的結(jié)果為false,則瀏覽器不具備實(shí)時(shí)調(diào)用瀏覽器的權(quán)限??蛇x地,在終端捕獲navigator.getusermedia事件之后,若回調(diào)函數(shù)中的參數(shù)為successcallback,則說明瀏覽器具備實(shí)時(shí)調(diào)用攝像頭的權(quán)限,而若回調(diào)函數(shù)中的參數(shù)為errorcallback,則說明瀏覽器不具備實(shí)時(shí)調(diào)用瀏覽器的權(quán)限。
上述僅以用戶預(yù)先設(shè)置是否允許瀏覽器調(diào)用攝像頭為例,實(shí)際實(shí)現(xiàn)時(shí),用戶還可以不預(yù)先設(shè)置,此時(shí)在終端檢測到瀏覽器支持實(shí)時(shí)調(diào)用攝像頭的功能時(shí),終端可以展示用于詢問是否允許瀏覽器在ar網(wǎng)頁中實(shí)時(shí)訪問攝像頭的詢問框,如展示圖3所示的詢問框31(詢問框31中包括允許選項(xiàng)32和拒絕選項(xiàng)33),若接收到選擇允許選項(xiàng)32的選擇信號時(shí),確定瀏覽器具備在ar網(wǎng)頁中實(shí)時(shí)調(diào)用攝像頭的調(diào)用權(quán)限,而若接收到選擇拒絕選項(xiàng)33的選擇信號時(shí),確定瀏覽器不具備在ar網(wǎng)頁中實(shí)時(shí)調(diào)用攝像頭的調(diào)用權(quán)限。
當(dāng)然實(shí)際實(shí)現(xiàn)時(shí),終端還可以通過其他方式來檢測瀏覽器是否具備在ar網(wǎng)頁中調(diào)用攝像頭的調(diào)用權(quán)限,本實(shí)施例僅以上述兩種實(shí)現(xiàn)方式來舉例說明,對其實(shí)際實(shí)現(xiàn)并不做限定。
上述步驟為可選步驟,實(shí)際實(shí)現(xiàn)時(shí),可以執(zhí)行也可以不執(zhí)行,本實(shí)施例對此并不做限定。
第三,若瀏覽器具備在ar網(wǎng)頁中實(shí)時(shí)調(diào)用攝像頭的調(diào)用權(quán)限,則瀏覽器實(shí)時(shí)調(diào)用攝像頭成功。
由于瀏覽器具備實(shí)時(shí)調(diào)用攝像頭的能力且具備在ar網(wǎng)頁中實(shí)時(shí)調(diào)用攝像頭的調(diào)用權(quán)限,因此,瀏覽器發(fā)起調(diào)用攝像頭之后,瀏覽器可以成功調(diào)用攝像頭。
而若瀏覽器不具備調(diào)用權(quán)限,則此時(shí)終端可以跳轉(zhuǎn)至預(yù)設(shè)頁面,對此并不做限定。
第四,若瀏覽器不具備實(shí)時(shí)調(diào)用攝像頭的能力,則在瀏覽器調(diào)用攝像頭時(shí)調(diào)用失敗。
需要說明的是,若步驟203的檢測結(jié)果為瀏覽器不支持在ar網(wǎng)頁中繪制三維信息,則終端可以跳轉(zhuǎn)至預(yù)設(shè)頁面,對此并不做限定。
步驟205,在瀏覽器實(shí)時(shí)調(diào)用攝像頭成功時(shí),則通過攝像頭實(shí)時(shí)采集真實(shí)環(huán)境的真實(shí)環(huán)境圖像,繪制疊加真實(shí)環(huán)境圖像和虛擬對象后的ar網(wǎng)頁。
終端調(diào)用攝像頭并通過攝像頭實(shí)時(shí)采集真實(shí)環(huán)境圖像之后,終端可以將虛擬對象疊加在采集的真實(shí)環(huán)境圖像中,進(jìn)而在瀏覽器中繪制疊加后的圖像,也即終端進(jìn)入webar。
其中,對真實(shí)環(huán)境圖像和虛擬對象疊加的步驟可以包括:合成真實(shí)環(huán)境圖像和虛擬對象的三維圖像。其中,合成后的圖像中,虛擬對象可以位于真實(shí)環(huán)境圖像中的預(yù)設(shè)位置,該預(yù)設(shè)位置可以為中心位置、左上角、右上角、左下角或者右下角,本實(shí)施例對此并不做限定。
比如,請參考圖4,終端可以繪制圖4所示的圖像。其中圖中41為真實(shí)環(huán)境信息,42為虛擬對象。
步驟206,在瀏覽器實(shí)時(shí)調(diào)用攝像頭失敗時(shí),繪制疊加預(yù)設(shè)三維場景模型和虛擬對象后的ar網(wǎng)頁。
終端可以通過瀏覽器根據(jù)ar網(wǎng)頁的url從服務(wù)器中獲取預(yù)設(shè)三維模型,進(jìn)而繪制疊加獲取得到的預(yù)設(shè)三維模型和虛擬對象后的ar網(wǎng)頁。其中,預(yù)設(shè)三維場景模型可以為ar網(wǎng)頁中預(yù)先設(shè)定的模型,對此并不做限定。也即在瀏覽器不能實(shí)時(shí)調(diào)用攝像頭時(shí),終端將進(jìn)入3d全景ar。
由于本步驟中三維場景模型和虛擬對象均為ar網(wǎng)頁中預(yù)先設(shè)定的內(nèi)容,因此,終端可以按照ar網(wǎng)頁中設(shè)定的繪制方式直接繪制三維場景模型和虛擬對象。當(dāng)然,實(shí)際實(shí)現(xiàn)時(shí),在終端拉取得到三維場景模型和虛擬對象之后,終端還可以對兩者進(jìn)行疊加,然后繪制疊加后的內(nèi)容,本實(shí)施例對此并不做限定。
實(shí)際實(shí)現(xiàn)時(shí),本實(shí)施例只是以獲取網(wǎng)頁信息的步驟在步驟202執(zhí)行為例,可選地,該步驟還可以在步驟201和步驟206之間的任意步驟執(zhí)行,或者,在執(zhí)行步驟205或者步驟206的同時(shí)執(zhí)行,本實(shí)施例對此并不做限定。
需要說明的是,在步驟205和步驟206中,在繪制ar網(wǎng)頁之后,用戶可以與ar網(wǎng)頁中繪制的虛擬對象互動(dòng),比如,通過對準(zhǔn)虛擬對象來調(diào)用其他虛擬對象,也即在ar網(wǎng)頁中繪制其他虛擬對象。在互動(dòng)完成之后,終端可以跳轉(zhuǎn)至預(yù)設(shè)頁面,本實(shí)施例對此并不做限定。
請參考圖5,其示出了一種可能的圖像繪制方法的方法流程圖,如圖5所示,該方法包括:
1、接收打開ar網(wǎng)頁的觸發(fā)信號。
2、檢測瀏覽器是否支持webgl。
3、若瀏覽器支持webgl,則檢測three.js是否報(bào)錯(cuò)。
4、若瀏覽器不支持webgl,則跳轉(zhuǎn)至預(yù)設(shè)頁面。
5、若three.js不報(bào)錯(cuò),則檢測three.js能否渲染成功。
6、若three.js報(bào)錯(cuò),則跳轉(zhuǎn)至預(yù)設(shè)頁面。
7、若three.js能夠渲染成功,檢測瀏覽器是否支持實(shí)時(shí)調(diào)用攝像頭的功能。
8、若three.js不能渲染成功,則跳轉(zhuǎn)至預(yù)設(shè)頁面。
9、若瀏覽器支持實(shí)時(shí)調(diào)用攝像頭的功能,則檢測瀏覽器是否具有調(diào)用攝像頭的調(diào)用權(quán)限。
10、若瀏覽器不支持實(shí)時(shí)調(diào)用攝像頭的功能,則進(jìn)入3d全景ar。
11、若瀏覽器具有調(diào)用權(quán)限,則進(jìn)入webar。
12、若瀏覽器不具有調(diào)用權(quán)限,則進(jìn)入3d全景ar。
需要說明的是,本實(shí)施例只是以在步驟302中檢測瀏覽器是否能夠成功繪制三維信息為例,可選地,在虛擬對象不是三維圖像時(shí),終端還可以在步驟205之前的任一步驟執(zhí)行,本實(shí)施例對其執(zhí)行順序并不做限定。
在本實(shí)施例的第一個(gè)應(yīng)用場景中,小明在平板電腦中打開瀏覽器,在瀏覽器的地址欄中輸入ar網(wǎng)頁的地址。在平板電腦檢測到瀏覽器能夠成功繪制三維信息時(shí),終端展示詢問是否允許瀏覽器訪問攝像頭的詢問框。在終端接收到選擇允許選項(xiàng)的選擇信號之后,通過攝像頭實(shí)時(shí)采集真實(shí)環(huán)境信息,通過瀏覽器從服務(wù)器中拉取虛擬對象,繪制真實(shí)環(huán)境信息和虛擬對象后的圖像。
在本實(shí)施例的第二個(gè)應(yīng)用場景中,小花向小剛提供ar網(wǎng)頁的二維碼之后,小剛通過手機(jī)中的掃一掃功能掃描該二維碼;之后,小剛的手機(jī)即可根據(jù)掃描得到的內(nèi)容調(diào)用瀏覽器,在檢測得到調(diào)用的瀏覽器能夠成功繪制三維信息時(shí),終端展示詢問是否允許瀏覽器訪問攝像頭的詢問框。在終端接收到選擇允許選項(xiàng)的選擇信號之后,通過攝像頭實(shí)時(shí)采集真實(shí)環(huán)境信息,通過瀏覽器從服務(wù)器中拉取虛擬對象,繪制真實(shí)環(huán)境信息和虛擬對象后的圖像。
在本實(shí)施例的第三個(gè)應(yīng)用場景中,小強(qiáng)在體驗(yàn)ar網(wǎng)頁的功能之后覺得特別精彩,于是將該ar網(wǎng)頁所對應(yīng)的二維碼通過即時(shí)通信程序發(fā)送至好友小明。在小明的手機(jī)展示該二維碼后,小明可以長按該二維碼,手機(jī)接收到長按信號之后,在檢測到該即時(shí)通信程序的內(nèi)置瀏覽器能夠成功繪制三維信息時(shí),終端可以檢測瀏覽器能否實(shí)時(shí)調(diào)用攝像頭。在終端的檢測結(jié)果為不能實(shí)時(shí)調(diào)用攝像頭時(shí),終端可以通過瀏覽器從服務(wù)器中拉取三維場景模型和虛擬對象,繪制疊加三維場景模型和虛擬對象后的圖像。
在本實(shí)施例的第四個(gè)應(yīng)用場景中,小花在社交應(yīng)用程序中查看社交應(yīng)用分享平臺中的信息時(shí),在查看到好友分享的網(wǎng)頁鏈接地址,點(diǎn)擊該鏈接地址,在小花的手機(jī)檢測到社交應(yīng)用程序的內(nèi)置瀏覽器能夠成功繪制三維信息時(shí),終端可以檢測瀏覽器能否實(shí)時(shí)調(diào)用攝像頭。在終端的檢測結(jié)果為能夠?qū)崟r(shí)調(diào)用攝像頭時(shí),終端可以通過攝像頭實(shí)時(shí)采集真實(shí)圖像信息,通過瀏覽器從服務(wù)器中拉取虛擬對象,繪制疊加真實(shí)圖像信息和虛擬對象后的圖像。
綜上所述,本實(shí)施例提供的圖像繪制方法,在通過瀏覽器獲取到ar網(wǎng)頁的url之后,可以通過瀏覽器根據(jù)該url從服務(wù)器中獲取ar網(wǎng)頁的網(wǎng)頁信息,該網(wǎng)頁信息中包括虛擬對象所對應(yīng)的信息;根據(jù)該網(wǎng)頁信息繪制包含虛擬對象的ar網(wǎng)頁;也即通過ar網(wǎng)頁來實(shí)現(xiàn)ar功能,解決了相關(guān)技術(shù)中終端下載app需要耗費(fèi)較長時(shí)間,終端獲取ar功能的獲取效率較低的問題;達(dá)到了可以提高終端獲取ar功能的獲取效率的效果。同時(shí),在終端處于非無線網(wǎng)絡(luò)環(huán)境時(shí),終端下載app需要耗費(fèi)一定流量,而本實(shí)施例通過ar網(wǎng)頁來實(shí)現(xiàn)ar功能,降低了所需體驗(yàn)ar時(shí)所需耗費(fèi)的流量的效果。
此外,通過在瀏覽器能夠?qū)崟r(shí)調(diào)用攝像頭時(shí),繪制疊加真實(shí)環(huán)境圖像和虛擬對象之后的圖像;而在瀏覽器不能實(shí)時(shí)調(diào)用攝像頭時(shí),繪制疊加預(yù)設(shè)三維場景模型和虛擬對象后的圖像;也即不論終端訪問ar頁面時(shí)使用的是何種瀏覽器,終端均能進(jìn)行流暢的ar體驗(yàn)。
請參考圖6,其示出了本發(fā)明一個(gè)實(shí)施例提供的圖像繪制裝置的結(jié)構(gòu)示意圖,如圖6所示,該圖像繪制裝置可以包括:獲取模塊610和繪制模塊620。
獲取模塊610,用于通過瀏覽器獲取增強(qiáng)現(xiàn)實(shí)ar網(wǎng)頁的統(tǒng)一資源定位符url;
所述獲取模塊610,還用于通過所述瀏覽器根據(jù)所述url從服務(wù)器中獲取所述ar網(wǎng)頁的網(wǎng)頁信息,所述網(wǎng)頁信息中包含虛擬對象所對應(yīng)的信息,所述虛擬對象為用于繪制在所述ar網(wǎng)頁中的對象;
繪制模塊620,用于根據(jù)所述網(wǎng)頁信息繪制包含所述虛擬對象的所述ar網(wǎng)頁。
綜上所述,本實(shí)施例提供的圖像繪制裝置,在通過瀏覽器獲取到ar網(wǎng)頁的url之后,可以通過瀏覽器根據(jù)該url從服務(wù)器中獲取ar網(wǎng)頁的網(wǎng)頁信息,該網(wǎng)頁信息中包括虛擬對象所對應(yīng)的信息;根據(jù)該網(wǎng)頁信息繪制包含虛擬對象的ar網(wǎng)頁;也即通過ar網(wǎng)頁來實(shí)現(xiàn)ar功能,解決了相關(guān)技術(shù)中終端下載app需要耗費(fèi)較長時(shí)間,終端獲取ar功能的獲取效率較低的問題;達(dá)到了可以提高終端獲取ar功能的獲取效率的效果。同時(shí),在終端處于非無線網(wǎng)絡(luò)環(huán)境時(shí),終端下載app需要耗費(fèi)一定流量,而本實(shí)施例通過ar網(wǎng)頁來實(shí)現(xiàn)ar功能,降低了所需體驗(yàn)ar時(shí)所需耗費(fèi)的流量的效果。
基于上述實(shí)施例提供的圖像繪制裝置,可選的,所述繪制模塊620,還用于:
在所述瀏覽器實(shí)時(shí)調(diào)用攝像頭成功時(shí),通過所述攝像頭實(shí)時(shí)采集真實(shí)環(huán)境的真實(shí)環(huán)境圖像,繪制疊加所述真實(shí)環(huán)境圖像和所述虛擬對象后的所述ar網(wǎng)頁。
可選的,所述繪制模塊620,還用于:
在所述瀏覽器實(shí)時(shí)調(diào)用攝像頭失敗時(shí),通過所述瀏覽器根據(jù)所述url從所述服務(wù)器中獲取預(yù)設(shè)三維場景模型,繪制疊加所述預(yù)設(shè)三維場景模型和所述虛擬對象后的所述ar網(wǎng)頁。
可選的,所述裝置,還包括:
調(diào)用模塊,用于在所述瀏覽器具備實(shí)時(shí)調(diào)用所述攝像頭的能力且所述瀏覽器具備在所述ar網(wǎng)頁中實(shí)時(shí)調(diào)用所述攝像頭的調(diào)用權(quán)限時(shí),實(shí)時(shí)調(diào)用所述攝像頭。
可選的,所述虛擬對象為三維立體模型,所述繪制模塊620,還用于:
在所述瀏覽器支持在所述ar網(wǎng)頁中繪制三維信息時(shí),根據(jù)所述網(wǎng)頁信息繪制包含所述虛擬對象的所述ar網(wǎng)頁。
可選的,所述裝置還包括:
確定模塊,用于在所述瀏覽器支持網(wǎng)頁圖形庫webgl、所述瀏覽器所支持的3d引擎在所述ar網(wǎng)頁中未出現(xiàn)報(bào)錯(cuò)且所述瀏覽器在所述ar網(wǎng)頁中支持三維信息渲染時(shí),確定所述瀏覽器支持在所述ar網(wǎng)頁中繪制三維信息。
需要說明的是:上述實(shí)施例提供的圖像繪制裝置,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將服務(wù)器的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的圖像繪制裝置和圖像繪制方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是存儲(chǔ)器中所包含的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者一個(gè)以上程序,該一個(gè)或者一個(gè)以上程序被一個(gè)或者一個(gè)以上的處理器用來執(zhí)行上述圖像繪制方法。
圖7其示出了本發(fā)明一個(gè)實(shí)施例提供的終端700的框圖,該終端可以包括射頻(rf,radiofrequency)電路701、包括有一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器702、輸入單元703、顯示單元704、傳感器705、音頻電路706、無線保真(wifi,wirelessfidelity)模塊707、包括有一個(gè)或者一個(gè)以上處理核心的處理器708、以及電源709等部件。本領(lǐng)域技術(shù)人員可以理解,圖7中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
rf電路701可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器708處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,rf電路701包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(sim,subscriberidentitymodule)卡、收發(fā)信機(jī)、耦合器、低噪聲放大器(lna,lownoiseamplifier)、雙工器等。此外,rf電路701還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(gsm,globalsystemofmobilecommunication)、通用分組無線服務(wù)(gprs,generalpacketradioservice)、碼分多址(cdma,codedivisionmultipleaccess)、寬帶碼分多址(wcdma,widebandcodedivisionmultipleaccess)、長期演進(jìn)(lte,longtermevolution)、電子郵件、短消息服務(wù)(sms,shortmessagingservice)等。
存儲(chǔ)器702可用于存儲(chǔ)軟件程序以及模塊,處理器708通過運(yùn)行存儲(chǔ)在存儲(chǔ)器702的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器702可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器702可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器702還可以包括存儲(chǔ)器控制器,以提供處理器708和輸入單元703對存儲(chǔ)器702的訪問。
輸入單元703可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號輸入。具體地,在一個(gè)具體的實(shí)施例中,輸入單元703可包括觸敏表面以及其他輸入設(shè)備。觸敏表面,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面上或在觸敏表面附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置??蛇x的,觸敏表面可包括觸摸檢測裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器708,并能接收處理器708發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸敏表面。除了觸敏表面,輸入單元703還可以包括其他輸入設(shè)備。具體地,其他輸入設(shè)備可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元704可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元704可包括顯示面板,可選的,可以采用液晶顯示器(lcd,liquidcrystaldisplay)、有機(jī)發(fā)光二極管(oled,organiclight-emittingdiode)等形式來配置顯示面板。進(jìn)一步的,觸敏表面可覆蓋顯示面板,當(dāng)觸敏表面檢測到在其上或附近的觸摸操作后,傳送給處理器708以確定觸摸事件的類型,隨后處理器708根據(jù)觸摸事件的類型在顯示面板上提供相應(yīng)的視覺輸出。雖然在圖7中,觸敏表面與顯示面板是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)輸入和輸入功能,但是在某些實(shí)施例中,可以將觸敏表面與顯示面板集成而實(shí)現(xiàn)輸入和輸出功能。
終端還可包括至少一種傳感器705,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板的亮度,接近傳感器可在終端移動(dòng)到耳邊時(shí),關(guān)閉顯示面板和/或背光。作為運(yùn)動(dòng)傳感器的一種,重力加速度傳感器可檢測各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測出重力的大小及方向,可用于識別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路706、揚(yáng)聲器,傳聲器可提供用戶與終端之間的音頻接口。音頻電路706可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P(yáng)聲器,由揚(yáng)聲器轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路706接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器708處理后,經(jīng)rf電路701以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器702以便進(jìn)一步處理。音頻電路706還可能包括耳塞插孔,以提供外設(shè)耳機(jī)與終端的通信。
wifi屬于短距離無線傳輸技術(shù),終端通過wifi模塊707可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖7示出了wifi模塊707,但是可以理解的是,其并不屬于終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器708是終端的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器702內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器702內(nèi)的數(shù)據(jù),執(zhí)行終端的各種功能和處理數(shù)據(jù),從而對手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器708可包括一個(gè)或多個(gè)處理核心;優(yōu)選的,處理器708可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器708中。
終端還包括給各個(gè)部件供電的電源709(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器708邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源709還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。具體在本實(shí)施例中,終端中的處理器708會(huì)運(yùn)行存儲(chǔ)在存儲(chǔ)器702中的一個(gè)或一個(gè)以上的程序指令,從而實(shí)現(xiàn)上述各個(gè)方法實(shí)施例中所提供的圖像繪制方法。
應(yīng)當(dāng)理解的是,在本文中使用的,除非上下文清楚地支持例外情況,單數(shù)形式“一個(gè)”(“a”、“an”、“the”)旨在也包括復(fù)數(shù)形式。還應(yīng)當(dāng)理解的是,在本文中使用的“和/或”是指包括一個(gè)或者一個(gè)以上相關(guān)聯(lián)地列出的項(xiàng)目的任意和所有可能組合。
上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。