本發(fā)明涉及虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域,尤其涉及一種基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法及裝置。
背景技術(shù):
頭戴式可視設(shè)備作為頭戴虛擬顯示器的一種,通常配備有兩枚透鏡,能夠同時(shí)為雙眼提供虛擬現(xiàn)實(shí)畫面,其被廣泛應(yīng)用于視頻播放、游戲應(yīng)用、攝像實(shí)時(shí)顯示等場(chǎng)合。在頭戴式可視設(shè)備提供虛擬現(xiàn)實(shí)畫面過(guò)程中,會(huì)涉及到渲染技術(shù)。通過(guò)渲染技術(shù)對(duì)虛擬現(xiàn)實(shí)畫面進(jìn)行渲染,然后將渲染后的圖像呈現(xiàn)給戴有頭戴式可視設(shè)備的用戶,用戶猶如看到真實(shí)的三維世界一般,能夠感受到虛擬畫面較強(qiáng)立體感。
現(xiàn)有技術(shù)基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的過(guò)程包括:先通過(guò)頭戴式可視設(shè)備確定可視虛擬范圍,再將該可視虛擬范圍作為待渲染的場(chǎng)景(區(qū)域),根據(jù)獲取的待渲染場(chǎng)景(區(qū)域)進(jìn)行模型建立,然后在模型的表面貼上材質(zhì),并進(jìn)行光照、角度、顏色等方面的調(diào)整,最終將經(jīng)過(guò)上述處理的畫面呈現(xiàn)出來(lái)。
盡管上述渲染過(guò)程能夠?yàn)榇饔蓄^戴式可視設(shè)備的用戶提供虛擬現(xiàn)實(shí)畫面,可以滿足某些情況下的需要,但是,由于渲染過(guò)程涉及到渲染區(qū)域內(nèi)目標(biāo)對(duì)象模型的建立、坐標(biāo)值的確定、著色等復(fù)雜的計(jì)算過(guò)程,將會(huì)耗費(fèi)大量的資源和時(shí)間,從而有可能導(dǎo)致用戶在觀看當(dāng)前虛擬現(xiàn)實(shí)區(qū)域時(shí)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域還沒(méi)有渲染或沒(méi)有渲染完,造成虛擬現(xiàn)實(shí)畫面的延遲或卡頓,降低了用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問(wèn)題,本申請(qǐng)實(shí)施例提供一種基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法和裝置,解決了用戶在觀看當(dāng)前虛擬現(xiàn)實(shí)區(qū)域時(shí)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域沒(méi)有渲染或沒(méi)有渲染完造成畫面延遲或卡頓的問(wèn)題。
本申請(qǐng)實(shí)施例提供的一種基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法,包括:
確定戴有頭戴式可視設(shè)備的用戶視線范圍內(nèi)當(dāng)前的虛擬現(xiàn)實(shí)區(qū)域,所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域已被渲染;
按照預(yù)定規(guī)則確定所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域,所述延伸區(qū)域與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接;
在戴有頭戴式可視設(shè)備的用戶的視線超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)所述延伸區(qū)域進(jìn)行渲染。
優(yōu)選地,所述按照預(yù)定規(guī)則確定所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域具體包括:
根據(jù)用戶頭部運(yùn)動(dòng)趨勢(shì)確定用戶視線將超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的第一區(qū)域,將所述第一區(qū)域作為所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。
優(yōu)選地,所述按照預(yù)定規(guī)則確定所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域具體包括:
確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的第二區(qū)域,將所述第二區(qū)域作為所述當(dāng)前虛擬現(xiàn)實(shí)的延伸區(qū)域。
優(yōu)選地,所述確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的第二區(qū)域具體包括:
確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的固定范圍的第二區(qū)域。
優(yōu)選地,所述固定范圍的第二區(qū)域根據(jù)頭戴式可視設(shè)備的分辨率和/或可視角度確定。
本申請(qǐng)實(shí)施例還提供了一種基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的裝置。該裝置包括:第一確定單元、第二確定單元和渲染單元;其中,
所述第一確定單元,用于確定戴有頭戴式可視設(shè)備的用戶視線范圍內(nèi)的當(dāng)前虛擬現(xiàn)實(shí)區(qū)域,所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域已被渲染;
所述第二確定單元,用于按照預(yù)定規(guī)則確定所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域;所述延伸區(qū)域與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接;
所述渲染單元,用于在戴有頭戴式可視設(shè)備的用戶的視線超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)所述延伸區(qū)域進(jìn)行渲染。
優(yōu)選地,所述第二確定單元,具體用于根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定用戶視線將超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的第一區(qū)域,將所述第一區(qū)域作為所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。
優(yōu)選地,所述第二確定單元,具體用于確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的第二區(qū)域,將所述第二區(qū)域作為所述當(dāng)前虛擬現(xiàn)實(shí)的延伸區(qū)域。
優(yōu)選地,所述第二區(qū)域具體用于:
確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的固定范圍的第二區(qū)域。
優(yōu)選地,所述固定范圍的第二區(qū)域根據(jù)頭戴式可視設(shè)備的分辨率和/或可視角度確定。
本申請(qǐng)實(shí)施例的方法在用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域進(jìn)行渲染,從而實(shí)現(xiàn)了對(duì)延伸區(qū)域的“預(yù)渲染”。與現(xiàn)有技術(shù)相比,采用上述方法能夠達(dá)到以下有益效果:
1、由于提前對(duì)場(chǎng)景區(qū)域進(jìn)行了渲染,當(dāng)用戶看到某個(gè)場(chǎng)景時(shí),可以直接運(yùn)用渲染結(jié)果,而不需要在看到該場(chǎng)景的時(shí)刻才進(jìn)行全部的渲染,從而避免了畫面的延遲或卡頓,提高了用戶體驗(yàn)。
2、用戶在使用頭戴式可視設(shè)備看到某個(gè)場(chǎng)景時(shí),因?yàn)榫哂蓄A(yù)渲染功能, 當(dāng)用戶的視線進(jìn)入所述場(chǎng)景時(shí),不再需要進(jìn)行渲染或者不需要進(jìn)行全部的渲染過(guò)程,從而減少了用戶進(jìn)入延伸區(qū)域時(shí)刻頭戴式可視設(shè)備資源的消耗,剩余更多的資源處理其他事務(wù),從而提高了頭戴式可視設(shè)備的整體性能。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1為本申請(qǐng)實(shí)施例1提供的基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的流程圖;
圖2為本申請(qǐng)實(shí)施例2提供的基于頭戴式的可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染裝置的結(jié)構(gòu)框圖;
圖3為本申請(qǐng)實(shí)施例3提供的根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定延伸區(qū)域并對(duì)延伸區(qū)域進(jìn)行渲染的流程圖;
圖4為本申請(qǐng)實(shí)施例3提供的確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域的過(guò)程示意圖;
圖5為本申請(qǐng)實(shí)施例4提供將的將當(dāng)前虛擬現(xiàn)實(shí)區(qū)域外圍的有限范圍作為延伸區(qū)域并對(duì)延伸區(qū)域進(jìn)行渲染的流程圖;
圖6為本申請(qǐng)實(shí)施例4提供的確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域的過(guò)程示意圖。
具體實(shí)施方式
為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施 例,都屬于本申請(qǐng)保護(hù)的范圍。
實(shí)施例1
如前所述,在頭戴式可視設(shè)備中通過(guò)渲染處理的畫面和真實(shí)三維世界一樣,給用戶帶來(lái)了較強(qiáng)的立體感,但是,有時(shí)需要在短時(shí)間內(nèi)要求頭戴式可視設(shè)備對(duì)畫面做大量的渲染處理,基于頭戴式可視設(shè)備的處理能力,容易造成畫面延遲或卡頓。比如,利用頭戴式可視設(shè)備模擬三維游戲場(chǎng)景時(shí),雖然給用戶帶來(lái)了身臨其境的感覺(jué),但是當(dāng)游戲場(chǎng)景中出現(xiàn)很多動(dòng)態(tài)的人或物體時(shí),畫面經(jīng)常發(fā)生延遲或卡頓,導(dǎo)致用戶使用起來(lái)不方便,降低了用戶體驗(yàn)。針對(duì)這一問(wèn)題,本申請(qǐng)?zhí)岢隽艘环N基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法,該方法“提前”對(duì)將要進(jìn)入的場(chǎng)景區(qū)域進(jìn)行渲染,具體流程如下(參見(jiàn)如圖1所示):
步驟11:確定戴有頭戴式可視設(shè)備的用戶的視線范圍內(nèi)的當(dāng)前虛擬現(xiàn)實(shí)區(qū)域,所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域已被渲染;這里,用戶視線范圍內(nèi)的當(dāng)前虛擬現(xiàn)實(shí)區(qū)域可以表現(xiàn)為各式各樣的區(qū)域。比如,可以是用戶在使用頭戴式可視設(shè)備觀看某一場(chǎng)景時(shí)用戶當(dāng)前視線所觸及的范圍,也可以是比用戶當(dāng)前視線所觸及范圍小的某個(gè)范圍,這一小于當(dāng)前視線所觸及范圍的范圍可以通過(guò)頭戴式可視設(shè)備進(jìn)行配置。當(dāng)然,在某些特定情況下,也可以是以用戶當(dāng)前視線所觸及的范圍為基礎(chǔ)、在周邊進(jìn)行些適當(dāng)擴(kuò)張后形成的范圍。對(duì)于當(dāng)前虛擬現(xiàn)實(shí)區(qū)域體現(xiàn)出來(lái)的具體形狀,可以根據(jù)現(xiàn)實(shí)需要(比如,用戶喜好)設(shè)定為各種形狀。比如,某個(gè)用戶喜歡以放電影的方式觀看虛擬現(xiàn)實(shí),那么,可以將當(dāng)前虛擬現(xiàn)實(shí)區(qū)域設(shè)定為矩形,在其他情況下,還可以設(shè)定為橢圓形或者不規(guī)則多邊形等。需要說(shuō)明的是,由于用戶正在觀察當(dāng)前虛擬現(xiàn)實(shí)區(qū)域,那么該區(qū)域通常應(yīng)該是已完成渲染工作,呈現(xiàn)給用戶與真實(shí)圖像相似(相同)的樣子。
為了進(jìn)行后續(xù)的操作,本申請(qǐng)實(shí)施例首先確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域。只要知道了當(dāng)前虛擬現(xiàn)實(shí)區(qū)域才有可能如后續(xù)步驟所示進(jìn)行延伸區(qū)域的確定。
步驟12:按照預(yù)定規(guī)則確定所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域,所述延伸區(qū)域與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接;
在確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域后,由于戴著頭戴式可視設(shè)備的用戶會(huì)變換不同的場(chǎng)景,希望看到不同的虛擬現(xiàn)實(shí)區(qū)域,用戶通常會(huì)移動(dòng)頭部。用戶一旦移動(dòng)頭部,進(jìn)入用戶視線的虛擬現(xiàn)實(shí)區(qū)域便會(huì)發(fā)生變化。但是,這種變化一定是在先前虛擬現(xiàn)實(shí)區(qū)域(即當(dāng)前虛擬現(xiàn)實(shí)區(qū)域)基礎(chǔ)之上的變化,即表現(xiàn)為與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域銜接的延伸區(qū)域,也就是說(shuō),當(dāng)前虛擬現(xiàn)實(shí)區(qū)域和延伸區(qū)域?yàn)檫B接關(guān)系,它們中間不會(huì)存在間隔。當(dāng)然,這種連接關(guān)系可以體現(xiàn)為各種復(fù)雜的幾何關(guān)系,比如,平移性連接關(guān)系,即當(dāng)前虛擬現(xiàn)實(shí)區(qū)域和延伸區(qū)域可以通過(guò)左右平移得到;斜向移動(dòng)關(guān)系,即當(dāng)前虛擬現(xiàn)實(shí)區(qū)域和延伸區(qū)域通過(guò)斜向移動(dòng)得到。
基于延伸區(qū)域與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域關(guān)系的多樣性,本申請(qǐng)實(shí)施例按照預(yù)定規(guī)則確定延展區(qū)域的方式也多種。為了便于理解和說(shuō)明,這里僅示例性的說(shuō)明兩種:
第一種示例性方式:根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定用戶當(dāng)前視線范圍內(nèi)虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。用戶的運(yùn)動(dòng)趨勢(shì)可以通過(guò)用戶的運(yùn)動(dòng)數(shù)據(jù)來(lái)體現(xiàn)。因此,可以先通過(guò)頭戴式可視設(shè)備中的陀螺儀等裝置獲取到用戶的運(yùn)動(dòng)數(shù)據(jù),再根據(jù)獲取的運(yùn)動(dòng)數(shù)據(jù)判斷用戶的運(yùn)動(dòng)趨勢(shì),然后通過(guò)具體計(jì)算得到延伸區(qū)域的范圍。比如,用戶在使用頭戴式可視設(shè)備時(shí),假設(shè)用戶的頭部向左平移,這時(shí)設(shè)備中的陀螺儀可以測(cè)得用戶頭部運(yùn)動(dòng)的速度v,由速度v可以判斷出用戶頭部當(dāng)前時(shí)刻的運(yùn)動(dòng)趨勢(shì)是以速度v向左運(yùn)動(dòng),根據(jù)S=v×t便可以算出所要渲染區(qū)域移動(dòng)的位移(這里的時(shí)間t可以由設(shè)備按照配置設(shè)定或者是由用戶按照個(gè)人需求自行設(shè)定),進(jìn)而最終確定出所要渲染的延伸區(qū)域的范圍。除了用戶頭部這種簡(jiǎn)單的平移運(yùn)動(dòng)外,在實(shí)際應(yīng)用過(guò)程中,用戶頭部運(yùn)動(dòng)的方向可能是不規(guī)則運(yùn)動(dòng)。不規(guī)則運(yùn)動(dòng)的情況下,確定延伸區(qū)域的難度顯然比平移運(yùn)動(dòng)大,但是,基于運(yùn)動(dòng)的疊加性,在不規(guī)則運(yùn)動(dòng)的情況下,可以將速度(矢量)分解成 水平和豎直方向上的分速度,再進(jìn)行相應(yīng)的計(jì)算,速度(矢量)與水平/豎直方向的夾角可以由陀螺儀測(cè)得。
第二種示例性方式:將當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的固定范圍的區(qū)域作為延伸區(qū)域。這里所謂“固定范圍”可以是隨機(jī)確定的一個(gè)區(qū)域范圍,也可以是根據(jù)頭戴式可視設(shè)備的分辨率和/或可視角度確定的一個(gè)區(qū)域范圍,或者根據(jù)用戶個(gè)人需求自行設(shè)定的某個(gè)區(qū)域。此外,確定出來(lái)的“固定范圍”的形狀可以表現(xiàn)為各種各樣的形狀,這些形狀只要能盡可能準(zhǔn)確地反映用戶頭部將要移動(dòng)的區(qū)域即可。比如,在確保頭戴式可視設(shè)備有著較好的分辨率和可視角度的情況下,用戶可以按照個(gè)人需求自行確定一個(gè)有限范圍作為延伸區(qū)域,該延伸區(qū)域可以是正方形、圓形或者不規(guī)則的形狀等。
步驟13:在戴有頭戴式可視設(shè)備的用戶的視線超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)所述延伸區(qū)域進(jìn)行渲染。
在用戶使用頭戴式可視設(shè)備觀看某一個(gè)虛擬場(chǎng)景時(shí),根據(jù)步驟12確定用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。然后在用戶視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域進(jìn)行渲染處理,具體的渲染過(guò)程可以采取和對(duì)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域相同的渲染方式,這里不再贅述。通過(guò)這樣處理后,當(dāng)用戶的視線實(shí)際超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域時(shí),便可直接將已渲染好的結(jié)果呈現(xiàn)給用戶。
采用實(shí)施例1提供的對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法,由于在用戶使用頭戴式可視設(shè)備時(shí),對(duì)用戶視線范圍內(nèi)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域進(jìn)行了渲染處理,當(dāng)用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域進(jìn)入到所述延伸區(qū)域時(shí),便不再需要對(duì)延伸區(qū)域或者包括延伸區(qū)域在內(nèi)的全部區(qū)域進(jìn)行渲染,避免了畫面的延遲或卡頓,提高了用戶體驗(yàn)。此外,由于在用戶進(jìn)入到延伸區(qū)域的時(shí)刻,不再進(jìn)行延伸區(qū)域或者包含延伸區(qū)域的全部區(qū)域的渲染,減少了這一時(shí)刻頭戴式可視設(shè)備資源的消耗,剩余更多的資源處理其他事務(wù),從而提高了頭戴式可視設(shè)備的整體性能。
需要說(shuō)明的是,實(shí)施例1所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法的各步驟也可以由不同設(shè)備作為執(zhí)行主體。比如,步驟11和步驟12的執(zhí)行主體可以為設(shè)備1;又比如,步驟11的執(zhí)行主體可以為設(shè)備1,步驟12和的執(zhí)行主體可以為設(shè)備2。
實(shí)施例2
基于實(shí)施例1所述的對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法,實(shí)施例2提出了相應(yīng)的對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染裝置,該裝置可以位于頭戴式可視設(shè)備中,它通過(guò)提前對(duì)用戶視線范圍內(nèi)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域進(jìn)行渲染,當(dāng)用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域進(jìn)入到所述延伸區(qū)域時(shí)便可直接運(yùn)用渲染結(jié)果,而不需要在用戶進(jìn)入延伸區(qū)域的時(shí)刻對(duì)該延伸區(qū)域進(jìn)行渲染,從而避免了畫面的延遲或卡頓。圖2示出了基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的裝置的結(jié)構(gòu)框圖。該裝置包括:
第一確定單元21,第二確定單元22,渲染單元23;其中,
第一確定單元21,可以用于確定戴有頭戴式可視設(shè)備的用戶視線范圍內(nèi)的當(dāng)前虛擬現(xiàn)實(shí)區(qū)域,所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域已被渲染。
第二確定單元22,可以用于按照預(yù)定規(guī)則確定用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域,該延伸區(qū)域與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接。
渲染單元23,可以用于在戴有頭戴式可視設(shè)備的用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)該延伸區(qū)域進(jìn)行渲染。
上述裝置實(shí)施例的工作過(guò)程是:第一確定單元21確定戴有頭戴式可視設(shè)備的用戶視線范圍內(nèi)的當(dāng)前虛擬現(xiàn)實(shí)區(qū)域,然后由第二確定單元22按照預(yù)定規(guī)則確定用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域,再由渲染單元23在戴有頭戴式可視設(shè)備的用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)該延伸區(qū)域進(jìn)行渲染。
上述裝置實(shí)施例中的第二確定單元可以按照不同的預(yù)定規(guī)則確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。比如:在一種實(shí)施方式中,第二確定單元22具體可 以用于:根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定用戶視線將超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的第一區(qū)域,將該第一區(qū)域作為該當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。在另一種實(shí)施方式中,第二確定單元22具體可以用于:
確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的第二區(qū)域,將該第二區(qū)域作為該當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。
在又一種實(shí)施方式中,第二確定單元22可以用于:
確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外且與當(dāng)前虛擬現(xiàn)實(shí)區(qū)域連接的固定范圍的第二區(qū)域。這里的固定范圍的第二區(qū)域根據(jù)頭戴式可視設(shè)備的分辨率和/或可視角度確定。
采用實(shí)施例2提供的對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的裝置,由于在用戶使用頭戴式可視設(shè)備時(shí),對(duì)用戶視線范圍內(nèi)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域進(jìn)行了渲染處理,當(dāng)用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域進(jìn)入到所述延伸區(qū)域時(shí),便不再需要對(duì)延伸區(qū)域或者包括延伸區(qū)域在內(nèi)的全部區(qū)域進(jìn)行渲染,避免了畫面的延遲或卡頓,提高了用戶體驗(yàn)。此外,由于在用戶進(jìn)入到延伸區(qū)域的時(shí)刻,不再進(jìn)行延伸區(qū)域或者包含延伸區(qū)域的全部區(qū)域的渲染,減少了這一時(shí)刻頭戴式可視設(shè)備資源的消耗,剩余更多的資源處理其他事務(wù),從而提高了頭戴式可視設(shè)備的整體性能。
實(shí)施例3
為了更清楚地說(shuō)明本申請(qǐng)的技術(shù)方案、技術(shù)特征,下面提供了一種根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定延伸區(qū)域并對(duì)該延伸區(qū)域進(jìn)行渲染的方法進(jìn)行說(shuō)明(從而構(gòu)成本申請(qǐng)的又一個(gè)實(shí)施例,即實(shí)施例3),該實(shí)例可以提前對(duì)用戶視線范圍內(nèi)當(dāng)前虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域的場(chǎng)景進(jìn)行渲染,當(dāng)用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域進(jìn)入到所述延伸區(qū)域時(shí)可以直接運(yùn)用渲染結(jié)果,而不需要設(shè)備在用戶進(jìn)入延伸區(qū)域的時(shí)刻對(duì)該場(chǎng)景進(jìn)行全部的渲染,從而避免了畫面的延遲或卡頓,參見(jiàn)圖3,該圖展示了根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定延伸區(qū)域并對(duì)該 延伸區(qū)域進(jìn)行渲染的方法的流程圖,另外,為了更加直觀的說(shuō)明實(shí)施例3,圖4提供了一種根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定延伸區(qū)域的示意圖,在圖4中設(shè)定的用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域?yàn)檎叫巍D3所示的基于頭戴式可視設(shè)備對(duì)虛擬現(xiàn)實(shí)進(jìn)行渲染的方法包括:
步驟31:確定用戶當(dāng)前視線范圍內(nèi)的虛擬現(xiàn)實(shí)區(qū)域。
具體地,當(dāng)用戶使用頭戴式可視設(shè)備觀看某一個(gè)場(chǎng)景時(shí),當(dāng)前用戶視線范圍內(nèi)已經(jīng)被渲染的虛擬現(xiàn)實(shí)區(qū)域?yàn)楫?dāng)前虛擬現(xiàn)實(shí)區(qū)域,如圖4所示,白色正方形區(qū)域就是用戶使用頭戴式可視設(shè)備觀看某一場(chǎng)景當(dāng)前視線范圍內(nèi)已經(jīng)被渲染的虛擬現(xiàn)實(shí)區(qū)域。
步驟32:接收用戶眼部和頭部運(yùn)動(dòng)的數(shù)據(jù)。
具體地,接收的數(shù)據(jù)具體是指當(dāng)用戶眼部和頭部移動(dòng)時(shí),用戶眼部和頭部運(yùn)動(dòng)的速度,該速度可以由設(shè)備中的陀螺儀測(cè)得。
步驟33:根據(jù)用戶眼部和戶頭部的速度,判斷用戶的運(yùn)動(dòng)趨勢(shì)。
如圖4所示,假設(shè)用戶頭部向下移動(dòng)時(shí),設(shè)備根據(jù)用戶當(dāng)前時(shí)刻的頭部速度v,可以判斷出用戶當(dāng)前時(shí)刻頭部的運(yùn)動(dòng)趨勢(shì)是以速度v向下運(yùn)動(dòng);假設(shè)用戶當(dāng)前時(shí)刻的頭部向右上方以速度v運(yùn)動(dòng)時(shí),可以判斷出用戶當(dāng)前時(shí)刻頭部的運(yùn)動(dòng)趨勢(shì)是以速度v向右上方運(yùn)動(dòng)。
步驟34:根據(jù)用戶運(yùn)動(dòng)趨勢(shì),確定用戶當(dāng)前視線范圍虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域。
如圖4所示,當(dāng)用戶頭部以速度v向下平移時(shí),假設(shè)經(jīng)過(guò)設(shè)定預(yù)渲染時(shí)間t后當(dāng)前用戶視線范圍內(nèi)的虛擬現(xiàn)實(shí)區(qū)域a頂點(diǎn)運(yùn)動(dòng)到a1位置,則陰影部分S1就為用戶當(dāng)前視線范圍虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域,假設(shè)用戶當(dāng)前視線范圍內(nèi)正方形虛擬現(xiàn)實(shí)區(qū)域的邊長(zhǎng)為m,則:S1=v×t×m;當(dāng)用戶頭部以速度v向右上方運(yùn)動(dòng)時(shí),假設(shè)經(jīng)過(guò)設(shè)定預(yù)渲染時(shí)間t后當(dāng)前用戶視線范圍內(nèi)的虛擬現(xiàn)實(shí)區(qū)域a頂點(diǎn)運(yùn)動(dòng)到a2位置,且速度與水平方向的夾角為θ,則陰影部分S2就為用戶當(dāng)前視線范圍虛擬現(xiàn)實(shí)區(qū)域的延伸區(qū)域,這里要計(jì)算該延伸區(qū)域的面積可以 將速度分解為水平方向的速度為v×cosθ,豎直方向速度的分量為v×sinθ,則:S2=m2-(m-v×t×cosθ)(m-v×t×cosθ)。
步驟35:對(duì)延伸區(qū)域中的場(chǎng)景進(jìn)行預(yù)渲染處理。
在本步驟中,在用戶的視線超出所述當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)所述延伸區(qū)域進(jìn)行渲染,如圖4所示,在用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)陰影部分S1和S2進(jìn)行預(yù)渲染處理。
實(shí)施例3能夠取得與前述實(shí)施例相同或類似的技術(shù)效果。為避免重復(fù),這里不再贅言。
實(shí)施例4
在實(shí)施例3中,提供了一種根據(jù)用戶的運(yùn)動(dòng)趨勢(shì)確定延伸區(qū)域并對(duì)該延伸區(qū)域進(jìn)行渲染的方法,除了這種方式外,本實(shí)施例提供了一種將當(dāng)前虛擬現(xiàn)實(shí)區(qū)域外圍的有限范圍作為延伸區(qū)域并對(duì)延伸區(qū)域進(jìn)行預(yù)渲染的方法,該實(shí)施例可以提前對(duì)延伸區(qū)域的場(chǎng)景進(jìn)行渲染,使得用戶看到某個(gè)場(chǎng)景時(shí)可以直接運(yùn)用渲染結(jié)果,而不需要設(shè)備在當(dāng)前時(shí)刻對(duì)該場(chǎng)景進(jìn)行全部的渲染,避免了畫面的延遲或卡頓。參見(jiàn)圖5,該圖展示了一種固定用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域外圍的有限范圍區(qū)域作為延伸區(qū)域并對(duì)該延伸區(qū)域進(jìn)行預(yù)渲染的方法的流程圖,另外,為了更直觀的說(shuō)明實(shí)施例4提供的方法,圖6提供了一種固定用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域外圍的有限范圍區(qū)域作為延伸區(qū)域的示意圖,在圖6中設(shè)定的用戶當(dāng)前虛擬現(xiàn)實(shí)區(qū)域?yàn)檎叫?,該方法包括:步驟41:確定用戶當(dāng)前視線范圍內(nèi)的虛擬現(xiàn)實(shí)區(qū)域。當(dāng)用戶使用頭戴式可視設(shè)備觀看某一場(chǎng)景時(shí),用戶當(dāng)前視線范圍內(nèi)已經(jīng)被渲染的區(qū)域就是當(dāng)前用戶視線范圍內(nèi)的虛擬現(xiàn)實(shí)區(qū)域,如圖6所示,白色正方形區(qū)域就是用戶使用頭戴式可視設(shè)備觀看某一場(chǎng)景時(shí)當(dāng)前用戶視線范圍內(nèi)的虛擬現(xiàn)實(shí)區(qū)域。
步驟42:接收用戶頭部運(yùn)動(dòng)的數(shù)據(jù)。
當(dāng)用戶眼部和頭部相對(duì)靜止時(shí),在實(shí)際應(yīng)用中用戶的頭部并不是完全的靜 止,而是伴有輕微的晃動(dòng),設(shè)備中陀螺儀可以測(cè)得頭部運(yùn)動(dòng)的速度。
步驟43:確定當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之外的固定范圍作為延伸區(qū)域。
這里首先根據(jù)用戶頭部運(yùn)動(dòng)數(shù)據(jù)確定用戶頭部晃動(dòng)的范圍,再根據(jù)頭戴式可視設(shè)備的分辨率和/或可視角度確定有限范圍作為延伸區(qū)域;比如在實(shí)際應(yīng)用中用戶的頭部通常是左右晃動(dòng),上下晃動(dòng)的情況比較少,因此在確定延伸區(qū)域時(shí)上下區(qū)域面積相對(duì)左右面積要窄一些,再根據(jù)用戶使用設(shè)備的分辨率和/或可視角度確定合適的區(qū)域作為延伸區(qū)域,從而給用戶帶來(lái)清晰的畫面。如圖6所示,陰影部分T為用戶當(dāng)前視線范圍內(nèi)虛擬現(xiàn)實(shí)區(qū)域所對(duì)應(yīng)的延伸區(qū)。
步驟44:對(duì)延伸區(qū)域中的場(chǎng)景進(jìn)行預(yù)渲染處理。
在本步驟中用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)延伸區(qū)域進(jìn)行渲染,當(dāng)用戶視線出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域時(shí),可以直接運(yùn)用渲染結(jié)果,不再需要或者不需要進(jìn)行全部的渲染過(guò)程。如圖6所示,在用戶的視線超出當(dāng)前虛擬現(xiàn)實(shí)區(qū)域之前,對(duì)陰影部分T進(jìn)行渲染處理。
實(shí)施例4能夠取得與前述實(shí)施例相同或類似的技術(shù)效果。為避免重復(fù),這里不再贅言。
需要說(shuō)明的是,本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)?zhí)峁┑纳鲜鰧?shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。此外,本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器 以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
以上僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。