、投影矩陣或模擬鼠標的位置信息進行變換 或修改,從而利用修改后的觀察矩陣、投影矩陣或模擬鼠標的位置信息構(gòu)建虛擬場景的立 體圖像,進而在一定程度上減輕用戶在使用虛擬與現(xiàn)實設(shè)備時在同步觀察視角時所產(chǎn)生的 不適感。此外,本發(fā)明實施例所提供了=種不同的用于虛擬和現(xiàn)實場景的立體顯示方法來 實現(xiàn)虛擬場景下的觀察視角與現(xiàn)實用戶頭部位置變化后的觀察視角的同步,可W針對不同 的顯示場景使用,因此應(yīng)用范圍非常廣泛。
[0079] 首先需要說明的是,本發(fā)明的實施例中假設(shè)虛擬場景中和真實場景中用戶的頭部 位置的觀察轉(zhuǎn)動角度是相同的,并且位置的偏移在結(jié)合標尺(Scale)后也是相同的。結(jié)合 上面的假設(shè),本發(fā)明的實施例中,根據(jù)真實場景中用戶頭部位置的跟蹤數(shù)據(jù),變換虛擬場景 中觀察的方位,即同步觀察視角。
[0080] 還需要說明的是,本發(fā)明實施例可W應(yīng)用在穿戴式的3D顯示場景,還可W應(yīng)用在 裸眼3D顯示場景,本發(fā)明對此不做限定。
[0081] W下對本發(fā)明實施例提供的用于虛擬和現(xiàn)實場景的立體顯示方法、裝置和電子設(shè) 備進行詳細說明。
[0082] 如圖1所示,本發(fā)明的實施例一提供一種用于虛擬和現(xiàn)實場景的立體顯示方法,
[0083] 步驟11,跟蹤用戶的頭部位置,獲取用戶頭部位置的實時跟蹤數(shù)據(jù)。
[0084] 可選的,如果用戶是穿戴式的方式觀看3D內(nèi)容,可通過速度傳感器或者加速度傳 感器等傳感器件跟蹤用戶的頭部位置從而獲取用戶頭部位置的實時跟蹤數(shù)據(jù),如果是裸眼 3D場景,可通過攝像頭跟蹤用戶的頭部位置從而獲取用戶頭部位置的實時跟蹤數(shù)據(jù),本領(lǐng) 域技術(shù)人員可W任意選擇。
[00化]具體的,用戶頭部位置的實時跟蹤數(shù)據(jù)可W包括頭部在=維空間中的實時轉(zhuǎn)動角 度,可通過預(yù)先建立一=維坐標系,從而獲取用戶頭部相對于X軸的旋轉(zhuǎn)角度、相對于Y軸 的旋轉(zhuǎn)角度W及相對于Z軸的旋轉(zhuǎn)角度來共同表示用戶頭部的實時轉(zhuǎn)動角度。當然,用戶 頭部位置的實時跟蹤數(shù)據(jù)還可包括頭部在=維空間的實時平移距離,與實時轉(zhuǎn)動角度類 似,在此不做詳述。
[0086] 舉例說明,如圖2所示,用戶頭部的實時跟蹤數(shù)據(jù)包括頭部在=維空間中的轉(zhuǎn)動 角度(Pitch, Yaw, Roll);其中,Pitch :用戶頭部相對于X軸的轉(zhuǎn)動角度;Yaw :用戶頭部相 對于y軸的轉(zhuǎn)動角度;Roll :用戶頭部相對于Z軸的轉(zhuǎn)動角度。
[0087] 步驟12,根據(jù)用戶頭部位置的實時跟蹤數(shù)據(jù),確定用于虛擬場景的模擬鼠標的移 動量。
[0088] 本實施例提供的立體顯示方法可W適用于支持鼠標轉(zhuǎn)動視角的應(yīng)用場景中,即鼠 標的移動可W控制偏轉(zhuǎn)視角。將用戶頭部位置的實時跟蹤數(shù)據(jù)與鼠標移動量綁定,則可W 根據(jù)實時跟蹤數(shù)據(jù),例如用戶頭部的實時轉(zhuǎn)動角度確定鼠標的移動量。
[0089] 具體的,其中鼠標可W為虛擬鼠標也可W為實際的鼠標,但是基于不影響3D內(nèi)容 整體畫面感的前提,本申請中所指的鼠標一般為虛擬鼠標,即用于虛擬場景中的模擬鼠標。 該模擬鼠標是與真實場景的實際鼠標相對應(yīng)的,實際鼠標移動,該模擬鼠標相應(yīng)移動,3D內(nèi) 容隨模擬鼠標的移動而移動。可W理解的是,模擬鼠標可W是存在顯示于虛擬場景中的,也 可W是用于控制虛擬場景的視角改變的后臺數(shù)據(jù)。本實施例中,將用戶頭部位置的改變與 模擬鼠標的位置關(guān)聯(lián),從而改變虛擬場景的視角。
[0090] 步驟13,根據(jù)所述模擬鼠標的移動量,修改所述模擬鼠標的位置信息,W實現(xiàn)根據(jù) 修改后的所述模擬鼠標的位置信息生成并顯示虛擬場景的立體圖像,從而對虛擬場景的觀 察視角進行變換,實現(xiàn)虛擬場景下的觀察視角與用戶頭部位置變化后的觀察視角同步。
[0091] 具體的,得到模擬鼠標的移動量后,修改模擬鼠標的位置信息,從而使得應(yīng)用程序 (例如3D游戲等)控制所述模擬鼠標移動,則游戲畫面會由于模擬鼠標的移動而變換,從而 達到游戲畫面與用戶頭部的轉(zhuǎn)動同步的目的。
[0092] 本發(fā)明的實施例一提供的立體顯示方法中觀察視角的同步方法即利用模擬鼠標 進行偏轉(zhuǎn)視角的方法,該方法適用于支持鼠標轉(zhuǎn)動視角的應(yīng)用,例如游戲應(yīng)用,雖然此方式 會影響正常鼠標的操作,但是在游戲的視角轉(zhuǎn)換中,不影響整個管線和流程,更貼近與原游 戲本身操控。
[0093] 優(yōu)選的,為了避免頭部位置數(shù)據(jù)的突然波動而造成觀察視角的突變,進而使得用 戶產(chǎn)生眩暈感,本發(fā)明的具體實施例中,在所述根據(jù)所述實時跟蹤數(shù)據(jù),確定用于虛擬場景 的模擬鼠標的移動量前,所述方法還包括:
[0094] 對所述實時跟蹤數(shù)據(jù)進行平滑濾波處理,得到平滑濾波處理后的實時跟蹤數(shù)據(jù);
[0095] 所述根據(jù)所述實時跟蹤數(shù)據(jù),確定用于虛擬場景的模擬鼠標的移動量包括:
[0096] 根據(jù)所述平滑濾波處理后的實時跟蹤數(shù)據(jù),確定用于虛擬場景的模擬鼠標的移動 量。
[0097] 運樣,可W在后續(xù)構(gòu)建并顯示立體圖像從而改變觀察視角時,能夠在一定程度上 減弱用戶的不適感,提升用戶體驗。
[0098] 具體的,本發(fā)明提供的實施例一中步驟12可W包括:
[0099] 步驟121,根據(jù)所述實時跟蹤數(shù)據(jù),確定所述用戶頭部的實時轉(zhuǎn)動角度。
[0100] 可W理解的是,在很多場景中,例如第一人稱射擊游戲中,只關(guān)注頭部關(guān)于X軸和 Y軸的旋轉(zhuǎn)變換,則可直接根據(jù)X軸數(shù)據(jù)和Y軸數(shù)據(jù)確定用戶頭部的實時轉(zhuǎn)動角度。 陽101] 步驟122,根據(jù)所述用戶頭部的實時轉(zhuǎn)動角度,確定用于虛擬場景的模擬鼠標的移 動量。
[0102] 進一步的,本發(fā)明提供的實施例一中步驟11包括: 陽103] 步驟111,獲取用戶頭部的當前帖的跟蹤數(shù)據(jù)和該用戶頭部前一帖的跟蹤數(shù)據(jù);
[0104] 例如,即取出當前帖的頭部跟蹤數(shù)據(jù)中的PitcM頭部繞X軸旋轉(zhuǎn)角度),Yaw(頭 部繞y軸旋轉(zhuǎn)角度),作為基準值;再獲取前一帖的Pitch, Yaw。根據(jù)當前帖的頭部跟蹤數(shù) 據(jù)和前一帖的跟蹤數(shù)據(jù)能夠準確的確定用戶頭部的轉(zhuǎn)動角度。
[01化]步驟112,獲取當前帖的跟蹤數(shù)據(jù)和前一帖的跟蹤數(shù)據(jù)的差值,并由所述差值確定 所述實時轉(zhuǎn)動角度。
[0106] 具體的,將當前帖的PitcM頭部繞X軸旋轉(zhuǎn)角度),Yaw(頭部繞y軸旋轉(zhuǎn)角度) 和前一帖的PitcM頭部繞X軸旋轉(zhuǎn)角度),Yaw(頭部繞y軸旋轉(zhuǎn)角度)分別作差,得到 APitch, A Yaw。該APitch, A Yaw分別為用戶頭部沿X軸和沿Y軸的實時轉(zhuǎn)動角度。 陽107] 進一步的,本發(fā)明的實施例一中步驟122包括:
[0108] 步驟1221,將所述用戶頭部的實時轉(zhuǎn)動角度與一預(yù)設(shè)轉(zhuǎn)換系數(shù)相乘,得到用于虛 擬場景的所述模擬鼠標的移動量。
[0109] 即將上述步驟112得到的APitch, AYaw分別乘W-預(yù)設(shè)轉(zhuǎn)換系數(shù),該預(yù)設(shè)轉(zhuǎn) 換系數(shù)為用來轉(zhuǎn)換頭部轉(zhuǎn)動角度和鼠標偏移量的轉(zhuǎn)換因子,從而得到Ax, Ay;從而通過 A X,A y,改變鼠標位置:鼠標.X+ = A X ;鼠標.y+ = A y ;即將模擬鼠標沿X軸移動A X, 沿Y軸移動A y,即可達到偏轉(zhuǎn)視角的目的,從而實現(xiàn)用戶的觀察視角的同步。
[0110] 為了更好的實現(xiàn)上述目的,如圖3所示,本發(fā)明的實施例二還提供一種用于虛擬 和現(xiàn)實場景的立體顯示裝置,包括: 陽111] 第二跟蹤獲取模塊21,用于跟蹤用戶的頭部位置,獲取用戶頭部位置的實時跟蹤 數(shù)據(jù);
[0112] 確定模塊22,用于根據(jù)用戶頭部位置的實時跟蹤數(shù)據(jù),確定用于虛擬場景的模擬 鼠標的移動量;
[0113] 位置修改模塊23,用于根據(jù)所述模擬鼠標的移動量,修改所述模擬鼠標的位置信 息,W使實現(xiàn)根據(jù)修改后的所述模擬鼠標的位置信息生成并顯示虛擬場景的立體圖像,從 而對虛擬場景的觀察視角進行變換,實現(xiàn)虛擬場景下的觀察視角與用戶頭部位置變化后的 觀察視角同步。
[0114] 優(yōu)選的,本發(fā)明提供的實施例二中還可包括:
[0115] 平滑處理模塊,用于對所述實時跟蹤數(shù)據(jù)進行平滑濾波處理,得到平滑濾波處理 后的實時跟蹤數(shù)據(jù);
[0116] 則,確定模塊22用于根據(jù)所述平滑濾波處理后的實時跟蹤數(shù)據(jù),確定用于虛擬場 景的模擬鼠標的移動量。
[0117] 本發(fā)明提供的實施例二中確定模塊22可包括:
[0118] 第一確定子模塊,用于根據(jù)所述實時跟蹤數(shù)據(jù),確定所述用戶頭部的實時轉(zhuǎn)動角 度;
[0119] 第二確定子模塊,用于根據(jù)所述用戶頭部的實時轉(zhuǎn)動角度,確定用于虛擬場景的 模擬鼠標的移動量。
[0120] 本發(fā)明提供的實施例二中第一確定子模塊可包括: 陽121] 數(shù)據(jù)獲取模塊,用于獲取用戶頭部的當前帖的跟蹤數(shù)據(jù)和該用戶頭部前一帖的跟 蹤數(shù)據(jù);
[0122] 角度獲取模塊,用于獲取當前帖的跟蹤數(shù)據(jù)和前一帖的跟蹤數(shù)據(jù)的差值,并由所 述差值確定所述實時轉(zhuǎn)動角度。
[0123] 本發(fā)明的實施例二中第二確定子模塊可包括:
[0124] 移動量確定模塊,用于將所述用戶頭部的實時轉(zhuǎn)動角度與一預(yù)設(shè)轉(zhuǎn)換系數(shù)相乘, 得到用于虛擬場景的所述模擬鼠標的移動量。
[0125] 本發(fā)明的實施例二提供的用于虛擬和現(xiàn)實場景的立體顯示裝置中,利用模擬鼠標 的偏轉(zhuǎn)進行觀察視角的偏轉(zhuǎn),從而實現(xiàn)觀察視角的同步,優(yōu)化了用戶體驗;需要說明的是, 該實施例二提供的用于虛擬和現(xiàn)實場景的立體顯示裝置是應(yīng)用上述用于虛擬和現(xiàn)實場景 的立體顯示方法的同步裝置,則上述用于虛擬和現(xiàn)實場景的立體顯示方法的所有實施例均 適用于該同步裝置,且均能達到相同或相似的有益效果。
[01%] 為了更好的實現(xiàn)上述目的,如圖4所示,本發(fā)明的實施例=還提供一種用于虛擬 和現(xiàn)實場景的立體顯示方法,包括: 陽127] 步驟31,跟蹤用戶的頭部位置,獲取用戶頭部位置的實時跟蹤數(shù)據(jù)。
[0128] 可選的,如果用戶是穿戴式的方式觀看3D內(nèi)容,可通過速度傳感器或者加速度傳 感器等傳感器件跟蹤用戶的頭部位置從而獲取用戶頭部位置的實時跟蹤數(shù)據(jù),如果是裸眼 3D場景,可通過攝像頭跟蹤用戶的頭部位置從而獲取用戶頭部位置的實時跟蹤數(shù)據(jù),本領(lǐng) 域技術(shù)人員可W任意選擇。
[0129] 具體的,用戶頭部位置的實時跟蹤數(shù)據(jù)可W包括頭部在=維空間中的實時轉(zhuǎn)動角 度,可通過預(yù)先建立一=維坐標系,從而獲取用戶頭部相對于X軸的旋轉(zhuǎn)角度、相對于Y軸 的旋轉(zhuǎn)角度W及相對于Z軸的旋轉(zhuǎn)角度來共同表示用戶頭部的實時轉(zhuǎn)動角度。當然,用戶 頭部位置的實時跟蹤數(shù)據(jù)還可包括頭部在=維空間的實時平移距離,與實時轉(zhuǎn)動角度類 似,在此不做詳述。
[0130] 舉例說明,如圖2所示,用戶頭部的實時跟蹤數(shù)據(jù)包括頭部在S維空間中的轉(zhuǎn)動 角度(Pitch, Yaw, Roll);其中,Pitch :用戶頭部相對于X軸的轉(zhuǎn)動角度;Yaw :用戶頭部相 對于y軸的轉(zhuǎn)動角度;Roll :用戶頭部相對于Z軸的轉(zhuǎn)動角度。 陽131] 步驟32,當用戶的頭部位置發(fā)生變化時,根據(jù)所述實時跟蹤數(shù)據(jù)對虛擬場景的原 觀察矩陣或原投影矩陣進行變換,得到新的觀察矩陣或新的投影矩陣。
[0132] 從原理上來講,變換原觀察矩陣的方式是保持觀察場景和物體不動,而改變攝像 機(代表用戶的眼睛)的觀察位置和角度來實現(xiàn)觀察視角同步的方式,而變換原投影矩陣 的方式是保持攝像機的位置不動,而改變視景體位置來實現(xiàn)觀察視角同步的方式。
[0133] 具體的,根據(jù)用戶頭部位置發(fā)生變化時所獲取的實時跟蹤數(shù)據(jù),對虛擬場景的原 觀察矩陣或原投影矩陣進行變換,