360度全景顯示方法、顯示模塊及移動終端的制作方法
【專利摘要】本發明涉及圖像顯示技術領域,公開了360度全景顯示方法、顯示模塊及移動終端。本發明中,360度全景顯示方法包含以下步驟:獲取當前視點;根據所述當前視點建立所述當前視角范圍內的球體模型;對所述視角范圍內的球體模型進行渲染,以產生視角范圍內的三維圖像;顯示所述視角范圍內的三維圖像。本發明提供的360度全景顯示方法、顯示模塊及移動終端,使得移動終端在360度全景顯示的過程中,能夠減少程序計算量、提高渲染效率。
【專利說明】
360度全景顯示方法、顯示模塊及移動終端
技術領域
[0001]本發明涉及圖像顯示技術領域,特別涉及一種360度全景顯示方法、顯示模塊及移動終端。
【背景技術】
[0002]360度全景是一種基于靜態圖像在微機平臺上能夠實現虛擬現實技術。讓人們能在電腦上進行360度全景觀察,而且通過交互操作,可以實現自由瀏覽,從而體驗三維的虛擬現實視覺世界。
[0003]目前,在基于手機的虛擬現實方案中,開發者通常是通過構建球體模型來顯示360度全景視頻或者圖像,通過屏幕顯示,用戶能夠看到基于自己所在方位的視角范圍內的三維圖像;當用戶變換方位時,能夠看到方位變換后的視角范圍內的三維圖像。即,用戶始終只能在屏幕上看到自己所在方位的視角范圍內的三維圖像。而實質上的,在計算機內部,該視角范圍外的其余圖像始終在進行渲染繪制(而用戶看不到),這就造成了造成不必要的資源浪費。
【發明內容】
[0004]本發明的目的在于提供一種360度全景顯示方法、顯示模塊及移動終端,使得移動終端在360度全景顯示的過程中,能夠減少程序計算量、提高渲染效率。
[0005]為解決上述技術問題,本發明的實施方式提供了一種360度全景顯示方法,包含以下步驟:獲取當前視點;根據所述當前視點建立所述當前視角范圍內的球體模型;對所述視角范圍內的球體模型進行渲染,以產生視角范圍內的三維圖像;顯示所述視角范圍內的三維圖像。
[0006]本發明的實施方式還提供了一種360度全景顯示模塊,包含:視點獲取單元、建模單元、渲染單元以及顯示單元;所述視點獲取單元用于獲取當前視點;所述建模單元用于根據所述當前視點建立當前視角范圍內的球體模型;所述渲染單元用于對所述視角范圍內的球體模型進行渲染,以產生視角范圍內的三維圖像;所述顯示單元用于顯示所述視角范圍內的三維圖像。
[0007]本發明的實施方式還提供了一種移動終端,包含所述的360度全景顯示模塊。
[0008]本發明實施方式相對于現有技術而言,根據獲取的當前視點建立當前視角范圍內的球體模型,并對視角范圍內的球體模型進行渲染,以產生視角范圍內的三維圖像。即,本發明在實現360度全景顯示的方法中,僅對當前視角內的圖像進行渲染繪制,減少了繪制模型的頂點數量;從而減少了程序計算量,提高了渲染效率。
【附圖說明】
[0009]圖1是根據本發明第一實施方式的一種360度全景顯示方法的流程圖;
[0010]圖2是根據本發明第二實施方式的一種360度全景顯示模塊的方框圖。
【具體實施方式】
[0011]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明的各實施方式進行詳細的闡述。然而,本領域的普通技術人員可以理解,在本發明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術細節。但是,即使沒有這些技術細節和基于以下各實施方式的種種變化和修改,也可以實現本申請各權利要求所要求保護的技術方案。
[0012]本發明的第一實施方式涉及一種360度全景顯示方法,應用于移動終端;本實施方式中的。具體流程如圖1所示。
[0013]步驟10:獲取當前視點。其中,步驟10包含以下子步驟。
[0014]子步驟101:檢測移動終端的當前姿態。
[0015]具體而言,用戶在使用移動終端時,可能會變換移動終端的空間朝向;當前姿態即反映移動終端的空間朝向。本實施方式中的當前姿態由移動終端的角速度表征。其中,移動終端的角速度包含移動終端在X、Y、Z軸方向上的三個角速度。然而,本實施方式中對表征當前姿態的具體參數不作任何限制,只要能夠反映移動終端的空間朝向即可。
[0016]子步驟102:根據當前姿態計算當前視點。
[0017]具體而言,首先,根據移動終端在Χ、Υ、Ζ軸方向上的三個角速度計算歐拉角的三個角度,三個角度分別為:yaw,表示視點繞Y軸旋轉的角度;P i t ch,表示視點繞X軸旋轉的角度,roll,表示視點繞Z軸旋轉的角度。其次,根據歐拉角的三個角度,計算三個旋轉矩陣matrix_yaw=matrix::rotateY(yaw) ;matrix_pitch=matrix::rotateX(pitch) ;matrix_roll=matrix::rotateZ(roll)。即,當前視點實質由三個旋轉矩陣表示。
[0018]需要說明的是,本實施方式對當前視點的獲取方式不作任何限制;于其他實施方式中,當前視點也可以為預存在移動終端內的推薦視點(表示較佳的觀看角度)、或者預存在移動終端內的多個連續變化的視點。
[0019]步驟11:根據獲取的當前視點建立當前視角范圍內的球體模型。其中,步驟11包含以下子步驟。
[0020]子步驟111:根據預設的參考視點與參考視角建立參考視角范圍內的球體模型。
[0021]其中,移動終端內部預先儲存有參考視點與參考視角;一般而言,參考視點默認的觀察點是正向朝前;參考視角例如可以設定為120度(可任意設定,覆蓋屏幕即可);本實施方式對參考視點與參考視角不做任何限制。
[0022]另外,移動終端內實質還預設有建立球體模型的基本參數,基本參數包含球面在垂直方向的網格數量(vertiacl)、球面在水平方向的網格數量(horizontal)以及球的半徑(radius)。這些基本參數的具體數值由設計人員根據對三維圖像的質量要求而設定;網格數量越多,則三維圖像的清晰度越高;球的半徑只需滿足大于視點到投影平面(即近平面)的距離即可。
[0023]即,根據基本參數建立的球體模型是一個完整的球體模型,參考視點與參考視角可以確定完整的球體模型在參考視角范圍內的部分。
[0024]于本實施方式中,建立參考視角范圍內的球體模型的具體方式如下:
[0025]第一步:設定基本參數、參考視點與參考視角;其設定依據如上所述。于本實施方式中,球面在垂直方向的網格數量vertiacl = 64;球面在水平方向的網格數量horizontal=64;球的半徑radius = 100;參考視角fον = 120° ;參考視點為正向朝前。
[0026]第二步:計算垂直方向每一格占據的分量;即:yf= y/vertical,y的取值為[0,vertiacl]。
[0027]第三步:將第二步中的分量yf映射至[-0.5,0.5]的區間內,并計算參考視角在yf上的分量;即:lat_vertical = (yf-0.5)*fov0
[0028]第四步:計算垂直方向上的Iat的余弦值coslat = cosf (Iat)。
[0029]同理,計算網格水平方向上每一格占據的分量xf= x/horizontal,x的取值為[0,horizontal];計算參考視角在xf上的分量,lat_horizontal = (xf-0.5)*fov;計算水平方向上的Iat的余弦值coslat = cosf (Iat)。
[0030]第五步:根據上述數據,計算得網格上每個點的頂點坐標(x,y,z),具體公式如下:[0031 ] X = radius*cosf(lat_horizontal)^coslat
[0032]y=radiusesinf(lat_horizontal)*cosIat
[0033]z = radius 氺 sinf (lat_vertical)
[0034]子步驟112:利用當前視點更新參考視角范圍內的球體模型,以產生當前視角范圍內的球體模型。
[0035]具體而言,將子步驟102中計算出來的三個旋轉矩陣!1^1:1^1_5^¥、11^1:1^1_口;[1:(311、matrix_roll(即當前視點)與子步驟111中計算出來的頂點坐標(1,7,2)的乂、¥、2軸的坐標值對應相乘,計算出來的新的頂點坐標即為當前視角范圍內的球體模型的頂點坐標。上述計算過程,即為利用當前視點更新參考視角范圍內的球體模型,以產生當前視角范圍內的球體模型。
[0036]步驟12:對當前視角范圍內的球體模型進行渲染,以生成當前視角范圍內的三維圖像。其中,步驟12包含以下子步驟。
[0037]子步驟121:根據當前視角范圍內的球體模型計算當前視角范圍對應的紋理坐標。
[0038]S卩,根據子步驟112中計算出的當前視角范圍內的球體模型的頂點坐標,計算當前視角范圍對應的紋理坐標(s, t);具體計算公式如下:
[0039]s = xf-0.5
[0040]t = (l.0-yf)-0.5
[0041]子步驟122:根據當前視角范圍對應的紋理坐標對當前視角范圍內的球體模型進行紋理貼圖,以生成當前視角范圍內的三維圖像。
[0042]具體而言,首先,獲取移動終端內預先儲存的二維全景圖像;其次,根據當前視角范圍對應的紋理坐標,從二維全景圖像中獲取該當前視角范圍對應的二維圖像;然后,將該二維圖像紋理貼圖至當前視角范圍內的球體模型;從而,生成當前視角范圍內的三維圖像。
[0043]較佳的,紋理貼圖后,還可以對生成的三維圖像進行光線、透明度等方面的修飾,使得最后呈現的三維圖像更加真實。
[0044]步驟13:顯示當前視角范圍內的三維圖像。
[0045]S卩,將子步驟122中生成當前視角范圍內的三維圖像渲染到幀緩存中,從而由顯示器顯示出來。
[0046]本實施方式提供的360度全景顯示方法,能夠根據檢測到的當前視點,僅僅構建當前視角范圍內的球體模型,并僅僅對當前視角范圍內的球體模型進行繪制和渲染;即無需對當前視角范圍外的球體模型進行繪制和渲染;從而減少了程序計算量,提高了渲染效率。
[0047]上面各種方法的步驟劃分,只是為了描述清楚,實現時可以合并為一個步驟或者對某些步驟進行拆分,分解為多個步驟,只要包含相同的邏輯關系,都在本專利的保護范圍內;對算法中或者流程中添加無關緊要的修改或者引入無關緊要的設計,但不改變其算法和流程的核心設計都在該專利的保護范圍內。
[0048]本發明第二實施方式涉及一種360度全景顯示模塊,如圖2所示,包含:視點獲取單元10、建模單元11、渲染單元12以及顯示單元13。
[0049]視點獲取單元10用于獲取當前視點。具體而言,視點獲取單元10包含姿態檢測子單元與視點計算子單元;姿態檢測子單元用于檢測移動終端的當前姿態,視點計算子單元用于根據當前姿態計算當前視點。其中,姿態檢測子單元例如包含陀螺儀。
[0050]建模單元11用于根據獲取的當前視點建立當前視角范圍內的球體模型。
[0051 ]渲染單元12用于對當前視角范圍內的球體模型進行渲染,以生成當前視角范圍內的三維圖像。具體而言,渲染單元12包含紋理計算子單元與紋理貼圖子單元;紋理計算子單元用于根據當前視角范圍內的球體模型計算當前視角范圍對應的紋理坐標;紋理貼圖子單元用于根據當前視角范圍對應的紋理坐標對當前視角范圍內的球體模型進行紋理貼圖,以生成當前視角范圍內的三維圖像。
[0052]顯示單元13用于顯示當前視角范圍內的三維圖像。
[0053]不難發現,本實施方式為與第一實施方式相對應的系統實施例,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關技術細節在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節也可應用在第一實施方式中。
[0054]值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現。此外,為了突出本發明的創新部分,本實施方式中并沒有將與解決本發明所提出的技術問題關系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單
J L ο
[0055]本發明第三實施方式涉及一種移動終端,包含第二實施方式所述的360度全景顯示模塊。本實施方式中的移動終端為智能手機,然并不限于此。
[0056]其中,第二實施方式中提到的相關技術細節在本實施方式中依然有效,在第二實施方式中所能達到的技術效果在本實施方式中也同樣可以實現,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節也可應用在第二實施方式中。
[0057]本領域的普通技術人員可以理解,上述各實施方式是實現本發明的具體實施例,而在實際應用中,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和范圍。
【主權項】
1.一種360度全景顯示方法,其特征在于,包含以下步驟: 獲取當前視點; 根據所述當前視點建立當前視角范圍內的球體模型; 對所述當前視角范圍內的球體模型進行渲染,以生成當前視角范圍內的三維圖像; 顯示所述當前視角范圍內的三維圖像。2.根據權利要求1所述的360度全景顯示方法,其特征在于,根據所述當前視點建立當前視角范圍內的球體模型的步驟,包含以下子步驟: 根據預設的參考視點與參考視角建立參考視角范圍內的球體模型; 利用所述當前視點更新所述參考視角范圍內的球體模型,以產生所述當前視角范圍內的球體模型。3.根據權利要求1所述的360度全景顯示方法,其特征在于,所述獲取當前視點的步驟,包含以下子步驟: 檢測移動終端的當前姿態; 根據所述當前姿態計算所述當前視點。4.根據權利要求3所述的360度全景顯示方法,其特征在于,所述當前姿態至少由所述移動終端的當前角速度表征。5.根據權利要求1所述的360度全景顯示方法,其特征在于,對所述當前視角范圍內的球體模型進行渲染,以生成當前視角范圍內的三維圖像的步驟,包含以下子步驟: 根據所述當前視角范圍內的球體模型計算當前視角范圍對應的紋理坐標; 根據所述當前視角范圍對應的紋理坐標對所述當前視角范圍內的球體模型進行紋理貼圖,以生成所述當前視角范圍內的三維圖像。6.—種360度全景顯示模塊,其特征在于,應用于權利要求1或2所述的360度全景顯示方法,所述360度全景顯示模塊包含:視點獲取單元、建模單元、渲染單元以及顯示單元; 所述視點獲取單元用于獲取當前視點; 所述建模單元用于根據所述當前視點建立當前視角范圍內的球體模型; 所述渲染單元用于對所述當前視角范圍內的球體模型進行渲染,以生成當前視角范圍內的三維圖像; 所述顯示單元用于顯示所述當前視角范圍內的三維圖像。7.根據權利要求6所述的360度全景顯示模塊,其特征在于,所述視點獲取單元包含:姿態檢測子單元與視點計算子單元; 所述姿態檢測子單元用于檢測所述移動終端的當前姿態; 所述視點計算子單元用于根據所述當前姿態計算所述當前視點。8.根據權利要求7所述的360度全景顯示模塊,其特征在于,所述姿態檢測子單元包含陀螺儀。9.根據權利要求6所述的360度全景顯示模塊,其特征在于,所述渲染單元包含:紋理計算子單元與紋理貼圖子單元; 所述紋理計算子單元用于根據所述當前視角范圍內的球體模型計算當前視角范圍對應的紋理坐標; 所述紋理貼圖子單元用于根據當前視角范圍對應的紋理坐標對當前視角范圍內的球體模型進行紋理貼圖,以生成當前視角范圍內的三維圖像。10.—種移動終端,其特征在于,包含權利要求6至9中任意一項所述的360度全景顯示模塊。
【文檔編號】G06T17/10GK105913478SQ201511014470
【公開日】2016年8月31日
【申請日】2015年12月28日
【發明人】許小飛
【申請人】樂視致新電子科技(天津)有限公司