本發明涉及數據處理領域,具體而言,涉及一種體素數據的同步方法和裝置。
背景技術:
目前,體素的應用促進了硬件的發展,尤其是自圖形處理器(graphicsprocessingunit,簡稱為gpu)的普及以來,體素開始廣泛地使用在游戲應用中。但是,由于體素的單位數量極其龐大,在網絡游戲方面的使用還是比較有限的。例如,由于每一時刻對體素數據的同步非常消耗本地和網絡資源,“我的世界”應用也是不存在網絡模式的,而僅僅是單機游戲應用。
另外,沙盒網絡游戲開始投入到市場當中,體素數據的同步也作為一個很重要的技術點開始被應用。沙盒網絡游戲中應用體素數據的方式,一般包括兩種類型。第一種類型是主打的多變玩法,體素地形是一開始在一段時間內一次生成,在生成體素地形之后,不存在連續大量的改變體素地形的情況,偶爾對體素地形的修改也不會過多影響網絡體素同步,體素數據的修改頻率低于1單元每分鐘。第二中類型是主打的建造類型的玩法,會涉及連續地去修改體素數據的情況,但是每一個時刻對于體素數據的修改量也是相對較小的,這一種應用對于體素數據的修改頻率也不會高于1單元每秒。
在上述兩種類型的應用體素數據的方式中,可以簡單地對體素進行編號,對每個單位的狀態進行編號,通過傳輸體素的編號和每個單位的狀態的編號可以達到體素數據同步的目的,可以在每一次體素數據的修改量不是很大的時候采用。
上述兩種類型的應用體素數據的方式針對于體素數據同步所存在的場景都在非vr下的非大量的體素數據的修改這樣的使用場景,一秒鐘更新體素數據小于等于1單位的情況,當一幀需要修改的體素數據為千單位級別的時候,或者在每秒高于萬單位的體素數據需要修改的網絡同步下,通過編號傳輸體素數據會造成極其龐大的網絡帶寬和本地數據處理量,進而導致整個系統癱瘓,沒有辦法應用。另外,目前虛擬現實環境下的體素雕刻應用還都不存在網絡模式,也即,不支持多人同時雕刻。
針對上述的體素數據同步的數據處理量大問題,目前尚未提出有效的解決方案。
技術實現要素:
本發明實施例提供了一種體素數據的同步方法和裝置,以至少解決體素數據同步的數據處理量大的技術問題。
根據本發明實施例的一個方面,提供了一種體素數據的同步方法。該方法包括:在虛擬現實場景中,第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯;第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;第一客戶端接收服務器發送的操作指示數據;第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
根據本發明實施例的另一方面,還提供了一種體素數據的同步裝置。該裝置包括:第一獲取單元,用于在虛擬現實場景中,使第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯;發送單元,用于使第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;第一接收單元,用于使第一客戶端接收服務器發送的操作指示數據;第二接收單元,用于使第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
在本發明實施例中,第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據;第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;第一客戶端接收服務器發送的操作指示數據;第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據的方式。由于本發明在實現體素數據同步時,傳輸的是未攜帶體素數據的操作指示數據,完全不涉及體素數據的傳輸,實現了在虛擬現實場景下,體素數據傳輸同步的目的,從而實現了降低體素數據同步的數據處理量的技術效果,進而解決了體素數據同步的數據處理量大的技術問題。
附圖說明
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1是根據本發明實施例的一種體素數據的同步方法的硬件環境的示意圖;
圖2是根據本發明實施例的一種體素數據的同步方法的流程圖;
圖3是根據本發明實施例的一種第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作的方法的流程圖;
圖4是根據本發明實施例的另一種體素數據的同步方法的流程圖;
圖5是根據本發明實施例的一種體素數據的同步方法的交互示意圖;
圖6是根據本發明實施例的一種體素數據的同步裝置的示意圖;
圖7是根據本發明實施例的另一種體素數據的同步裝置的示意圖;
圖8是根據本發明實施例的另一種體素數據的同步裝置的示意圖;
圖9是根據本發明實施例的另一種體素數據的同步裝置的示意圖;以及
圖10是根據本發明實施例的一種終端的結構框圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
實施例1
根據本發明實施例,提供了一種體素數據的同步方法的實施例。
可選地,在本實施例中,上述體素數據的同步方法可以應用于如圖1所示的由服務器102和終端104所構成的硬件環境中。圖1是根據本發明實施例的一種體素數據的同步方法的硬件環境的示意圖。如圖1所示,服務器102通過網絡與終端104進行連接,上述網絡包括但不限于:廣域網、城域網或局域網,終端104并不限定于pc、手機、平板電腦等。本發明實施例的體素數據的同步方法可以由服務器102來執行,也可以由終端104來執行,還可以是由服務器102和終端104共同執行。其中,終端104執行本發明實施例的體素數據的同步方法也可以是由安裝在其上的客戶端來執行。
圖2是根據本發明實施例的一種體素數據的同步方法的流程圖。如圖2所示,該方法可以包括以下步驟:
步驟s202,第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據。
在本申請上述步驟s202提供的技術方案中,在虛擬現實(virtualreality,簡稱為vr)場景中,第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯。
體素也即立體像素(voxel),是體積像素(volumepixel)的簡稱,類似于二維空間的最小單位像素,其中,像素用在二維電腦圖像的視頻數據上。體積像素是數字數據在三維空間分區上的最小單位,可以應用于三維成像、科學數據與醫學視頻等領域。可選地,三維顯示器通過體素描述分辨率,比如,用于顯示512×512×512體素的顯示器。體素是游戲應用中高自由度的用戶原創內容(usergeneratedcontent,簡稱為ugc)的實現方式,可以任意由玩家創作出高復雜度的網格(mesh),有無線的擴展性和離散性。
在該實施例中,處于虛擬現實場景中的第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,虛擬現實場景可以為體素場景。該第一客戶端與虛擬現實設備相關聯,其中,虛擬現實設備可以為虛擬現實手柄,該虛擬現實設備在虛擬現實場景中可以觸及的位置都是體素單元。
在該實施例中,虛擬現實設備在虛擬現實場景中的觸及動作,可以用于指示根據虛擬現實設備在虛擬現實場景中所處的位置或者區域確定用于執行目標操作的目標信息,比如,將虛擬現實設備在虛擬現實場景中所處的位置確定為操作位置,或者將所處的區域確定為操作區域,該操作位置或者區域包括體素單元,對體素單元執行的目標操作包括增加網格操作、刪除網格操作、平滑已有網格的操作等。
可選地,虛擬現實設備在虛擬現實場景中的觸及動作,用于指示判斷虛擬現實設備在虛擬現實場景中所處的位置與用于觸發虛擬現實設備執行操作,或者用于響應其它設備操作的預設位置之間是否符合預設觸發條件。可選地,預設觸發條件為虛擬現實設備在虛擬現實場景中所處的位置與上述預設位置重合,或者其位置差值在預設位置范圍內。
可選地,虛擬現實設備在虛擬現實場景中的觸及動作,用于指示判斷虛擬現實設備在虛擬現實場景中所處的區域與用于觸發虛擬現實設備執行操作,或者用于響應其它設備操作的預設區域之間是否符合預設觸發條件。可選地,預設觸發條件為虛擬現實設備在虛擬現實場景中所處的區域與上述預設區域重合,或者其區域差值在預設區域范圍內。
可選地,虛擬現實設備在虛擬現實場景中的觸及動作,為觸摸操作,通過虛擬現實設備觸摸預設位置上顯示的虛擬對象。
需要說明的是,上述虛擬現實設備在虛擬現實場景中的觸及動作僅為本發明實施例的優選實施方式,并不限定于本發明實施例的虛擬現實設備的觸及動作僅包括上述方式,任何可以體現虛擬現實設備與虛擬現實場景之間的關系的方式都在本發明實施例的范圍之內,此處不再一一舉例說明。
該實施例的目標區域為用戶通過虛擬現實設備可以操作的可視化區域,該目標區域可以為二維區域,也可以為三維區域,可以是以當前虛擬現實設備所觸及的體素單元為中心的一個已定義的區域,比如,以虛擬現實設備當前所觸及的體素單元為中心的圓形區域、方形區域、球體、立方體等規則區域,該目標區域還可以為已經確定的不規則區域。目標區域中包括體素,操作指示數據用于指示對目標區域中的體素執行操作,是連接用戶操作和體素的橋梁,比如,操作包。在第一客戶端獲取到操作指數數據時,并沒有對目標區域中的體素執行操作,該操作指示數據可以用于對當前操作的操作區域進行描述,對當前操作的操作類型進行描述,指示當前操作區域中的體素單元的狀態結果等,不包括體素數據本身,因而數據量比較小。可選地,對目標區域中的體素執行的操作包括增加體素網格、刪除體素網格、平滑已有體素網格等操作。
虛擬現實設備觸及體素產生指示操作數據,包括虛擬現實設備在觸及體素時,并且在接收到預設指令的情況下產生上述指示操作數據,比如,以虛擬現實設備觸及的位置為中心點,當按下虛擬現實設備的板機鍵的瞬間,產生操作指示數據。
舉例而言,以當前虛擬現實手柄所觸及的體素單元為中心點,執行填充一個10*10*10大小的正方體體素網格的操作。在虛擬現實設備手柄扳機鍵的瞬間那一幀,觸發產生了一個操作包。
步驟s204,第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合。
在本申請上述步驟s204提供的技術方案中,第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端。
在第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據之后,第一客戶端向服務器發送操作指示數據。可選地,在服務器接收到操作指示數據之后,服務器對操作指數數據進行驗證,當服務器對操作指示數據驗證通過的情況下,服務器確定該操作指示數據合法,服務器將操作指示數據發送至預定客戶端集合,該預定客戶端集合包括第一客戶端及與第一客戶端關聯的至少一個第二客戶端,也即,該預定客戶端集合包括了處于同一虛擬現實場景中的多個客戶端,比如,虛擬現實場景中同一房間中的多個客戶端。
第一客戶端和至少一個第二客戶端在虛擬現實場景中的位置是相對于虛擬現實場景中的預設位置確定的,從而將第一客戶端和至少一個第二客戶端統一在一個坐標系中。
步驟s206,第一客戶端接收服務器發送的操作指示數據。
在本申請上述步驟s206提供的技術方案中,第一客戶端接收服務器發送的操作指示數據。
在第一客戶端向服務器發送操作指示數據之后,服務器通過網絡既向第一客戶端發送操作指示數據,也向至少一個第二客戶端發送操作指示數據,實現了通過傳輸操作指示數據的方式來實現同步變化的部分,并且使得數據量最小化。
第一客戶端接收服務器發送的操作指示數據,至少一個第二客戶端也接收服務器發送的操作指示數據,也即,在整個網絡系統中,服務器將操作數據廣播至處于同一虛擬現實場景中的多個客戶端,從而實現了第一客戶端與至少一個第二客戶端通過服務器傳輸操作指示數據的目的,而且并不涉及體素本身的數據。
步驟s208,第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
在本申請上述步驟s208提供的技術方案中,第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
在第一客戶端接收服務器發送的操作指示數據之后,第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據,該操作可以為增加體素網格、刪除體素網格、平滑已有體素網格等操作,與操作數據對應的體素數據包括對體素狀態數據進行修改得到的狀態數據,也可以同時包括體素未修改的狀態數據。
可選地,第一客戶端將操作指示數據轉換成體素包,也即,第一客戶端將操作指示數據所涉及的體素單元的狀態結果,按照操作指示數據中的操作類型數據對第一客戶端對應的目標區域中的體素進行修改,得到體素數據,將體素數據一次性寫入體素數據存儲單元,這一過程是異步操作的,這樣就對處理時間和網絡延時都不會敏感,不會出現虛擬現實降幀的情況。
可選地,虛擬現實場景中的每個客戶端都在運行時,除了第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據之外,至少一個第二客戶端也會根據接收到的操作數據對第二客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
在第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據之后,在第一客戶端所在的本地顯示體素數據對應的體素。與體素數據對應的體素也會在至少一個第二客戶端所在的本地顯示,實現了體素在多客戶端之間進行共享、共同編輯。
通過上述步驟s202至步驟s208,通過第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據;第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;第一客戶端接收服務器發送的操作指示數據;第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據的方式。由于本發明實施例在實現體素數據同步時,傳輸的是未攜帶體素數據的操作指示數據,也即,通過傳輸操作的方式來實現體素變化的部分,而完全不涉及體素數據的傳輸,使得傳輸數據量最小化,實現了在虛擬現實場景下,體素數據傳輸同步的目的,從而實現了降低體素數據同步的數據處理量的技術效果,進而解決了體素數據同步的數據處理量大的技術問題。
作為一種可選的實施方式,步驟s206,第一客戶端接收服務器發送的操作指示數據包括:在服務器驗證操作指示數據合法的情況下,第一客戶端接收服務器發送的操作指示數據。
在第一客戶端向服務器發送操作指示數據之后,服務器接收操作指示數據,對操作指示數據進行驗證,可以驗證操作指示數據的數據是否完整,格式是否正確等。在服務器對操作指示數據驗證通過的情況下,該操作指示數據為合法操作指示數據,也即,為合法操作包,在服務器對操作指示數據驗證未通過的情況下,該操作指示數據為非法操作指示數據,也即,為非法操作包。服務器發送合法操作指示數據。
在服務器驗證操作指示數據合法的情況下,第一客戶端接收服務器發送的操作指示數據。可選地,與第一客戶端處于同一虛擬現實場景中的具有關聯關系的至少一個第二客戶端也會接收服務器發送的操作指示數據,從而實現了第一客戶端和至少一個第二客戶端通過服務器傳輸的操作指示數據,而不涉及體素本身的數據。
作為一種可選的實施方式,步驟s208,第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據包括:第一客戶端獲取操作指示數據中的操作區域數據,獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據;第一客戶端獲取操作指示數據中的操作類型數據;第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據。
圖3是根據本發明實施例的一種第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作的方法的流程圖。如圖3所示,該方法包括以下步驟:
步驟s301,第一客戶端獲取操作指示數據中的操作區域數據。
在本申請上述步驟s301提供的技術方案中,第一客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數。
操作指示數據包括操作區域數據,目標區域可以為產品層面的球、立方體以及其它三維體形的數學描述。操作區域數據用于指示執行操作的目標區域,包括用于確定目標區域的參數,比如,目標區域可以為圓形區域,則目標區域的參數為該圓形區域圓心和半徑,當目標區域為立方體區域時,目標區域的參數為立方體區域的邊長。
步驟s302,第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據。
在本申請上述步驟s302提供的技術方案中,第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態。
在第一客戶端獲取操作指示數據中的操作區域數據之后,第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,該體素狀態數據用于指示體素的當前狀態,也即,用于指示目標區域中的所有體素的當前狀態結果。
步驟s303,第一客戶端獲取操作指示數據中的操作類型數據。
在本申請上述步驟s303提供的技術方案中,第一客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型。
在第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據之后,第一客戶端獲取操作指示數據中的操作類型數據,該操作類型數據用于指示對體素待執行操作的類型,操作的類型為對當前操作區域的體素狀態作何修改,比如,第一客戶端對目標區域的體素網格進行增加操作、刪除操作、平滑操作、碰撞操作等,操作類型數據可以通過字段進行約定。
步驟s304,第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據。
在本申請上述步驟s304提供的技術方案中,第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
在第一客戶端獲取操作指示數據中的操作類型數據之后,第一客戶端根據操作類型數據對體素狀態數據進行修改,比如,第一客戶端在第一客戶端對應的目標區域增加體素網格、刪除體素網格、平滑網格等,得到與操作對應的體素數據,該體素數據包括對體素狀態數據進行修改得到的狀態數據。
該實施例通過第一客戶端獲取操作指示數據中的操作區域數據,操作區域數據包括用于確定目標區域的參數;第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,體素狀態數據用于指示體素的當前狀態;第一客戶端獲取操作指示數據中的操作類型數據,操作類型數據用于指示對體素待執行的操作的類型;第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,體素數據包括對體素狀態數據進行修改得到的狀態數據,實現了第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據的目的,從而實現了降低體素數據同步的數據處理量的技術效果。
作為一種可選的實施方式,在第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合之后,第二客戶端獲取操作指示數據中的操作區域數據;第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據;第二客戶端獲取操作指示數據中的操作類型數據;第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
圖4是根據本發明實施例的另一種體素數據的同步方法的流程圖。如圖4所示,該方法還包括以下步驟:
步驟s401,第二客戶端獲取操作指示數據中的操作區域數據。
在本申請上述步驟s401提供的技術方案中,第二客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數。
服務器除了向第一客戶端發送操作區域數據之外,還向處于同一虛擬現實場景的與所述第一客戶端相關聯的至少一個第二客戶端發送操作區域數據,也即,服務器將操作指示數據向處于同一虛擬現實場景的相關聯的多個客戶端。
步驟s402,第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據。
在本申請上述步驟s402提供的技術方案中,第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態。
在第二客戶端獲取操作指示數據中的操作區域數據之后,第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據。
步驟s403,第二客戶端獲取操作指示數據中的操作類型數據。
在本申請上述步驟s403提供的技術方案中,第二客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型。
在第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據之后,第二客戶端獲取操作指示數據中的操作類型數據,該操作類型數據用于指示對體素待執行操作的類型,比如,第二客戶端對目標區域的體素網格進行增加體素網格操作、刪除體素網格操作、平滑體素網格操作、碰撞操作等。
步驟s404,第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據。
在本申請上述步驟s404提供的技術方案中,第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
在第二客戶端獲取操作指示數據中的操作類型數據之后,第二客戶端根據獲取到的操作類型數據對獲取到的體素狀態數據進行修改,比如,第二客戶端在第二客戶端對應的目標區域增加體素網格、刪除體素網格、平滑網格等,得到與操作對應的體素數據,該體素數據包括對體素狀態數據進行修改得到的狀態數據。
該實施例通過在第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合之后,第二客戶端獲取操作指示數據中的操作區域數據,操作區域數據包括用于確定目標區域的參數;第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,體素狀態數據用于指示體素的當前狀態;第二客戶端獲取操作指示數據中的操作類型數據,操作類型數據用于指示對體素待執行的操作的類型;第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據,從而實現了降低體素數據同步的數據處理量的技術效果。
作為一種可選的實施方式,操作類型數據包括以下之一:用于指示增加體素的體素網格的操作類型數據;用于指示刪除體素的體素網格的操作類型數據;用于指示平滑體素的體素網格的操作類型數據。
操作類型數據用于指示對體素待執行的操作的類型,操作的類型為對當前操作區域的體素狀態作何修改,指示增加體素的體素網格的操作類型,也即,向目標區域填充體素網格,刪除體素的體素網格,也即,挖空目標區域中的體素網格,平滑體素的體素網格等,操作類型數據可以通過字段做約定。
舉例而言,目標區域為正方體,大小為10*10*10,操作類型數據用于指示增加體素的體素網格,則對目標區域中的體素執行增加網格操作,重新刷新狀態的體素就有1000個。
作為一種可選的實施方式,在步驟s208,第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據之后,第一客戶端在虛擬現實場景中顯示體素數據對應的體素。
在第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據之后,第一客戶端在虛擬現實場景中顯示體素數據對應的體素,也即,對體素數據進行渲染表現;在第二客戶端根據接收到的操作指示數據對第二客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據之后,第二客戶端在虛擬現實場景中顯示體素數據對應的體素,也即,第二客戶端接收網絡數據輸入,輸出是本地的結果顯示,從而實現了不僅僅在很短的時間內將對目標區域中的體素執行操作得到的結果在本地呈現給用戶,還可以將這部分結果通過網絡分發給同在同一虛擬現實場景里面的其它游戲玩家對應的客戶端。
作為一種可選的實施方式,第一客戶端與至少一個第二客戶端共同處于虛擬現實場景的預設坐標系下。
對虛擬現實場景的體素的位置進行相對化處理。可選地,基于服務器確定虛擬現實場景的預設位置,該預設位置可以為虛擬現實場景的中心位置。每個客戶端在虛擬現實場景里的位置是基于預設位置確定的,從而將虛擬現實場景的預設位置統一在一個位置數據坐標系下,進而使得操作指示數據中的位置數據對于每個客戶端都是可以直接使用的。
作為一種可選的實施方式,目標區域為以虛擬現實設備當前所觸及的體素為中心的區域。
在虛擬現實場景中,用戶沉浸在虛擬現實場景中,虛擬現實設備可以觸達的位置都是一個體素單元。用戶通過虛擬現實設備可以一次性操作的區域是以當前所在的體素單元為中心的一個已定義的目標區域,比如,目標區域為以虛擬現實設備當前所觸及的體素單元為中心的圓、方塊、已經確定的不規則的區域等,目標區域還可以為產品層面的球,立方體,其它三維體形的數學描述。該目標區域可以通過參數進行確定,比如,圓形區域就可以采用圓心加上半徑這兩個參數進行確定,立方體就可以采用邊長這一個參數進行確定。
可選地,在該實施例中,虛擬現實設備為手柄,每個用戶都可以通過對手柄的操作直接修改手柄可視化操作區域中的體素的所有體素狀態,并同步傳輸給處于同一虛擬現實場景中相互關聯的其它客戶端,從而使得其它客戶端對應的游戲玩家也可以了解體素狀態修改的結果,實現了同一虛擬現實場景中的體素數據的同步傳輸。由于本發明實施例在實現體素數據同步時,傳輸的是未攜帶體素數據的操作指示數據,完全不涉及體素數據的傳輸,實現了在虛擬現實場景下,體素數據傳輸同步的目的,從而實現了降低體素數據同步的數據處理量的技術效果。
實施例2
下面結合優選的實施例對本發明的技術方案進行說明。
本發明實施例主要描述一種體素數據的網絡傳輸方法。體素作為一種在游戲應用中,高自由度的ugc實現方式,可以任意由游戲玩家創作出高復雜度的網格,可以有無限的擴展性和離散性。本發明實施例的體素數據的網絡傳輸方法,主通過傳輸操作的方式來實現體素同步變化的部分,并且使得傳輸數據量最小化。通過本發明實施例使得多個游戲玩家之間共享體素數據成為了可能,讓基于體素的ugc可以在多個游戲玩家之間共享,共同編輯。
圖5是根據本發明實施例的一種體素數據的同步方法的交互示意圖。如圖5所示,該方法包括以下步驟:
步驟s501,客戶端通過虛擬現實設備執行本地操作獲取操作包。
在虛擬現實場景中,以當前虛擬現實設備觸及的體素單元為中心點。填充一個大小為10*10*10的正方形體素網格操作。當按下虛擬現實設備的手柄扳機鍵的瞬間,觸發產生一個操作包。
操作包是連接用戶操作和體素的橋梁。操作包包含當前的操作區域的描述和操作類型的描述。其中,操作區域就是產品層面的球,立方體,其它三維體形的數學描述,對于操作區域的類型只需要一個字段做約定,其它的參數個數就可以根據操作區域的類型需要再做存儲,比如,圓形區域就可以采用圓心加上半徑兩個參數即可,立方體區域就可以只需要邊長一個參數即可。其中操作類型指對當前操作區域的體素狀態作何修改,比如,對操作區域進行體素網格的填充,還是體素網格的挖空,還是體素網格的平滑,還是體素網格的碰撞方面的操作等,操作類型數據也可以只需要一個字段進行約定。
在虛擬現實場景中,需要進行房間體素位置的相對化。也即,基于服務器確認的體素場景位置,每個用戶在這個體素場景里面的位置是基于這個體素場景的中心位置確定的,統一每一個用戶的位置數據坐標系,使得操作包里面的位置數據都是可以直接使用。
步驟s502,客戶端向服務器發送操作包。
在該實施例中,虛擬現實設備觸及體素,并進行操作形成了一個操作包,這個操作包不是馬上進入體素數據處理單元,而是將操作包傳輸給服務器。
步驟s503,服務器對操作包進行驗證。
在客戶端向服務器發送操作包之后,由服務器來判定操作包的合法性。
步驟s504,服務器在驗證操作包通過的情況下,確定操作包為合法操作包。
步驟s505,服務器向客戶端發送合法操作包。
在服務器確定操作包為合法操作包之后,然后廣播給發送操作包的客戶端以及在同一虛擬現實場景中的相關聯的其它客戶端。也即,整個網絡系統里面用戶與用戶之間傳輸的就是操作包,完全不涉及體素本身的數據。
步驟s506,客戶端通過體素數據處理單元根據合法操作包對本地體素數據進行處理。
客戶端運行體素數據處理單元,體素數據處理單元的輸入是操作包,將操作包轉換成體素包,也即,一次性獲取操作包涉及的體素單元的狀態結果,然后根據操作包的要求對目標區域中的體素做修改,然后再一次性寫入體素數據處理單元完成操作包整個過程的處理。這一個過程是異步操作的,這樣對處理時間和網絡延時不會敏感,不會造成vr降幀的情況。
對于任何一個用戶,體素數據處理單元都是單機的,每個客戶端都在運行,每個客戶端輸入的操作包都來自服務器,也即,體素數據處理單元不存在本地操作和網絡操作的概念,都是接受網絡數據的輸入。
體素數據處理單元為圖形處理器,又稱顯示核心、視覺處理器、顯示芯片,是一種專門在個人電腦、工作站、游戲機和一些移動設備(如平板電腦、智能手機等)上圖像運算工作的微處理器。可以將計算機系統所需要的顯示信息進行轉換驅動,并向顯示器提供行掃描信號,控制顯示器的正確顯示,是連接顯示器和個人電腦主板的重要元件,也是“人機對話”的重要設備之一。
步驟s507,客戶端顯示處理之后的本地體素數據。
在客戶端通過體素數據處理單元根據合法操作包對本地體素進行處理之后,輸出本地結果,進行渲染表現,顯卡作為電腦主機里的一個重要組成部分,承擔輸出顯示圖形的任務,從而在很短的時間內將對體素修改后的結果在本地呈現給用戶,這部分結果通過網絡分發給同在一個vr場景里面的其他游戲玩家進行呈現。
該實施例客戶端通過虛擬現實設備執行本地操作獲取操作包,客戶端向服務器發送操作包,服務器對操作包進行驗證,服務器在驗證操作包通過的情況下,確定操作包為合法操作包,服務器向客戶端發送合法操作包,客戶端通過體素數據處理單元根據合法操作包對本地體素進行處理,客戶端顯示處理之后的本地體素數據,統一了網絡和本地操作,進行模塊化的方案設計,有利于后期功能擴展和維護,支持超大體素數據的同時修改和網絡傳輸,使得體素數據應用在vr交互建模以及模型細節呈現方面成為可能。
實施例3
本發明實施例的應用環境可以但不限于參照上述實施例中的應用環境,本實施例中對此不再贅述。本發明實施例提供了用于實施體素數據的同步方法的一種可選的具體應用。
在虛擬現實場景中,每個用戶都可以通過對虛擬現實設備手柄進行操作,直接修改可視化的操作區域中的所有體素的狀態,并將修改操作通過服務器向同一虛擬現實場景中的其它游戲玩家對應的客戶端。比如,虛擬現實設備為虛擬現實手柄,直接修改虛擬現實手柄可視化的操作體素區域中所有體素狀態,并傳輸同步給同在一個場景里面的其他游戲玩家。
可選地,用戶沉浸在體素世界里面,每一個用戶的虛擬現實手柄可以觸達的位置都是體素單元。用戶可以一次性操作的區域是以當前所觸及的體素單元為中心的一個已定義的操作區域,比如,該操作區域為以當前虛擬現實手柄所觸及的體素單元為中心的圓、方塊、已經確定的不規則的區域等。用戶通過客戶端對體素進行的基本操作可以是增加體素網格操作、刪除體素網格操作、平滑已有體素網格操作等。
舉例而言,如果這個操作區域為10*10*10的大小,以當前手柄位置為中心點,進行填充10*10*10操作區域中的體素網格的操作。在按下手柄扳機鍵的瞬間那一幀,就是觸發產生一個操作包。這個操作包不是馬上進入體素數據處理單元,而是將操作包傳輸給服務器,由服務器來判定其合法性,然后廣播給用戶以及和同在一個虛擬現實房間里面的其他用戶對應的客戶端。也即,整個網絡系統里面用戶與用戶對應的客戶端之間通過服務器傳輸的就是操作包,完全不涉及體素本身的數據,這樣會被重新刷新狀態的體素就有1000個,在一幀內完成,這不僅僅要在很短的時間內將結果在本地呈現給用戶,還要將這部分結果通過網絡分發給同在一個虛擬現實場景里面的其他游戲玩家,從而通過傳輸操作的方式來實現體素變化的部分,而完全不涉及體素數據的傳輸,使得傳輸數據量最小化,實現了在虛擬現實場景下,體素數據傳輸同步的目的,從而實現了降低體素數據同步的數據處理量的技術效果。
可選地,如果短時間體素數據的修改量不是很大,可以簡單地對體素進行編號,對每個單位的狀態進行編號,通過傳輸體素的編號和每個單位的狀態的編號可以達到體素數據同步的目的。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
實施例4
根據本發明實施例,還提供了一種用于實施上述體素數據的同步方法的體素數據的同步裝置。圖6是根據本發明實施例的一種體素數據的同步裝置的示意圖。如圖6所示,該裝置可以包括:第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40。
第一獲取單元10,用于在虛擬現實場景中,使第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯。
發送單元20,用于使第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端。
第一接收單元30,用于使第一客戶端接收服務器發送的操作指示數據。
第二接收單元40,用于使第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
圖7是根據本發明實施例的另一種體素數據的同步裝置的示意圖。如圖7所示,該裝置可以包括:第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40。第一接收單元30包括:接收模塊31。
需要說明的是,該實施例的第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40與圖6所示實施例的體素數據的同步裝置中的作用相同,此處不再贅述。
接收模塊31,用于在服務器驗證操作指示數據合法的情況下,第一客戶端接收服務器發送的操作指示數據。
圖8是根據本發明實施例的另一種體素數據的同步裝置的示意圖。如圖8所示,該裝置可以包括:第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40。其中,第二接收單元40包括:第一獲取模塊41、第二獲取模塊42、第三獲取模塊43和修改模塊44。
需要說明的是,該實施例的第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40與圖6所示實施例的體素數據的同步裝置中的作用相同,此處不再贅述。
第一獲取模塊41,用于使第一客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數。
第二獲取模塊42,用于使第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態。
第三獲取模塊43,用于使第一客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型。
修改模塊44,用于使第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
圖9是根據本發明實施例的另一種體素數據的同步裝置的示意圖。如圖9所示,該裝置可以包括:第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40。該裝置還可以包括:第二獲取單元50、第三獲取單元60、第四獲取單元70和修改單元80。
需要說明的是,該實施例的第一獲取單元10、發送單元20、第一接收單元30和第二接收單元40與圖6所示實施例的體素數據的同步裝置中的作用相同,此處不再贅述。
第二獲取單元50,用于在第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合之后,使第二客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數。
第三獲取單元60,用于使第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態。
第四獲取單元70,用于使第二客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型。
修改單元80,用于使第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
可選地,操作類型數據包括以下之一:用于指示增加體素的體素網格的操作類型數據;用于指示刪除體素的體素網格的操作類型數據;用于指示平滑體素的體素網格的操作類型數據。
可選地,該裝置還包括:顯示單元,用于在第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據所之后,第一客戶端在虛擬現實場景中顯示體素數據對應的體素。
可選地,第一客戶端與至少一個第二客戶端共同處于虛擬現實場景的預設坐標系下。
可選地,目標區域為以虛擬現實設備當前所觸及的體素為中心的區域。
需要說明的是,該實施例中的第一獲取單元10可以用于執行本申請實施例1中的步驟s202,該實施例中的發送單元20可以用于執行本申請實施例1中的步驟s204,該實施例中的第一接收單元30可以用于執行本申請實施例1中的步驟s206,該實施例中的第二接收單元40可以用于執行本申請實施例1中的步驟s208。
該實施例通過第一獲取單元10在虛擬現實場景中,使第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯,通過發送單元20使第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端,通過第一接收單元30使第一客戶端接收服務器發送的操作指示數據,通過第二接收單元40使第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。由于本發明在實現體素數據同步時,傳輸的是未攜帶體素數據的操作指示數據,完全不涉及體素數據的傳輸,實現了在虛擬現實場景下,體素數據傳輸同步的目的,從而實現了降低體素數據同步的數據處理量的技術效果,進而解決了體素數據同步的數據處理量大的技術問題。
此處需要說明的是,上述單元和模塊與對應的步驟所實現的示例和應用場景相同,但不限于上述實施例1所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環境中,可以通過軟件實現,也可以通過硬件實現,其中,硬件環境包括網絡環境。
實施例5
根據本發明實施例,還提供了一種用于實施上述體素數據的同步方法的服務器或終端。
圖10是根據本發明實施例的一種終端的結構框圖。如圖10所示,該終端可以包括:一個或多個(圖中僅示出一個)處理器101、存儲器103、以及傳輸裝置105。如圖10所示,該終端還可以包括輸入輸出設備107。
其中,存儲器103可用于存儲軟件程序以及模塊,如本發明實施例中的體素數據的同步方法和裝置對應的程序指令/模塊,處理器101通過運行存儲在存儲器103內的軟件程序以及模塊,從而執行各種功能應用以及數據處理,即實現上述的體素數據的同步方法。存儲器103可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態存儲器。在一些實例中,存儲器103可進一步包括相對于處理器101遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至終端。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。
上述的傳輸裝置105用于經由一個網絡接收或者發送數據,還可以用于處理器與存儲器之間的數據傳輸。上述的網絡具體實例可包括有線網絡及無線網絡。在一個實例中,傳輸裝置105包括一個網絡適配器(networkinterfacecontroller,nic),其可通過網線與其他網絡設備與路由器相連從而可與互聯網或局域網進行通訊。在一個實例中,傳輸裝置105為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯網進行通訊。
其中,具體地,存儲器103用于存儲應用程序。
處理器101可以通過傳輸裝置105調用存儲器103存儲的應用程序,以執行下述步驟:
在虛擬現實場景中,第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯;
第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;
第一客戶端接收服務器發送的操作指示數據;
第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
處理器101還用于執行下述步驟:在服務器驗證操作指示數據合法的情況下,第一客戶端接收服務器發送的操作指示數據。
處理器101還用于執行下述步驟:第一客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數;第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態;第一客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型;第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
處理器101還用于執行下述步驟:在第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合之后,第二客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數;第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態;第二客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型;第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
處理器101還用于執行下述步驟:在第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據所之后,第一客戶端在虛擬現實場景中顯示體素數據對應的體素。
采用本發明實施例,提供了一種體素數據的同步方法。通過第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據;第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;第一客戶端接收服務器發送的操作指示數據;第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據的方式。由于本發明在實現體素數據同步時,傳輸的是未攜帶體素數據的操作指示數據,完全不涉及體素數據的傳輸,實現了在虛擬現實場景下,體素數據傳輸同步的目的,從而實現了降低體素數據同步的數據處理量的技術效果,進而解決了體素數據同步的數據處理量大的技術問題。
可選地,本實施例中的具體示例可以參考上述實施例中所描述的示例,本實施例在此不再贅述。
本領域普通技術人員可以理解,圖10所示的結構僅為示意,終端可以是智能手機(如android手機、ios手機等)、平板電腦、掌上電腦以及移動互聯網設備(mobileinternetdevices,mid)、pad等終端設備。圖10其并不對上述電子裝置的結構造成限定。例如,終端還可包括比圖10中所示更多或者更少的組件(如網絡接口、顯示裝置等),或者具有與圖10所示不同的配置。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設備相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:閃存盤、只讀存儲器(read-onlymemory,rom)、隨機存取器(randomaccessmemory,ram)、磁盤或光盤等。
實施例6
本發明的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以用于執行體素數據的同步方法的程序代碼。
可選地,在本實施例中,上述存儲介質可以位于上述實施例所示的網絡中的多個網絡設備中的至少一個網絡設備上。
可選地,在本實施例中,存儲介質被設置為存儲用于執行以下步驟的程序代碼:
在虛擬現實場景中,第一客戶端獲取用于指示對目標區域中的體素執行操作的操作指示數據,其中,操作指示數據由虛擬現實設備觸及體素產生,第一客戶端與虛擬現實設備相關聯;
第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合,其中,預定客戶端集合包括:第一客戶端及與第一客戶端關聯的至少一個第二客戶端;
第一客戶端接收服務器發送的操作指示數據;
第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據。
可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:在服務器驗證操作指示數據合法的情況下,第一客戶端接收服務器發送的操作指示數據。
可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:第一客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數;第一客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態;第一客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型;第一客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:在第一客戶端向服務器發送操作指示數據,以使服務器將操作指示數據發送至預定客戶端集合之后,第二客戶端獲取操作指示數據中的操作區域數據,其中,操作區域數據包括用于確定目標區域的參數;第二客戶端獲取根據操作區域數據確定的目標區域中的體素的體素狀態數據,其中,體素狀態數據用于指示體素的當前狀態;第二客戶端獲取操作指示數據中的操作類型數據,其中,操作類型數據用于指示對體素待執行的操作的類型;第二客戶端根據操作類型數據對體素狀態數據進行修改,得到與操作對應的體素數據,其中,體素數據包括對體素狀態數據進行修改得到的狀態數據。
可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:在第一客戶端根據接收到的操作指示數據對第一客戶端對應的目標區域中的體素執行操作,得到與操作對應的體素數據所之后,第一客戶端在虛擬現實場景中顯示體素數據對應的體素。
可選地,本實施例中的具體示例可以參考上述實施例中所描述的示例,本實施例在此不再贅述。
可選地,在本實施例中,上述存儲介質可以包括但不限于:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
上述實施例中的集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在上述計算機可讀取的存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在存儲介質中,包括若干指令用以使得一臺或多臺計算機設備(可為個人計算機、服務器或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。
在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的客戶端,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。