本發(fā)明涉及信息技術領域,尤其涉及一種三維視覺效果模擬方法及裝置。
背景技術:
顯示技術中的三維(3Dimensional,3D)視覺效果,是模擬人觀看實物產生的立體視覺效果。
在現有的利用二維顯示屏進行3D視覺效果模擬的過程中,通常需要利用專用的3D建模軟件,這些3D建模軟件為專門開發(fā)的,通過將二維的圖像進行3維仿真或建模,顯示出3D模擬效果。
采用這種3D視覺效果模擬方法,需要開發(fā)并安裝專用的3D建模軟件,軟件開發(fā)難度大、建模過程中數據處理量大、消耗的設備的處理器CPU或內存等資源多。
技術實現要素:
有鑒于此,本發(fā)明實施例期望提供一種三維視覺效果模擬方法及裝置,以減少三維視覺效果顯示過程中的計算量和消耗的資源。
為達到上述目的,本發(fā)明的技術方案是這樣實現的:
本發(fā)明實施例提供例一種三維視覺果模擬方法,包括:
檢測在顯示平面內視點移動距離;
根據所述視點移動距離,分別確定第一圖形元素在所述顯示平面內的第一移動距離和第二圖形元素在所述顯示平面內的第二移動距離;其中,所述第一移動距離不等于所述第二移動距離;
根據所述第一移動距離,改變所述第一圖形元素在所述顯示平面內的位置,并根據所述第二移動距離改變所述第二圖形元素在所述顯示平面內的位置。
基于上述方案,所述檢測在顯示平面內視點移動距離,包括:
檢測所述顯示平面內指示光標的移動距離。
基于上述方案,所述根據所述視點移動距離,分別確定第一圖形元素在所述顯示平面內的第一移動距離和第二圖形元素在所述顯示平面內的第二移動距離,包括:
依據如下公式分別確定所述第一移動距離和所述第二移動距離;
D=Dmax*(M/Mmax);
其中,所述M為所述視點移動距離;所述Mmax為最大的視點移動距離;當所述Dmax為第一圖形元素的最大移動距離時,所述D為所述第一移動距離;當所述Dmax為第二圖形元素的最大移動距離時,所述D為所述第二移動距離。
基于上述方案,所述Mmax等于所述第一圖形元素和所述第二圖像元素所在顯示窗口的寬度。
基于上述方案,當所述顯示屏幕內的圖形元素還包括所述第一圖形元素和所述第二圖形元素以外的一個或多個其他圖形元素時,所述方法還包括:
根據所述視點移動距離、所述第一移動距離和所述第二移動距離,計算所述其他圖形元素的第三移動距離。
基于上述方案,所述根據所述視點移動距離、所述第一移動距離和所述第二移動距離,計算所述其他圖形元素的第三移動距離,包括:
依據公式Dmax(m)=Dmax(1)*[Z(m)/Z(Screen)]+Dmax(n)計算任意一個所述第三移動距離;
其中,當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第二圖形元素的最大移動距離;當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第一圖形元素的最大移動距離;所述m的取值范圍2到所述n之間的正整數;所述n為不小于3的正整數;
所述Z(m)為第m個圖形元素在垂直于所述顯示屏幕內的Z軸上的坐標;所述Z(Screen)為所述顯示平面內在所述Z軸上的坐標。
基于上述方案,當所述第一圖形元素與所述顯示平面內在Z軸上的距離,大于所述第二圖形元素與所述顯示平面在所述Z軸上的距離時,所述第一移動距離小于所述第二移動距離;其中,所述Z軸垂直于所述顯示平面。
基于上述方案,所述方法還包括:
根據所述第一圖形元素和所述第二圖形元素的圖層疊加順序,分別確定所述第一圖形元素和所述第二圖形元素在所述Z軸上的坐標。
基于上述方案,所述方法還包括:
當所述第一移動距離,大于在預設移動方向上所述第一圖形元素的原始位置與顯示區(qū)域邊緣之間的第一邊緣距離時,計算所述第一移動距離和所述第一邊緣距離之間的第一比例;所述顯示區(qū)域為位于所述顯示平面內所述第一圖形元素和第二圖形元素的顯示范圍;
根據所述第一比例等比縮小所述第一移動距離和所述第二移動距離;
或者,
當所述第二移動距離,大于在預設移動方向上所述第二圖形元素的原始位置與所述顯示區(qū)域邊緣之間的第二邊緣距離時,計算所述第二移動距離和所述第二邊緣距離之間的第二比例;
根據所述第二比例等比縮小所述第一移動距離和所述第二移動距離。
本發(fā)明實施例第二方面提供一種三維視覺效果模擬裝置,包括:
檢測單元,用于檢測在顯示平面內視點移動距離;
確定單元,用于根據所述視點移動距離,分別確定第一圖形元素在所述顯示平面內的第一移動距離和第二圖形元素在所述顯示平面內的第二移動距離;其中,所述第一移動距離不等于所述第二移動距離;
改變單元,用于根據所述第一移動距離,改變所述第一圖形元素在所述顯示平面內的位置,并根據所述第二移動距離改變所述第二圖形元素在所述顯示平面內的位置。
基于上述方案,所述檢測在顯示平面內視點移動距離,包括:
檢測所述顯示平面內指示光標的移動距離。
基于上述方案,所述確定單元,具體用于依據如下公式分別確定所述第一移動距離和所述第二移動距離;
D=Dmax*(M/Mmax);
其中,所述M為所述視點移動距離;所述Mmax為最大的視點移動距離;當所述Dmax為第一圖形元素的最大移動距離時,所述D為所述第一移動距離;當所述Dmax為第二圖形元素的最大移動距離時,所述D為所述第二移動距離。
基于上述方案,所述Mmax等于所述第一圖形元素和所述第二圖像元素所在顯示窗口的寬度。
基于上述方案,所述確定單元,還用于當所述顯示屏幕內的圖形元素還包括所述第一圖形元素和所述第二圖形元素以外的一個或多個其他圖形元素時,根據所述視點移動距離、所述第一移動距離和所述第二移動距離,計算所述其他圖形元素的第三移動距離。
基于上述方案,所述確定單元,還具體用于依據公式Dmax(m)=Dmax(1)*[Z(m)/Z(Screen)]+Dmax(n)計算任意一個所述第三移動距離;
其中,當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第二圖形元素的最大移動距離;當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第一圖形元素的最大移動距離;所述m的取值范圍2到所述n之間的正整數;所述n為不小于3的正整數;
所述Z(m)為第m個圖形元素在垂直于所述顯示屏幕內的Z軸上的坐標;所述Z(Screen)為所述顯示平面內在所述Z軸上的坐標。
基于上述方案,當所述第一圖形元素與所述顯示平面內在Z軸上的距離,大于所述第二圖形元素與所述顯示平面在所述Z軸上的距離時,所述第一移動距離小于所述第二移動距離;其中,所述Z軸垂直于所述顯示平面。
基于上述方案,所述確定單元,還用于根據所述第一圖形元素和所述第二圖形元素的圖層疊加順序,分別確定所述第一圖形元素和所述第二圖形元素在所述Z軸上的坐標。
基于上述方案,所述確定單元,具體用于當所述第一移動距離,大于在預設移動方向上所述第一圖形元素的原始位置與顯示區(qū)域邊緣之間的第一邊緣距離時,計算所述第一移動距離和所述第一邊緣距離之間的第一比例;所述顯示區(qū)域為位于所述顯示平面內所述第一圖形元素和第二圖形元素的顯示范圍;
根據所述第一比例等比縮小所述第一移動距離和所述第二移動距離;
或者,
當所述第二移動距離,大于在預設移動方向上所述第二圖形元素的原始位置與所述顯示區(qū)域邊緣之間的第二邊緣距離時,計算所述第二移動距離和所述第二邊緣距離之間的第二比例;
根據所述第二比例等比縮小所述第一移動距離和所述第二移動距離。
本發(fā)明實施例提供的三維視覺效果模擬方法及裝置,會檢測視點移動距離,根據視點移動距離,計算出第一圖形元素和第二圖形元素的第一移動距離和第二移動距離,再根據第一移動距離和第二移動距離的不同,反映不同的視角差,從而實現三維視覺效果的體現。在本實施例中,第一移動距離和第二移動距離都僅是在顯示平面內的距離計算,且與試點移動距離之間的關聯關系,也非常簡單,顯然相對于3D建模,通過二維與三維之間的映射,計算出在三維空間內各個方向的移動距離,再映射到二維視圖上來的三維視覺模擬效果,大大減少計算量,減少了計算所消耗的處理器和/或內存等資源。
附圖說明
圖1為本發(fā)明實施例提供的第一種三維視覺效果模擬方法的流程示意圖;
圖2A為本發(fā)明實施例提供的一種圖形元素在三維坐標的顯示示意圖;
圖2B為圖2A中圖形元素,在不同觀測點上形成的二維顯示示意圖;
圖3為本發(fā)明實施例提供的一種視角差的示意圖;;
圖4為本發(fā)明實施例提供的另一種圖形元素在三維坐標的顯示示意圖;
圖5A為利用本發(fā)明實施例提供的三維視覺效果模擬方法執(zhí)行的顯示變化圖一;
圖5B為利用本發(fā)明實施例提供的三維視覺效果模擬方法執(zhí)行的顯示變化圖二;
圖6為本發(fā)明實施例提供的一種三維視覺效果模擬裝置的結構示意圖;
圖7為發(fā)明實施例提供的第二種三維視覺效果模擬方法的流程示意圖;
圖8為本發(fā)明實施例提供的另一種三維視覺效果模擬裝置的結構示意圖。
具體實施方式
以下結合說明書附圖及具體實施例對本發(fā)明的技術方案做進一步的詳細闡述。
如圖1所示,本實施例提供一種三維視覺效果模擬方法,包括:
步驟S110:檢測在顯示平面內視點移動距離;
步驟S120:根據所述視點移動距離,分別確定第一圖形元素在所述顯示平面內的第一移動距離和第二圖形元素在所述顯示平面內的第二移動距離;其中,所述第一移動距離不等于所述第二移動距離;
步驟S130:根據所述第一移動距離,改變所述第一圖形元素在所述顯示平面內的位置,并根據所述第二移動距離改變所述第二圖形元素在所述顯示平面內的位置。
在本實施例中所述三維(3D)視覺模擬效果可為應用于各種顯示設備中的顯示方法,例如,應用于手機、平板電腦或可穿戴式設備等各種具有顯示屏的顯示設備。所述顯示平面可為顯示屏的顯示面所在的屏幕。
在本實施例中首先會檢測視點移動距離,在本實施例中所述視點為用戶在所述顯示平面內的關注點。例如,用戶眼睛盯住的位置。在所述步驟S110中,可以通過瞳孔定位或眼動儀的眼動追蹤,確定出所述視點在一個時間片內的移動距離,從而獲得所述視點移動距離,但是具體實現時,不局限于上述方式。例如,一個所述時間片可為一個檢查周期,例如,0.1秒等。
在步驟S120中將會根據視點移動距離,分別確定出所述第一圖形元素和第二圖形元素在顯示平面內的移動。例如,如圖2A所示,所述顯示平面為X軸和Y軸構成的平面,則所述第一圖形元素和第二圖形元素,在步驟S120中計算出的第一移動距離和第二移動距離,都是在X軸和Y軸構成的平面的移動距離。圖2A中的元素一相當于前述的第一圖形元素,元素二可相當于前述的元素二。
在所述步驟S130中,根據第一移動距離改變所述第一圖形元素在顯示屏幕內的位置,可包括:將所述第一圖形元素在所述顯示平面內移動所述第一移動距離。在本實施例中所述第一圖形元素和所述第二圖形元素的移動距離不同,相當于就會使得用戶產生三維視覺效果。在具體實現時,所述第一圖形元素和所述第二圖形元素的移動方向可相同也可以不同,例如,兩個所述圖形元素的移動方向相反。在具體實現時,所述第一圖形元素和所述第二圖形元素的移動方向,與所述視點的移動方向關聯。例如,預先建立好了視點的移動方向與各個圖形元素的移動方向的映射關系,在移動所述第一圖形元素和所述第二圖形元素時,將結合視點的移動方向及映射關系,確定各個圖形元素的移動方向。
針對圖2A立體空間內的圖形元素,從不同的觀測點去觀測時,在二維平面(對應于所述顯示平面)內,觀測到兩個元素之間的距離是不一樣的。具體可如圖2B所示,在A觀測點和觀測點C,元素一覆蓋較多的元素二;在觀測點C和觀測點D覆蓋了較少的元素二。這里的觀測點,即為前述的視點。顯然不同給的觀測點,看到了兩個圖形元素在顯示平面內的距離發(fā)生了本變化。在本實施例中利用了該特點,根據視點移動距離來改變至少兩個圖形元素位置,且改變的移動距離的不一致來呈現三維視覺效果。
同樣地,圖3所示為視差形成3D視覺效果的圖示。從有一定距離的兩個點上觀察同一個目標所產生的方向差異。從目標看兩個點之間的夾角,叫做這兩個點的視差角,兩點之間的距離稱作基線。視差是人類產生立體視覺的前提。基線固定的情況下,目標越遠,視差角越小。通俗的理解,在運動中觀察,離得近的物體移動快,離得遠的物體移動慢。在圖3中顯示的樹,位置不同,離用戶眼睛的距離不同,從而視角差不同,從而將產生不同的視覺效果。在本實施例中利用該特點,將兩個不同的圖形元素,進行不同距離,相當于將兩個圖形元素置于不同的視角差內移動,從而實現三維視覺效果的顯示。
在步驟S130中的移動,可為將第一圖形元素從原始位置開始移動第一移動距離,將第二圖形元素從原始位置開始移動第二移動距離。這里的原始位置都可為未移動之前的圖形元素的顯示位置。
在步驟S120中所述第一移動距離和第二移動距離的計算,都可根據所述視點距離進行的線性計算,且所述第一移動距離和所述第二移動距離都是位于顯示平面內的移動,僅需要計算圖形元素在一個平面內的位置的改動,相對于現有技術中的3D建模,每一個元素在三維空間內移動距離的計算,大大的減少了計算量,節(jié)省了計算資源,提升計算效果,提升了三維視覺效果的響應速度。
在有些實施例中,所述步驟S110可包括:檢測所述顯示平面內指示光標的移動距離。
在本實施例中所述指示光標可為鼠標光標,鍵盤光標。鼠標移動一般是基于用戶操作,若用戶移動鼠標,那么用戶的目光自然追隨者鼠標進行移動。故在本實施例中,可以通過指示光標的移動來反映用戶在顯示平面內的視點的移動距離。所述視點的移動距離簡稱為視點移動距離。例如,所述步驟S110還可包括:檢測焦點的移動距離,作為所述視點移動距離。所述焦點可為被選中的控件,具體的定義可參見現有技術,在此就不重復了。
在有些實施例中,所述步驟S120可包括:
依據如下公式分別確定所述第一移動距離和所述第二移動距離;
D=Dmax*(M/Mmax);
其中,所述M為所述視點移動距離;所述Mmax為最大的視點移動距離;當所述Dmax為第一圖形元素的最大移動距離時,所述D為所述第一移動距離;當所述Dmax為第二圖形元素的最大移動距離時,所述D為所述第二移動距離。
在本實施例中Mmax和所述Dmax可為預先設置的,也可以為從其他設備中接收的。例如,每一張圖片中的需要提供三維視覺效果的圖形元素,都在圖形元素的描述信息里定義了所述Mmax和Dmax,這樣的話,在計算所述第一移動距離或所述第二移動距離時,可以通過讀取所述描述信息即可知。
當然以上僅是提供了一種計算方法,在具體實現時還可以是其他方法。從上述計算函數可知,顯然第一移動距離和第二移動距離的計算方式簡單,計算量少。
進一步地,所述Mmax等于所述第一圖形元素和所述第二圖像元素所在顯示窗口的寬度。在顯示過程中,很多時候都是基于窗口顯示的。窗口可分為全屏窗口和小窗口。小窗口的顯示面積小于全屏窗口的顯示面積。一般情況下全屏窗口的顯示面積等于顯示平面內顯示屏的顯示面積。進行圖形元素的移動時,不能超出各個圖形元素原本的顯示窗口,故在本實施例中為了確保顯示正常,所述Mmax等于所述第一圖形元素和所述第二圖形元素所在顯示窗口的寬度。當然,這里的Mmax所等于的寬度,為所述第一圖形元素和第二圖形元素的移動方向上的寬度。不同的移動方向,所述Mmax不同,則所述D的最終取值也不同。
在有些實施例中,當所述顯示屏幕內的圖形元素還包括所述第一圖形元素和所述第二圖形元素以外的一個或多個其他圖形元素時,所述方法還包括:
根據所述視點移動距離、所述第一移動距離和所述第二移動距離,計算所述其他圖形元素的第三移動距離。
在本實施例中用于產生三維視覺效果的圖形元素可能不止一個,可能包括第3、4、5個等元素。在本實施例中,將根據所述視點移動距離和所述第一移動距離和所述第二移動距離,計算每一個其他移動元素的移動距離,這樣確保各個圖形元素移動距離的統(tǒng)一性,同時避免單獨計算每一個第三移動距離。
如圖4所示,圖4中的元素三、元素四即相當于前述的其他圖形元素。
具體地如,所述根據所述視點移動距離、所述第一移動距離和所述第二移動距離,計算所述其他圖形元素的第三移動距離,包括:
依據公式Dmax(m)=Dmax(1)*[Z(m)/Z(Screen)]+Dmax(n)計算任意一個所述第三移動距離;
其中,當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第二圖形元素的最大移動距離;當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第一圖形元素的最大移動距離;所述m的取值范圍2到所述n之間的正整數;所述n為不小于3的正整數;
所述Z(m)為第m個圖形元素在垂直于所述顯示屏幕內的Z軸上的坐標;所述Z(Screen)為所述顯示平面內在所述Z軸上的坐標。
所述Z(m)和所述Z(Screen)都可以預先設置。當然,所述Z(m)可為設備自動生成,例如,根據各個產生三維視覺效果的圖形元素的顯示面積,自動確定。例如,假設顯示面積與所述Z(m)的取值相關,顯示面積越大,所述Z(m)與顯示平面在Z軸上之間的距離就越小,以上僅是一個舉例,具體實現時,不局限于上述任意一個方法。
例如,當所述第一圖形元素與所述顯示平面內在Z軸上的距離,大于所述第二圖形元素與所述顯示平面在所述Z軸上的距離時,所述第一移動距離小于所述第二移動距離;其中,所述Z軸垂直于所述顯示平面。這樣的話,可以從用戶角度來看,遠景的移動距離小,近景的移動大,從而能夠產生三維視覺效果。
在有些實施例中,所述方法還包括:
根據所述第一圖形元素和所述第二圖形元素的圖層疊加順序,分別確定所述第一圖形元素和所述第二圖形元素在所述Z軸上的坐標。
例如,有些圖像是有多個圖層疊加而成的,不同的圖形元素可能位于不同的圖層,在本實施例中可以根據圖形元素所在的圖層,確定其在Z軸上的坐標,從而相當于確定了與顯示平面在Z軸上的距離。當然以上僅是距離。當然,在具體實現時,還可以根據圖形元素之間的覆蓋關系,來確定在Z軸上坐標。例如,被覆蓋的圖形元素與顯示平面之間在Z軸上的距離遠,未被覆蓋的圖形元素與顯示平面在Z軸上的距離近。當然以上僅是提供幾種可實現的方式。
在具體實現時,所述方法還包括:
當所述第一移動距離,大于在預設移動方向上所述第一圖形元素的原始位置與顯示區(qū)域邊緣之間的第一邊緣距離時,計算所述第一移動距離和所述第一邊緣距離之間的第一比例;所述顯示區(qū)域為位于所述顯示平面內所述第一圖形元素和第二圖形元素的顯示范圍;
根據所述第一比例等比縮小所述第一移動距離和所述第二移動距離;
或者,
當所述第二移動距離,大于在預設移動方向上所述第二圖形元素的原始位置與所述顯示區(qū)域邊緣之間的第二邊緣距離時,計算所述第二移動距離和所述第二邊緣距離之間的第二比例;
根據所述第二比例等比縮小所述第一移動距離和所述第二移動距離。
這里的顯示區(qū)域相當于所述第一圖形元素和第二圖形元素在所述顯示平面內的可移動區(qū)域,為了避免移動超范圍的問題,例如,移動超出顯示窗口的邊界。這里的顯示窗口可為所述顯示區(qū)域的一種,在本實施例中通過第一比例的計算,再通過等比縮小,再移動對應的圖形元素,同樣可以實現三維視覺效果,且視覺效果不會減弱。
圖5A和圖5B展示的為利用本發(fā)明實施例的方法,基于鼠標光標的移動距離改變兩個圖形元素之間的距離的顯示效果圖。圖5A和圖5B中顯示位置發(fā)生改變的圖形元素可包括圓環(huán)圖形元素及文本圖形元素“網絡廣告煩,關不盡”的圖形的距離。在圖5A和圖5B的右圖中虛線箭頭表示鼠標光標原始位置,實線箭頭表示鼠標光標移動后的位置。對比圖5A和圖5B可知,鼠標光標的移動距離,與圖形元素之間的相對位置的改變量正相關。
如圖6所示,本實施例提供一種三維視覺效果模擬裝置,包括:
檢測單元110,用于檢測在顯示平面內視點移動距離;
確定單元120,用于根據所述視點移動距離,分別確定第一圖形元素在所述顯示平面內的第一移動距離和第二圖形元素在所述顯示平面內的第二移動距離;其中,所述第一移動距離不等于所述第二移動距離;
改變單元130,用于根據所述第一移動距離,改變所述第一圖形元素在所述顯示平面內的位置,并根據所述第二移動距離改變所述第二圖形元素在所述顯示平面內的位置。
本實施例所述裝置可為應用于各種顯示設備中的信息處理結構。所述顯示設備可為手機、平板、可穿戴式設備、臺式電腦、筆記本電腦或電子書等各種顯示終端。
所述檢測單元110、所述確定單元120及改變單元130,都可對應于處理器或處理電路。所述處理器可包括中央處理器、微處理器、數字信號處理器、應用處理器、或可編程陣列等。所述處理電路可包括專用集成電路。
所述處理器或處理電路可通過指定代碼的執(zhí)行,實現上述功能。
在一些實施例中,所述檢測單元110,具體用于檢測所述顯示平面內指示光標的移動距離。所述檢測單元110可包括鼠標或檢測面板等檢測指示光標移動操作的結構。
進一步地,所述確定單元120,具體用于依據如下公式分別確定所述第一移動距離和所述第二移動距離;
D=Dmax*(M/Mmax);
其中,所述M為所述視點移動距離;所述Mmax為最大的視點移動距離;當所述Dmax為第一圖形元素的最大移動距離時,所述D為所述第一移動距離;當所述Dmax為第二圖形元素的最大移動距離時,所述D為所述第二移動距離。
本實施例所述確定單元120對應于計算器或計算電路或具有計算功能的處理器或處理電路,可用于計算出所述第一移動距離或第二移動距離。
可選地,所述Mmax等于所述第一圖形元素和所述第二圖像元素所在顯示窗口的寬度。
在另一些實施例中,所述確定單元120,還用于當所述顯示屏幕內的圖形元素還包括所述第一圖形元素和所述第二圖形元素以外的一個或多個其他圖形元素時,根據所述視點移動距離、所述第一移動距離和所述第二移動距離,計算所述其他圖形元素的第三移動距離。
在本實施例中為了避免單獨計算每一個圖形元素的距離,導致移動距離沒有一致性,在本實施例中將根據第一圖形元素和第二圖形元素的移動距離來確定。
進一步地,所述確定單元120,還具體用于依據公式Dmax(m)=Dmax(1)*[Z(m)/Z(Screen)]+Dmax(n)計算任意一個所述第三移動距離;
其中,當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第二圖形元素的最大移動距離;當所述Dmax(1)為所述第一圖形元素的最大移動距離時,所述Dmax(n)為所述第一圖形元素的最大移動距離;所述m的取值范圍2到所述n之間的正整數;所述n為不小于3的正整數;
所述Z(m)為第m個圖形元素在垂直于所述顯示屏幕內的Z軸上的坐標;所述Z(Screen)為所述顯示平面內在所述Z軸上的坐標。
總之,本實施例確定單元120可根據上述函數關系進行計算,但是不限于上述函數關系。
此外,當所述第一圖形元素與所述顯示平面內在Z軸上的距離,大于所述第二圖形元素與所述顯示平面在所述Z軸上的距離時,所述第一移動距離小于所述第二移動距離;其中,所述Z軸垂直于所述顯示平面。這樣的話,就能夠實現遠景移動距離小,近景移動距離大,從而產生三維視覺效果。
各個圖形元素在Z軸上的坐標有多種確定結構有中,例如,確定單元120可由于根據人機交互接口獲取的操作指示來確定。在本實施例中所述確定單元120,還用于根據所述第一圖形元素和所述第二圖形元素的圖層疊加順序,分別確定所述第一圖形元素和所述第二圖形元素在所述Z軸上的坐標。
此外,所述確定單元120,具體用于當所述第一移動距離,大于在預設移動方向上所述第一圖形元素的原始位置與顯示區(qū)域邊緣之間的第一邊緣距離時,計算所述第一移動距離和所述第一邊緣距離之間的第一比例;所述顯示區(qū)域為位于所述顯示平面內所述第一圖形元素和第二圖形元素的顯示范圍;根據所述第一比例等比縮小所述第一移動距離和所述第二移動距離;或者,當所述第二移動距離,大于在預設移動方向上所述第二圖形元素的原始位置與所述顯示區(qū)域邊緣之間的第二邊緣距離時,計算所述第二移動距離和所述第二邊緣距離之間的第二比例;根據所述第二比例等比縮小所述第一移動距離和所述第二移動距離。
以下結合上述任意一個實施例提供幾個具體示例:
示例一:
如圖7所示,本示例提供一種3D視覺效果展示方法,包括:
步驟S1:靜態(tài)展示;這里的靜態(tài)展示可為將圖像或圖像元素靜態(tài)展示在網頁中或應用的應用界面中。例如,在游戲網頁中,在游戲未開始之前靜態(tài)展示游戲頁面的各種圖形元素;再比如,在微信的顯示界面,靜態(tài)展示一個社交圖片。
步驟S2:判斷鼠標是否位于窗口內,若是,進入步驟S3,若否,則進入步驟S5。這里的窗口可為整個顯示屏的顯示窗口,也可以為3D視覺模擬的顯示窗口內。這里的鼠標實質上可對應于鼠標光標,通常鼠標光標是用戶視覺所關注的焦點,即用戶的視點所在位置。在具體執(zhí)行步驟S2時,還可以是判斷觸控點或用戶瞳孔定位等對應的視點是否位于所述窗口中,這里的窗口可為顯示有可呈現動態(tài)的圖形元素的顯示界面或顯示區(qū)域。
步驟S3:視差計算。這里的視差計算可對應于前述的步驟S120。當鼠標位于窗口內,即表示用戶的視點位于所述窗口,這個時候需要執(zhí)行視差計算。具體可包括檢測鼠標光標的移動距離,根據移動距離計算窗口內至少兩個圖形元素的移動距離。
步驟S4:模擬3D視覺,可對應于步驟S130的不同圖形元素的移動。計算出鼠標光標的移動距離之后,根據計算得到的移動距離,分別移動每一個圖形元素,由于至少兩個圖形元素的移動距離不相等,這樣就會產生三維視覺的效果。如圖5A和圖5B所示,鼠標光標移動前圓環(huán)形圖形元素和文本圖形元素“網絡廣告煩,關不盡”之間的距離相對較遠,在移動之后,這兩個圖形元素的距離變近了。這樣就會讓用戶產生遠景移動距離近,近景移動距離遠的三維視覺效果。比對圖5A和圖5B可知,兩個圖形元素之間的距離的改變,與鼠標光標的移動距離相關,即與視點的移動距離相關。
步驟S5:靜態(tài)展示。當鼠標光標移動出窗口,即表示用戶的視點移動出窗口,用戶不在關注該窗口的顯示區(qū)域,為了簡化設備的操作,窗口恢復到靜態(tài)顯示,不在進行視點距離計算及圖形元素的移動,減少對設備的計算資源和處理資源的占用,避免增加設備的負荷,從而使得設備有更多的資源來響應其他操作,提高設備執(zhí)行其他操作的響應速率。
值得注意的是本示例提供的方法,可以應用于各種顯示場景,在本示例中優(yōu)先為應用于第一視角顯示場景,這里的第一視角為用戶的視點移動而移動顯示場景和/或內容的顯示模式。例如,游戲場景,用戶移動光標,轉換游戲場景的顯示場景。視頻顯示則為非第一視角顯示場景的另一種顯示視角。
以下以鼠標光標移動為例,具體可以利用如下公式,來計算模擬3D視覺中的各個元素的移動距離。
觀測點移動距離相同的情況下,近景(元素一)移動快,遠景(元素二)移動慢。移動的距離可以根據下列公式計算
D=Dmax*(M/Mmax)
Dmax:最大移動距離
M:觀測點移動距離
Mmax:觀測點最大移動距離
觀測點移動距離(M)就是鼠標移動距離,觀測點最大移動距離(Mmax)就是展示窗口大小。計算移動距離(D)的關鍵在于找到合適的Dmax。近景需要較大的Dmax,遠景需要較小的Dmax。于是3D視覺模擬轉化為Dmax的選擇。觀測點即為前述視點。
根據應用場景不一樣,Dmax有不同的選擇方案。電腦管家彈窗推薦窗口使用了兩幅靜態(tài)圖片進行模擬,場景比較簡單,移動距離可以固定。近景和遠景的Dmax直接人工指定為10個像素l和5像素。
在更加復雜的場景里,視覺元素可能有n個,觀測點移動過程中,離屏幕越近的元素移動越快。第m個元素的Dmax(m)可以通過下面的公式計算:
Dmax(m)=Dmax(1)*[Z(m)/Z(Screen)]+Dmax(n)
Dmax(1):最近(第1個)元素最大移動距離
Dmax(n):最遠(第n個)元素最大移動距離
Z(m):第m個元素的z軸坐標
Z(Screen):屏幕的z軸坐標
示例二:
如圖8所示,本示例提供一種三維視覺效果模擬裝置的一個可選的硬件結構示意圖,包括處理器11、輸入/輸出接口13(例如顯示屏、觸摸屏、揚聲器),存儲介質14以及網絡接口12,組件可以經系統(tǒng)總線15連接通信。相應地,存儲介質14中均存儲有用于執(zhí)行本發(fā)明實施例記載的服務處理方法的可執(zhí)行指令。圖8中示出的各硬件模塊可根據需要部分實施、全部實施或實施其他的硬件模塊,各類型硬件模塊的數量可以為一個或多個,各硬件模塊可以在同一地理位置實施,或者分布在不同的地理位置實施,可以用于執(zhí)行上述圖1、圖5及圖8所示的三維視覺效果模擬方法。
在本申請所提供的幾個實施例中,應該理解到,所揭露的設備和方法,可以通過其它的方式實現。以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,如:多個單元或組件可以結合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個地方,也可以分布到多個網絡單元上;可以根據實際的需要選擇其中的部分或全部單元來實現本實施例方案的目的。
另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理模塊中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:移動存儲設備、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。